@charset "UTF-8";
/* ==========================================================================
   CLUB100 出張パーソナル（/on-site/）
   Figma L7GRuVrLvCzhZfBn2sC8gf  PC #174:2（1920幅）／SP #174:1463（375幅）
   数値はFigmaの実値。PCは1920基準の --u（1px相当）で幅に追従、SPは375基準
   ========================================================================== */


.p-onsite {
  container-type: inline-size;
  overflow-x: clip;
  line-break: strict; /* Figmaの改行は行頭に「ー」「っ」などを置かない（strict相当） */
}

.p-onsite * { box-sizing: border-box; }

/* WP版: テーマの固定ヘッダー（.p-header は position:fixed）の分を空ける。値はテーマの .l-page-fv と同じ */
.l-onsite { margin-top: 3.875rem; }
@media screen and (min-width: 768px) { .l-onsite { margin-top: 7.5rem; } }

.p-onsite img { display: block; max-width: none; }

/* --------------------------------------------------------------------------
   §1 FV
   -------------------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .p-onsite-fv {
    --u: calc(100cqw / 1920);
    position: relative;
    height: calc(1029 * var(--u));
    overflow: hidden;
  }

  /* 174:174 背景 #EAE6D7 / 90%（Figma y119＝セクション上端の1px上） */
  .p-onsite-fv__bg {
    position: absolute;
    left: 0;
    top: 0;
    width: calc(1306 * var(--u));
    height: calc(792 * var(--u));
    background: rgba(234, 230, 215, 0.9);
  }

  /* 174:175 写真 */
  .p-onsite-fv__photo {
    position: absolute;
    left: calc(820 * var(--u));
    top: calc(186 * var(--u));
    width: calc(1100 * var(--u));
    height: calc(727 * var(--u));
  }
  .p-onsite-fv__photo img { width: 100%; height: 100%; }

  /* 174:192 装飾英字 */
  .p-onsite-fv__deco {
    position: absolute;
    left: calc(320 * var(--u));
    top: calc(823 * var(--u));
    margin: 0;
    font-family: "Marcellus", serif;
    font-weight: 400;
    font-size: calc(140 * var(--u));
    line-height: calc(176 * var(--u));
    color: #F3F1EB;
    white-space: nowrap;
    pointer-events: none;
  }

  /* 174:200 見出し（原点 150.56, 92.53） */
  .p-onsite-fv__ttl {
    position: absolute;
    left: calc(150.56 * var(--u));
    top: calc(92.53 * var(--u));
    width: calc(734.71 * var(--u));
    height: calc(283.23 * var(--u));
    margin: 0;
    font-family: "Shippori Mincho", serif;
    font-weight: 700;
    letter-spacing: 0.08em;
  }
  .p-onsite-fv__ttl > * { position: absolute; }
  .p-onsite-fv__ttl > [class*="ttl-bg"] { background-repeat: no-repeat; background-size: 100% 100%; }
  .p-onsite-fv__ttl-bg0 { background-image: image-set(url(../img/fv-ttl-bg0.png) 1x, url(../img/fv-ttl-bg0@2x.png) 2x); left: calc(7.42 * var(--u)); top: 0; width: calc(692.74 * var(--u)); height: calc(52.76 * var(--u)); }
  .p-onsite-fv__ttl-bg1 { background-image: image-set(url(../img/fv-ttl-bg1.png) 1x, url(../img/fv-ttl-bg1@2x.png) 2x); left: 0; top: calc(61.57 * var(--u)); width: calc(734.71 * var(--u)); height: calc(105.52 * var(--u)); }
  .p-onsite-fv__ttl-bg2 { background-image: image-set(url(../img/fv-ttl-bg2.png) 1x, url(../img/fv-ttl-bg2@2x.png) 2x); left: 0; top: calc(176.41 * var(--u)); width: calc(571.3 * var(--u)); height: calc(105.52 * var(--u)); }
  .p-onsite-fv__ttl-sub {
    letter-spacing: 0.08em;
    left: calc(44.96 * var(--u));
    top: calc(4.95 * var(--u));
    font-size: calc(26.047 * var(--u));
    line-height: calc(38 * var(--u));
    color: #FFFFFF;
    white-space: nowrap;
  }
  .p-onsite-fv__ttl-main {
    letter-spacing: 0.08em;
    left: calc(36.14 * var(--u));
    top: calc(53.23 * var(--u));
    font-size: calc(76.958 * var(--u));
    line-height: 1.5;
    color: #333333;
    white-space: nowrap;
  }

  /* 174:712 バッジ（原点 149.35, 405.68） */
  .p-onsite-fv__badges {
    position: absolute;
    left: calc(149.35 * var(--u));
    top: calc(405.68 * var(--u));
    width: calc(666.65 * var(--u));
    height: calc(107.74 * var(--u));
    margin: 0;
    padding: 0;
    list-style: none;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: #FFFFFF;
  }
  .p-onsite-fv__badge {
    position: absolute;
    background: no-repeat 0 0 / 100% 100%;
    white-space: nowrap;
  }
  .p-onsite-fv__badge span { position: absolute; letter-spacing: 0.08em; }
  .p-onsite-fv__badge em { font-style: normal; color: #F6DD8C; }
  .p-onsite-fv__badge--1 { left: 0; top: 0; width: calc(596.82 * var(--u)); height: calc(48.57 * var(--u)); background-image: url(../img/fv-badge1.svg); }
  .p-onsite-fv__badge--1 span { left: calc(24.53 * var(--u)); top: calc(4.04 * var(--u)); font-size: calc(22 * var(--u)); line-height: calc(32 * var(--u)); }
  .p-onsite-fv__badge--2 { left: calc(0.65 * var(--u)); top: calc(58.32 * var(--u)); width: calc(241.41 * var(--u)); height: calc(47.57 * var(--u)); background-image: url(../img/fv-badge2.svg); }
  .p-onsite-fv__badge--2 span { left: calc(22.88 * var(--u)); top: calc(5.31 * var(--u)); font-size: calc(22.502 * var(--u)); line-height: calc(33 * var(--u)); }
  .p-onsite-fv__badge--3 { left: calc(253.09 * var(--u)); top: calc(59.32 * var(--u)); width: calc(413.56 * var(--u)); height: calc(48.42 * var(--u)); background-image: url(../img/fv-badge3.svg); }
  .p-onsite-fv__badge--3 span { left: calc(13.77 * var(--u)); top: calc(4.31 * var(--u)); font-size: calc(22.502 * var(--u)); line-height: calc(33 * var(--u)); }

  /* 174:206 CTA（原点 150, 590.46） */
  .p-onsite-fv__cta {
    position: absolute;
    left: calc(150 * var(--u));
    top: calc(590.46 * var(--u));
    width: calc(441.62 * var(--u));
    height: calc(118.4 * var(--u));
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 800;
    letter-spacing: 0.08em;
  }
  .p-onsite-fv__micro {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: calc(24 * var(--u));
    margin: 0;
    font-size: calc(16.576 * var(--u));
    letter-spacing: 0.08em;
    line-height: calc(24 * var(--u));
    color: #333333;
  }
  /* テキスト枠 x50.91 幅339 の中央揃え。斜線は x29.01 / 396.63 */
  .p-onsite-fv__micro {
    padding-left: calc(50.91 * var(--u));
    width: calc((50.91 + 339) * var(--u));
    text-align: center;
    white-space: nowrap;
  }
  .p-onsite-fv__micro::before,
  .p-onsite-fv__micro::after {
    content: "";
    position: absolute;
    top: calc(4.14 * var(--u));
    width: calc(15.39 * var(--u));
    height: calc(20.72 * var(--u));
    background: no-repeat 0 0 / 100% 100%;
  }
  .p-onsite-fv__micro::before { left: calc(29.01 * var(--u)); background-image: url(../img/fv-slash-l.svg); }
  .p-onsite-fv__micro::after { left: calc(396.63 * var(--u)); background-image: url(../img/fv-slash-r.svg); }
  .p-onsite-fv__btn {
    position: absolute;
    left: 0;
    top: calc(35.52 * var(--u));
    width: calc(441.62 * var(--u));
    height: calc(82.88 * var(--u));
    padding: calc(26.05 * var(--u)) 0 0 calc(35.52 * var(--u));
    border-radius: calc(5.92 * var(--u));
    background: #C77A43;
    font-size: calc(21.311 * var(--u));
    letter-spacing: 0.08em;
    line-height: calc(31 * var(--u));
    color: #FFFFFF;
    text-decoration: none;
    white-space: nowrap;
  }

  /* 174:193 対応エリア（1493, 655） */
  .p-onsite-fv__area {
    position: absolute;
    left: calc(1493 * var(--u));
    top: calc(655 * var(--u));
    width: calc(276.9 * var(--u));
    height: calc(136.5 * var(--u));
    border-radius: calc(19.5 * var(--u));
    background: #333333;
    /* 枠線2pxはカンプでは箱の外側に描かれ、下の金色の帯の外周も囲む */
    box-shadow: 0 0 0 2px #FFFFFF, 0 calc(5.2 * var(--u)) calc(10.4 * var(--u)) rgba(0, 0, 0, 0.25);
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 800;
    color: #FFFFFF;
    text-decoration: none;
  }
  .p-onsite-fv__area::after {
    content: "";
    position: absolute;
    left: 0;
    top: calc(91 * var(--u));
    width: calc(276.9 * var(--u));
    height: calc(45.5 * var(--u));
    border-radius: 0 0 calc(19.5 * var(--u)) calc(19.5 * var(--u));
    background: #B79C6B;
    box-shadow: 0 calc(5.2 * var(--u)) calc(10.4 * var(--u)) rgba(0, 0, 0, 0.25);
  }
  .p-onsite-fv__area > span { position: absolute; z-index: 1; white-space: nowrap; }
  .p-onsite-fv__area-label { left: calc(24.7 * var(--u)); top: calc(13 * var(--u)); font-size: calc(20.8 * var(--u)); line-height: calc(30 * var(--u)); }
  .p-onsite-fv__area-name { left: calc(24.7 * var(--u)); top: calc(41.6 * var(--u)); font-size: calc(26 * var(--u)); line-height: calc(38 * var(--u)); }
  .p-onsite-fv__area-more { left: calc(78 * var(--u)); top: calc(100.1 * var(--u)); font-size: calc(18.2 * var(--u)); line-height: calc(26 * var(--u)); }
  .p-onsite-fv__area-more::after {
    content: "";
    position: absolute;
    left: calc(113.75 * var(--u));
    top: calc(9.75 * var(--u));
    width: calc(20.8 * var(--u));
    height: calc(4.55 * var(--u));
    background: url(../img/fv-area-arrow.svg) no-repeat 0 0 / 100% 100%;
  }
}



/* --------------------------------------------------------------------------
   §1 FV（SP）Figma #174:1463 の y60–693。375基準の --u
   -------------------------------------------------------------------------- */
@media screen and (max-width: 767px) {
  .p-onsite-fv {
    --u: calc(100cqw / 375);
    position: relative;
    height: calc(633 * var(--u));
    overflow: hidden;
  }
  .p-onsite-fv__bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: calc(382 * var(--u));
    background: rgba(234, 230, 215, 0.9);
  }
  .p-onsite-fv__photo {
    position: absolute;
    left: calc(63 * var(--u));      /* Figma 63.31／幅311.69。書き出し画像は312pxなので整数に揃えて再サンプリングのボケを防ぐ */
    top: calc(251 * var(--u));
    width: calc(312 * var(--u));
    height: calc(206 * var(--u));
  }
  .p-onsite-fv__photo img { width: 100%; height: 100%; }
  .p-onsite-fv__deco {
    position: absolute;
    left: calc(13 * var(--u));
    top: calc(422 * var(--u));
    margin: 0;
    font-family: "Marcellus", serif;
    font-weight: 400;
    font-size: calc(60 * var(--u));
    line-height: calc(75 * var(--u));
    color: #F3F1EB;
    white-space: nowrap;
    pointer-events: none;
  }

  /* 174:1493 見出し（原点 20, 40） */
  .p-onsite-fv__ttl {
    position: absolute;
    left: calc(20 * var(--u));
    top: calc(40 * var(--u));
    width: calc(335 * var(--u));
    height: calc(128.55 * var(--u));
    margin: 0;
    font-family: "Shippori Mincho", serif;
    font-weight: 700;
  }
  .p-onsite-fv__ttl > * { position: absolute; }
  .p-onsite-fv__ttl > [class*="ttl-bg"] { background-repeat: no-repeat; background-size: 100% 100%; }
  .p-onsite-fv__ttl-bg0 { background-image: image-set(url(../img/fv-sp-ttl-bg0.png) 1x, url(../img/fv-sp-ttl-bg0@2x.png) 2x); left: calc(3.38 * var(--u)); top: 0; width: calc(315.86 * var(--u)); height: calc(24.06 * var(--u)); }
  .p-onsite-fv__ttl-bg1 { background-image: image-set(url(../img/fv-sp-ttl-bg1.png) 1x, url(../img/fv-sp-ttl-bg1@2x.png) 2x); left: 0; top: calc(28.07 * var(--u)); width: calc(335 * var(--u)); height: calc(48.11 * var(--u)); }
  .p-onsite-fv__ttl-bg2 { background-image: image-set(url(../img/fv-sp-ttl-bg2.png) 1x, url(../img/fv-sp-ttl-bg2@2x.png) 2x); left: 0; top: calc(80.44 * var(--u)); width: calc(260.49 * var(--u)); height: calc(48.11 * var(--u)); }
  .p-onsite-fv__ttl-sub {
    left: calc(20.5 * var(--u));
    top: calc(2.26 * var(--u));
    font-size: calc(12 * var(--u));
    line-height: calc(17 * var(--u));
    letter-spacing: 0.08em;
    color: #FFFFFF;
    white-space: nowrap;
  }
  .p-onsite-fv__ttl-main {
    left: calc(16.48 * var(--u));
    top: calc(24.27 * var(--u));
    font-size: calc(35 * var(--u));
    line-height: 1.5;
    translate: 0 calc(1 * var(--u)); /* 行の高さ52.5pxの端数でカンプより1px上に出るため実測で補正 */
    letter-spacing: 0.08em;
    color: #333333;
    white-space: nowrap;
  }

  /* 174:1505 バッジ（原点 25, 179.95。縦並び・間隔2.76） */
  .p-onsite-fv__badges {
    position: absolute;
    left: calc(25 * var(--u));
    top: calc(179.95 * var(--u));
    width: calc(330 * var(--u));
    height: calc(85.47 * var(--u));
    margin: 0;
    padding: 0;
    list-style: none;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 800;
    color: #FFFFFF;
  }
  .p-onsite-fv__badge { position: absolute; left: 0; background: no-repeat 0 0 / 100% 100%; white-space: nowrap; }
  .p-onsite-fv__badge span { position: absolute; left: calc(13 * var(--u)); font-size: calc(12 * var(--u)); line-height: calc(17 * var(--u)); letter-spacing: 0.08em; }
  .p-onsite-fv__badge em { font-style: normal; color: #F6DD8C; }
  .p-onsite-fv__badge--1 { top: 0; width: calc(325.01 * var(--u)); height: calc(26.86 * var(--u)); background-image: url(../img/fv-sp-badge1.svg); }
  .p-onsite-fv__badge--1 span { top: calc(2.23 * var(--u)); }
  .p-onsite-fv__badge--2 { top: calc(29.62 * var(--u)); width: calc(133.48 * var(--u)); height: calc(26.3 * var(--u)); background-image: url(../img/fv-sp-badge2.svg); }
  .p-onsite-fv__badge--2 span { top: calc(2.94 * var(--u)); }
  .p-onsite-fv__badge--3 { top: calc(58.69 * var(--u)); width: calc(228.67 * var(--u)); height: calc(26.78 * var(--u)); background-image: url(../img/fv-sp-badge3.svg); }
  .p-onsite-fv__badge--3 span { top: calc(2.38 * var(--u)); }

  /* 174:1499 CTA（原点 20, 500） */
  .p-onsite-fv__cta {
    position: absolute;
    left: calc(20 * var(--u));
    top: calc(500 * var(--u));
    width: calc(335 * var(--u));
    height: calc(84 * var(--u));
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 800;
  }
  .p-onsite-fv__micro {
    position: absolute;
    left: 0;
    top: 0;
    width: calc((43.75 + 246) * var(--u));
    height: calc(17 * var(--u));
    margin: 0;
    padding-left: calc(43.75 * var(--u));
    font-size: calc(12 * var(--u));
    line-height: calc(17 * var(--u));
    letter-spacing: 0.08em;
    text-align: center;
    color: #333333;
    white-space: nowrap;
  }
  .p-onsite-fv__micro::before,
  .p-onsite-fv__micro::after {
    content: "";
    position: absolute;
    top: calc(2.91 * var(--u));
    width: calc(10.81 * var(--u));
    height: calc(14.55 * var(--u));
    background: no-repeat 0 0 / 100% 100%;
  }
  .p-onsite-fv__micro::before { left: calc(30.37 * var(--u)); background-image: url(../img/fv-sp-slash-l.svg); }
  .p-onsite-fv__micro::after { left: calc(292.49 * var(--u)); background-image: url(../img/fv-sp-slash-r.svg); }
  .p-onsite-fv__btn {
    position: absolute;
    left: 0;
    top: calc(24 * var(--u));
    width: calc(335 * var(--u));
    height: calc(60 * var(--u));
    padding: calc(19.54 * var(--u)) 0 0 calc(29 * var(--u));
    border-radius: calc(4.157 * var(--u));
    background: #C77A43;
    font-size: calc(16 * var(--u));
    line-height: calc(23 * var(--u));
    letter-spacing: 0.08em;
    color: #FFFFFF;
    text-decoration: none;
    white-space: nowrap;
  }

  /* 174:1486 対応エリア（25, 348） */
  .p-onsite-fv__area {
    position: absolute;
    left: calc(25 * var(--u));
    top: calc(348 * var(--u));
    width: calc(133 * var(--u));
    height: calc(65.56 * var(--u));
    border-radius: calc(9.366 * var(--u));
    background: #333333;
    box-shadow: 0 0 0 calc(0.96 * var(--u)) #FFFFFF, 0 calc(2.5 * var(--u)) calc(5 * var(--u)) rgba(0, 0, 0, 0.25);
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 800;
    color: #FFFFFF;
    text-decoration: none;
  }
  .p-onsite-fv__area::after {
    content: "";
    position: absolute;
    left: 0;
    top: calc(43.71 * var(--u));
    width: 100%;
    height: calc(21.85 * var(--u));
    border-radius: 0 0 calc(9.366 * var(--u)) calc(9.366 * var(--u));
    background: #B79C6B;
    box-shadow: 0 calc(2.5 * var(--u)) calc(5 * var(--u)) rgba(0, 0, 0, 0.25);
  }
  .p-onsite-fv__area > span { position: absolute; z-index: 1; white-space: nowrap; }
  .p-onsite-fv__area-label { left: calc(11.86 * var(--u)); top: calc(6.24 * var(--u)); font-size: calc(10 * var(--u)); line-height: calc(14 * var(--u)); }
  .p-onsite-fv__area-name { left: calc(11.86 * var(--u)); top: calc(19.98 * var(--u)); font-size: calc(13 * var(--u)); line-height: calc(19 * var(--u)); }
  .p-onsite-fv__area-more { left: calc(37.46 * var(--u)); top: calc(48.08 * var(--u)); font-size: calc(8 * var(--u)); line-height: calc(12 * var(--u)); }
  .p-onsite-fv__area-more::after {
    content: "";
    position: absolute;
    left: calc(54.64 * var(--u));
    top: calc(4.68 * var(--u));
    width: calc(9.99 * var(--u));
    height: calc(2.19 * var(--u));
    background: url(../img/fv-sp-area-arrow.svg) no-repeat 0 0 / 100% 100%;
  }
}

/* --------------------------------------------------------------------------
   §2 提携パートナー（PC #174:444 y1149–1396／SP #174:1559 y693–878）
   ロゴはFigmaの仮置き画像。収まらない幅では JS で複製して左へ流す
   -------------------------------------------------------------------------- */
.p-onsite-partner { position: relative; background: #FDFBF7; }
.p-onsite-partner__ttl {
  margin: 0;
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #333333;
  white-space: nowrap;
}
.p-onsite-partner__ttl::before,
.p-onsite-partner__ttl::after {
  content: "";
  position: absolute;
  /* Figmaの線（高さ0・線幅1px・中央）は整数座標をまたぐので、カンプでは2行に半分の濃さで描かれる。同じ見え方にする */
  height: 2px;
  background: rgba(199, 122, 67, 0.5);
}
.p-onsite-partner__slider {
  position: absolute;
  display: flex;
  justify-content: center;
  overflow: hidden;
}
.p-onsite-partner__track {
  display: flex;
  flex: none;
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-onsite-partner__item { flex: none; }
.p-onsite-partner__item img { width: 100%; height: 100%; }
.p-onsite-partner__slider.is-marquee { justify-content: flex-start; }
.p-onsite-partner__slider.is-marquee .p-onsite-partner__track { animation: p-onsite-marquee 40s linear infinite; }
.p-onsite-partner__slider.is-marquee:hover .p-onsite-partner__track { animation-play-state: paused; }
@keyframes p-onsite-marquee { to { transform: translateX(calc(-1 * var(--shift))); } }
@media (prefers-reduced-motion: reduce) {
  .p-onsite-partner__slider.is-marquee .p-onsite-partner__track { animation: none; }
}

@media screen and (min-width: 768px) {
  .p-onsite-partner { --u: calc(100cqw / 1920); height: calc(247 * var(--u)); }
  /* 見出し: テキスト枠 x851 y57 幅210（中央揃え）、線 x733 / x1078 の y75 幅100 */
  .p-onsite-partner__ttl {
    position: absolute;
    left: calc(857 * var(--u));     /* Figma x851。テキスト枠の中央揃えがブラウザと6pxずれるため実測で補正 */
    top: calc(57 * var(--u));
    width: calc(210 * var(--u));
    font-size: calc(28 * var(--u));
    line-height: 1.3;
    text-align: center;
  }
  .p-onsite-partner__ttl::before { left: calc(-124 * var(--u)); top: calc(17 * var(--u)); width: calc(100 * var(--u)); }
  .p-onsite-partner__ttl::after { left: calc(221 * var(--u)); top: calc(17 * var(--u)); width: calc(100 * var(--u)); }
  /* ロゴ列: x6 幅1914 の中央揃え、y123、間隔20、215×64 */
  .p-onsite-partner__slider { left: calc(6 * var(--u)); top: calc(123 * var(--u)); width: calc(1915 * var(--u)); } /* Figma x6 幅1914 → 開始が150.5pxの端数。151pxに揃えるのが最も合う（150pxは悪化） */
  .p-onsite-partner__track { gap: calc(20 * var(--u)); }
  .p-onsite-partner__item { width: calc(215 * var(--u)); height: calc(64 * var(--u)); }
}

@media screen and (max-width: 767px) {
  .p-onsite-partner { --u: calc(100cqw / 375); height: calc(185 * var(--u)); }
  /* 見出し: 横並び（線50・間隔12・文字・間隔12・線50）を x51 y48 から */
  .p-onsite-partner__ttl {
    position: absolute;
    left: calc(51 * var(--u));
    top: calc(48 * var(--u));
    display: flex;
    align-items: center;
    gap: calc(12 * var(--u));
    font-size: calc(20 * var(--u));
    line-height: 1.3;
  }
  .p-onsite-partner__ttl::before,
  .p-onsite-partner__ttl::after { position: static; flex: none; width: calc(50 * var(--u)); translate: 0 calc(-1 * var(--u)); }
  .p-onsite-partner__ttl { translate: 0 calc(1 * var(--u)); } /* 文字だけカンプより1px上に出るため実測で補正（線は戻す） */
  /* ロゴ列: 幅375の中央揃え、y93、間隔10、141.1×42 */
  .p-onsite-partner__slider { left: 0; top: calc(93 * var(--u)); width: 100%; }
  .p-onsite-partner__track { gap: calc(10 * var(--u)); }
  .p-onsite-partner__item { width: calc(141.1 * var(--u)); height: calc(42 * var(--u)); }
}

/* --------------------------------------------------------------------------
   §3 神楽坂で15年・特徴3つ（PC #174:2 y1396–3559／SP #174:1463 y878–3701）
   -------------------------------------------------------------------------- */
.p-onsite-trust { position: relative; }
.p-onsite-trust strong { font-weight: 700; }
.p-onsite-trust .is-gold { color: #B1935F; }
.p-onsite-trust__ttl {
  margin: 0;
  font-family: "Shippori Mincho", serif;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-align: center;
  color: #333333;
}
.p-onsite-trust__comma { letter-spacing: -0.25em; }
.p-onsite-trust__lead,
.p-onsite-feature__txt {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.08em;
  color: #333333;
}
.p-onsite-feature__bg { background: #FDFBF7; }
.p-onsite-feature__img img { width: 100%; height: 100%; }
.p-onsite-feature__num {
  margin: 0;
  font-family: "Marcellus", serif;
  font-weight: 400;
  color: #F3F1EB;
  white-space: nowrap;
}
.p-onsite-feature__ttl {
  margin: 0;
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.08em;
  color: #333333;
}
/* h3の下の線（高さ0・線幅1pxの中央揃え＝カンプでは2行に半分の濃さ） */
.p-onsite-feature__ttl::after {
  content: "";
  position: absolute;
  height: 2px;
  background: rgba(177, 147, 95, 0.5);
}
.p-onsite-feature__box { background: #FFFFFF; border: 1px solid #B1935F; }
.p-onsite-feature__quals {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  list-style: none;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  line-height: 1.8;
  color: #333333;
}
.p-onsite-feature__quals li { position: relative; white-space: nowrap; }
.p-onsite-feature__quals li::before {
  content: "";
  position: absolute;
  left: 0;
  border-radius: 50%;
  background: #B1935F;
}
.p-onsite-feature__clinics {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-onsite-feature__clinics a { display: block; }
.p-onsite-feature__clinics img { width: 100%; height: auto; }

@media screen and (min-width: 768px) {
  .p-onsite-trust { --u: calc(100cqw / 1920); height: calc(2163 * var(--u)); }
  .p-onsite-trust > *,
  .p-onsite-feature > * { position: absolute; }
  .p-onsite-trust > .p-onsite-feature { position: static; }

  .p-onsite-trust__band {
    left: 0; top: 0; width: 100%; height: calc(538 * var(--u));
    background: url(../img/trust-band.jpg) no-repeat 0 0 / 100% 100%;
    background-image: image-set(url(../img/trust-band.jpg) 1x, url(../img/trust-band@2x.jpg) 2x);
  }
  .p-onsite-trust__ttl { left: calc(320 * var(--u)); top: calc(100 * var(--u)); width: calc(1280 * var(--u)); font-size: calc(34 * var(--u)); }
  .p-onsite-trust__lead { left: calc(604 * var(--u)); top: calc(228 * var(--u)); width: calc(712 * var(--u)); font-size: calc(18 * var(--u)); text-align: center; white-space: nowrap; }

  .p-onsite-feature__num { font-size: calc(110 * var(--u)); line-height: calc(138 * var(--u)); }
  .p-onsite-feature__num span { font-size: calc(80 * var(--u)); }
  .p-onsite-feature__ttl { font-size: calc(28 * var(--u)); white-space: nowrap; }
  .p-onsite-feature__ttl::after { left: 0; top: calc(55 * var(--u)); width: calc(645 * var(--u)); }
  .p-onsite-feature__txt { width: calc(645 * var(--u)); font-size: calc(18 * var(--u)); }
  .p-onsite-feature__img { width: calc(580 * var(--u)); height: calc(350 * var(--u)); }
  .p-onsite-feature__box { width: calc(645 * var(--u)); }

  /* FEATURE 01 */
  .p-onsite-feature--01 .p-onsite-feature__bg { left: 0; top: calc(641 * var(--u)); width: calc(1200 * var(--u)); height: calc(360 * var(--u)); }
  .p-onsite-feature--01 .p-onsite-feature__img { left: calc(320 * var(--u)); top: calc(485 * var(--u)); }
  .p-onsite-feature--01 .p-onsite-feature__num { left: calc(1182 * var(--u)); top: calc(446 * var(--u)); }
  .p-onsite-feature--01 .p-onsite-feature__ttl { left: calc(955 * var(--u)); top: calc(538 * var(--u)); }
  .p-onsite-feature--01 .p-onsite-feature__txt { left: calc(955 * var(--u)); top: calc(624 * var(--u)); }
  .p-onsite-feature--01 .p-onsite-feature__box { left: calc(955 * var(--u)); top: calc(804 * var(--u)); height: calc(147 * var(--u)); }
  .p-onsite-feature__quals {
    position: absolute;
    left: calc(28 * var(--u));
    top: calc(14 * var(--u));
    width: calc(585 * var(--u));
    gap: calc(5 * var(--u)) calc(20 * var(--u));
    font-size: calc(14 * var(--u));
  }
  .p-onsite-feature__quals li { width: calc(334 * var(--u)); height: calc(25 * var(--u)); padding-left: calc(9 * var(--u)); line-height: calc(25 * var(--u)); }
  .p-onsite-feature__quals li:nth-child(2),
  .p-onsite-feature__quals li:nth-child(4) { width: calc(214 * var(--u)); }
  .p-onsite-feature__quals li:nth-child(6) { width: calc(219 * var(--u)); }
  .p-onsite-feature__quals li::before { top: calc(12 * var(--u)); width: calc(4 * var(--u)); height: calc(4 * var(--u)); }

  /* FEATURE 02 */
  .p-onsite-feature--02 .p-onsite-feature__bg { left: calc(720 * var(--u)); top: calc(1226 * var(--u)); width: calc(1200 * var(--u)); height: calc(327 * var(--u)); }
  .p-onsite-feature--02 .p-onsite-feature__img { left: calc(1020 * var(--u)); top: calc(1065 * var(--u)); }
  .p-onsite-feature--02 .p-onsite-feature__num { left: calc(318 * var(--u)); top: calc(1031 * var(--u)); }
  .p-onsite-feature--02 .p-onsite-feature__ttl { left: calc(320 * var(--u)); top: calc(1124 * var(--u)); }
  .p-onsite-feature--02 .p-onsite-feature__txt { left: calc(320 * var(--u)); top: calc(1210 * var(--u)); }
  .p-onsite-feature--02 .p-onsite-feature__box { left: calc(320 * var(--u)); top: calc(1373 * var(--u)); height: calc(120 * var(--u)); }
  .p-onsite-feature__clinics { position: absolute; left: calc(26 * var(--u)); top: calc(32 * var(--u)); height: calc(56 * var(--u)); gap: calc(20 * var(--u)); }
  .p-onsite-feature__clinics li { width: calc(180 * var(--u)); }

  /* FEATURE 03 */
  .p-onsite-feature--03 .p-onsite-feature__bg { left: 0; top: calc(1767 * var(--u)); width: calc(1200 * var(--u)); height: calc(296 * var(--u)); }
  .p-onsite-feature--03 .p-onsite-feature__img { left: calc(321.58 * var(--u)); top: calc(1613 * var(--u)); }
  .p-onsite-feature--03 .p-onsite-feature__num { left: calc(1159 * var(--u)); top: calc(1575 * var(--u)); }
  .p-onsite-feature--03 .p-onsite-feature__ttl { left: calc(953 * var(--u)); top: calc(1665 * var(--u)); }
  .p-onsite-feature--03 .p-onsite-feature__ttl::after { left: calc(2 * var(--u)); }
  .p-onsite-feature--03 .p-onsite-feature__txt { left: calc(953 * var(--u)); top: calc(1751 * var(--u)); }
}

/* §3 PC の実測補正
   - 行間1.8（18px→32.4px）の本文: カンプの行送りは実測で約32px（Figmaは行位置を切り捨て）。32px＋1px上げが最も合う（32.4/32.25は悪化）
   - 見出しh2: カンプより左上に1pxずつ出る */
@media screen and (min-width: 768px) {
  .p-onsite-trust__lead,
  .p-onsite-feature__txt { translate: 0 calc(-1 * var(--u)); line-height: calc(32 * var(--u)); }
  .p-onsite-trust__lead { translate: calc(1 * var(--u)) calc(-1 * var(--u)); }
  .p-onsite-feature--03 .p-onsite-feature__txt { translate: 0 0; }
  .p-onsite-feature__quals { translate: 0 calc(1 * var(--u)); }
  .p-onsite-trust__ttl { translate: calc(1 * var(--u)) calc(1 * var(--u)); }
}

/* セクション間の区切り線（Figmaは高さ0・線幅1pxの線が境目の座標に乗る＝上下のセクションに半分ずつ）
   上のセクションの最下行と下のセクションの最上行に、半分の濃さの1pxを置く */
.p-onsite-divider-bottom::after,
.p-onsite-divider-top::before {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background: rgba(177, 147, 95, 0.5);
  pointer-events: none;
}
.p-onsite-divider-bottom::after { bottom: 0; }
.p-onsite-divider-top::before { top: 0; }

/* §3 SP（375基準。セクション上端＝Figma y878） */
@media screen and (max-width: 767px) {
  .p-onsite-trust { --u: calc(100cqw / 375); height: calc(2823 * var(--u)); }
  .p-onsite-trust > *,
  .p-onsite-feature > * { position: absolute; }
  .p-onsite-trust > .p-onsite-feature { position: static; }

  .p-onsite-trust__band {
    left: 0; top: 0; width: 100%; height: calc(343 * var(--u));
    background: url(../img/trust-sp-band.jpg) no-repeat 0 0 / 100% 100%;
    background-image: image-set(url(../img/trust-sp-band.jpg) 1x, url(../img/trust-sp-band@2x.jpg) 2x);
  }
  .p-onsite-trust__ttl { left: calc(20 * var(--u)); top: calc(50 * var(--u)); width: calc(335 * var(--u)); font-size: calc(22 * var(--u)); line-height: 1.5; letter-spacing: 0; }
  .p-onsite-trust__comma { letter-spacing: -0.3em; }
  /* Figma SPのテキストは2行目の先頭に半角スペースが2つあり、中央揃えで右に約6px寄っている。同じ位置に出すため左に余白 */
  .p-onsite-trust__ttl-l2 { padding-left: calc(11 * var(--u)); }
  .p-onsite-trust__lead { left: calc(20 * var(--u)); top: calc(131 * var(--u)); width: calc(335 * var(--u)); font-size: calc(16 * var(--u)); }
  /* 行間1.8（16px→28.8px）の本文: カンプの行送りは整数の29px（Figmaは行送りを整数pxに丸める）。28.8は悪化 */
  .p-onsite-trust__lead,
  .p-onsite-feature__txt { line-height: calc(29 * var(--u)); }

  .p-onsite-feature__num { font-size: calc(66 * var(--u)); line-height: calc(83 * var(--u)); }
  .p-onsite-feature__num span { font-size: calc(48 * var(--u)); }
  .p-onsite-feature__ttl { font-size: calc(22 * var(--u)); line-height: 1.5; }
  .p-onsite-feature__ttl::after { left: 0; width: calc(335 * var(--u)); }
  .p-onsite-feature__txt { width: calc(335 * var(--u)); font-size: calc(16 * var(--u)); }
  .p-onsite-feature__img { width: calc(335 * var(--u)); height: calc(202.16 * var(--u)); }
  .p-onsite-feature__img img { object-fit: cover; object-position: 0 0; }
  .p-onsite-feature__box { left: calc(20 * var(--u)); width: calc(335 * var(--u)); }

  /* FEATURE 01（基準 y393） */
  .p-onsite-feature--01 .p-onsite-feature__bg { left: 0; top: calc(641 * var(--u)); width: 100%; height: calc(656 * var(--u)); }
  .p-onsite-feature--01 .p-onsite-feature__img { left: calc(20 * var(--u)); top: calc(553 * var(--u)); }
  .p-onsite-feature--01 .p-onsite-feature__num { left: calc(111.2 * var(--u)); top: calc(393 * var(--u)); }
  .p-onsite-feature--01 .p-onsite-feature__ttl { left: calc(20 * var(--u)); top: calc(447 * var(--u)); }
  .p-onsite-feature--01 .p-onsite-feature__ttl::after { top: calc(85 * var(--u)); }
  .p-onsite-feature--01 .p-onsite-feature__txt { left: calc(20 * var(--u)); top: calc(775 * var(--u)); width: calc(333 * var(--u)); }
  .p-onsite-feature--01 .p-onsite-feature__box { top: calc(1022 * var(--u)); height: calc(225 * var(--u)); }
  .p-onsite-feature__quals {
    position: absolute;
    left: calc(14 * var(--u));
    top: calc(14 * var(--u));
    width: calc(306 * var(--u));
    flex-direction: column;
    flex-wrap: nowrap;
    gap: calc(5 * var(--u));
    font-size: calc(13 * var(--u));
  }
  .p-onsite-feature__quals li { height: calc(23 * var(--u)); padding-left: calc(9 * var(--u)); line-height: calc(23 * var(--u)); }
  .p-onsite-feature__quals li::before { top: calc(12 * var(--u)); width: calc(4 * var(--u)); height: calc(4 * var(--u)); }

  /* FEATURE 02（基準 y1329） */
  .p-onsite-feature--02 .p-onsite-feature__bg { left: 0; top: calc(1585 * var(--u)); width: 100%; height: calc(497 * var(--u)); }
  .p-onsite-feature--02 .p-onsite-feature__img { left: calc(20 * var(--u)); top: calc(1486 * var(--u)); }
  .p-onsite-feature--02 .p-onsite-feature__num { left: calc(17.4 * var(--u)); top: calc(1329 * var(--u)); }
  .p-onsite-feature--02 .p-onsite-feature__ttl { left: calc(20 * var(--u)); top: calc(1384 * var(--u)); }
  .p-onsite-feature--02 .p-onsite-feature__ttl::after { top: calc(82 * var(--u)); }
  .p-onsite-feature--02 .p-onsite-feature__txt { left: calc(20 * var(--u)); top: calc(1708 * var(--u)); }
  .p-onsite-feature--02 .p-onsite-feature__box { top: calc(1902 * var(--u)); height: calc(130 * var(--u)); }
  .p-onsite-feature__clinics { position: absolute; left: calc(16 * var(--u)); top: calc(17 * var(--u)); width: calc(302 * var(--u)); flex-wrap: wrap; gap: calc(10 * var(--u)); }
  .p-onsite-feature__clinics li { width: calc(145 * var(--u)); }
  .p-onsite-feature__clinics li:nth-child(2) { width: calc(144 * var(--u)); }

  /* FEATURE 03（基準 y2112） */
  .p-onsite-feature--03 .p-onsite-feature__bg { left: 0; top: calc(2361 * var(--u)); width: 100%; height: calc(412 * var(--u)); }
  .p-onsite-feature--03 .p-onsite-feature__img { left: calc(20 * var(--u)); top: calc(2268 * var(--u)); width: calc(336 * var(--u)); height: calc(202.76 * var(--u)); }
  .p-onsite-feature--03 .p-onsite-feature__num { left: calc(92 * var(--u)); top: calc(2112 * var(--u)); }
  .p-onsite-feature--03 .p-onsite-feature__ttl { left: calc(20 * var(--u)); top: calc(2167 * var(--u)); }
  .p-onsite-feature--03 .p-onsite-feature__ttl::after { top: calc(80 * var(--u)); }
  .p-onsite-feature--03 .p-onsite-feature__txt { left: calc(20 * var(--u)); top: calc(2491 * var(--u)); }
}

/* --------------------------------------------------------------------------
   §4 トレーナーチーム（PC #174:2 y3559–5229／SP y3701–5589）
   スライダー3つ（書籍・講演・トレーナー）。初期表示はFigmaどおり「全件を中央揃えで並べた位置」
   -------------------------------------------------------------------------- */
.p-onsite-team { position: relative; }
.p-onsite-team__en {
  margin: 0;
  font-family: "Marcellus", serif;
  font-weight: 400;
  text-align: center;
  color: #F3F1EB;
}
.p-onsite-team__ttl {
  margin: 0;
  font-family: "Shippori Mincho", serif;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-align: center;
  color: #333333;
}
.p-onsite-team__lead {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-align: center;
  color: #333333;
}
.p-onsite-panel__ttl {
  margin: 0;
  /* 枠は斜めの平行四辺形（Figmaの変形はAPIの数値に出ないので書き出しSVG） */
  background: url(../img/panel-label.svg) no-repeat 0 0 / 100% 100%;
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-align: center;
  color: #333333;
}
.p-onsite-panel::before { content: ""; position: absolute; background: rgba(234, 230, 215, 0.6); }
.p-onsite-slider__view { overflow: hidden; }
.p-onsite-slider__track {
  position: absolute;
  display: flex;
  margin: 0;
  padding: 0;
  list-style: none;
  transition: transform 0.4s ease;
}
.p-onsite-slider__item { flex: none; }
.p-onsite-slider__item img { width: 100%; height: 100%; }
.p-onsite-slider__item figure { margin: 0; }
.p-onsite-slider__item figcaption {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #333333;
}
.p-onsite-slider__item figcaption.is-regular { font-weight: 400; }
.p-onsite-slider__prev,
.p-onsite-slider__next {
  padding: 0;
  border: 0;
  background: no-repeat 0 0 / 100% 100%;
  cursor: pointer;
  z-index: 2;
}
.p-onsite-slider__prev.is-line { background-image: url(../img/arrow-prev-line.svg); }
.p-onsite-slider__next.is-line { background-image: url(../img/arrow-next-line.svg); }
.p-onsite-slider__prev.is-fill { background-image: url(../img/arrow-prev-fill.svg); }
.p-onsite-slider__next.is-fill { background-image: url(../img/arrow-next-fill.svg); }
.p-onsite-slider__dots { display: flex; align-items: center; }
.p-onsite-slider__dot {
  flex: none;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #CFCFCF;
  cursor: pointer;
}
.p-onsite-slider__dot.is-active { background: #FFFFFF; box-shadow: inset 0 0 0 1px #B1935F; }
.p-onsite-slider--trainers .p-onsite-slider__dot { background: #DDDDDD; }
.p-onsite-slider--trainers .p-onsite-slider__dot.is-active { background: #B1935F; box-shadow: none; }
.p-onsite-tcard { position: relative; border-radius: 8px; background: #FDFBF7; }
.p-onsite-tcard > * { position: absolute; margin: 0; }
.p-onsite-tcard__img { overflow: hidden; border-radius: 8px 8px 0 0; }
.p-onsite-tcard__name { font-family: "Shippori Mincho", serif; font-weight: 700; line-height: 1.3; letter-spacing: 0.08em; color: #333333; white-space: nowrap; }
.p-onsite-tcard__role { font-family: "Noto Sans JP", sans-serif; font-weight: 800; line-height: 1.3; letter-spacing: 0.08em; color: #B1935F; white-space: nowrap; }
/* 点線（線幅1px・中央・2pxおき）。整数座標をまたぐので2行に半分の濃さ */
.p-onsite-tcard__role::after {
  content: "";
  position: absolute;
  background: repeating-linear-gradient(90deg, rgba(177, 147, 95, 0.5) 0 2px, transparent 2px 4px);
}
.p-onsite-tcard__quals { display: flex; flex-direction: column; padding: 0; list-style: none; font-family: "Noto Sans JP", sans-serif; font-weight: 400; letter-spacing: 0.08em; color: #333333; }
.p-onsite-tcard__quals li { position: relative; }
.p-onsite-tcard__quals li::before { content: ""; position: absolute; left: 0; border-radius: 50%; background: #B1935F; }

@media screen and (min-width: 768px) {
  .p-onsite-team { --u: calc(100cqw / 1920); height: calc(1670 * var(--u)); overflow: hidden; }
  .p-onsite-team > *,
  .p-onsite-panel > *,
  .p-onsite-slider > * { position: absolute; }
  .p-onsite-team > .p-onsite-panel,
  .p-onsite-panel > .p-onsite-slider,
  .p-onsite-team > .p-onsite-slider { position: static; }

  .p-onsite-team__en { left: calc(793 * var(--u)); top: calc(72 * var(--u)); width: calc(335 * var(--u)); font-size: calc(120 * var(--u)); line-height: calc(150 * var(--u)); }
  .p-onsite-team__ttl { left: calc(741 * var(--u)); top: calc(174 * var(--u)); width: calc(438 * var(--u)); font-size: calc(34 * var(--u)); white-space: nowrap; } /* 1行目が枠幅438より約3px長い（Figmaは折り返さない） */
  .p-onsite-team__lead { left: calc(540 * var(--u)); top: calc(302 * var(--u)); width: calc(841 * var(--u)); font-size: calc(18 * var(--u)); line-height: calc(32 * var(--u)); white-space: nowrap; }

  /* パネル（背景・見出しの枠） */
  .p-onsite-panel::before { top: calc(451 * var(--u)); width: calc(618 * var(--u)); height: calc(430 * var(--u)); }
  .p-onsite-panel--books::before { left: calc(320 * var(--u)); }
  .p-onsite-panel--events::before { left: calc(982 * var(--u)); }
  .p-onsite-panel__ttl { top: calc(426 * var(--u)); width: calc(282.74 * var(--u)); height: calc(49.51 * var(--u)); padding-top: calc(7 * var(--u)); font-size: calc(24 * var(--u)); z-index: 1; }
  .p-onsite-panel--books .p-onsite-panel__ttl { left: calc(488.04 * var(--u)); }
  .p-onsite-panel--events .p-onsite-panel__ttl { left: calc(1150.04 * var(--u)); }

  /* 書籍: マスク(354,497) 550×296・背景#EAE6D7、並びは幅587.75の中央揃え → 開始 -412.625（-413 に丸めても差分同じ。-412は悪化）、y9 */
  .p-onsite-panel--books .p-onsite-slider__view { left: calc(354 * var(--u)); top: calc(497 * var(--u)); width: calc(550 * var(--u)); height: calc(296 * var(--u)); } /* マスク用の図形（#EAE6D7）は表示されないので塗らない */
  .p-onsite-panel--books .p-onsite-slider__track { left: calc(-413 * var(--u)); top: calc(9 * var(--u)); height: calc(260 * var(--u)); align-items: center; gap: calc(20 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item { width: calc(177 * var(--u)); height: calc(260 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="2"] { height: calc(258.69 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="3"] { width: calc(176 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="4"] { width: calc(183 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="5"] { width: calc(222 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="6"] { width: calc(181 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__prev { left: calc(329 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__next { left: calc(875 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__dots { left: calc(565 * var(--u)); }

  /* 講演: 枠(1016,506) 幅550、7件×340・間隔20の中央揃え → 開始 -975 */
  .p-onsite-panel--events .p-onsite-slider__view { left: calc(1016 * var(--u)); top: calc(506 * var(--u)); width: calc(550 * var(--u)); height: calc(312 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__track { left: calc(-975 * var(--u)); top: 0; gap: calc(20 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__item { width: calc(340 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__item img { height: calc(260 * var(--u)); }
  .p-onsite-panel--events figcaption { margin-top: calc(10 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(21 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__prev { left: calc(991 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__next { left: calc(1541 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__dots { left: calc(1197 * var(--u)); }

  .p-onsite-slider__prev,
  .p-onsite-slider__next { top: calc(619 * var(--u)); width: calc(50 * var(--u)); height: calc(50 * var(--u)); }
  .p-onsite-slider__dots { top: calc(838 * var(--u)); height: calc(9 * var(--u)); gap: calc(15 * var(--u)); }
  .p-onsite-slider__dot { width: calc(9 * var(--u)); height: calc(9 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__dot:nth-child(n+7),
  .p-onsite-panel--events .p-onsite-slider__dot:nth-child(n+8) { display: none; } /* PCは書籍6・講演7（SPは各8） */

  /* トレーナー一覧 */
  .p-onsite-team__list-ttl {
    left: calc(715 * var(--u)); top: calc(961 * var(--u));
    display: flex; align-items: center; gap: calc(18 * var(--u));
    margin: 0;
    font-family: "Shippori Mincho", serif; font-weight: 700;
    font-size: calc(34 * var(--u)); line-height: 1.3; letter-spacing: 0.08em; color: #333333; white-space: nowrap;
  }
  .p-onsite-team__list-ttl::before,
  .p-onsite-team__list-ttl::after { content: ""; flex: none; width: calc(100 * var(--u)); height: 2px; background: rgba(177, 147, 95, 0.5); }
  .p-onsite-slider--trainers .p-onsite-slider__view { left: 0; top: calc(1045 * var(--u)); width: 100%; height: calc(465 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__track { left: calc(-115.5 * var(--u)); top: 0; gap: calc(30 * var(--u)); }
  .p-onsite-tcard { width: calc(280 * var(--u)); height: calc(465 * var(--u)); }
  .p-onsite-tcard__img { left: 0; top: 0; width: calc(280 * var(--u)); height: calc(250 * var(--u)); }
  .p-onsite-tcard__name { left: calc(15 * var(--u)); top: calc(259 * var(--u)); font-size: calc(20 * var(--u)); }
  .p-onsite-tcard:nth-child(3) .p-onsite-tcard__name { left: calc(16.5 * var(--u)); }
  .p-onsite-tcard__role { left: calc(15 * var(--u)); top: calc(288 * var(--u)); font-size: calc(14 * var(--u)); }
  .p-onsite-tcard__role::after { left: calc(1 * var(--u)); top: calc(27 * var(--u)); width: calc(245 * var(--u)); height: 2px; }
  .p-onsite-tcard__quals { left: calc(17 * var(--u)); top: calc(326 * var(--u)); width: calc(244 * var(--u)); gap: calc(6 * var(--u)); font-size: calc(14 * var(--u)); line-height: calc(18 * var(--u)); }
  .p-onsite-tcard__quals li { padding-left: calc(11 * var(--u)); }
  .p-onsite-tcard__quals li::before { top: calc(6 * var(--u)); width: calc(6 * var(--u)); height: calc(6 * var(--u)); }
  .p-onsite-tcard:nth-child(8) .p-onsite-tcard__quals { font-weight: 500; } /* Figmaでこのカードだけ Medium */
  .p-onsite-slider--trainers .p-onsite-slider__prev { left: calc(1480 * var(--u)); top: calc(1520 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__next { left: calc(1550 * var(--u)); top: calc(1520 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__dots { left: calc(872 * var(--u)); top: calc(1540 * var(--u)); }
}

/* §4 PC の実測補正（offset.py で測った1px単位のズレ） */
@media screen and (min-width: 768px) {
  .p-onsite-team__ttl { translate: 0 calc(1 * var(--u)); }
  .p-onsite-team__lead { translate: calc(1 * var(--u)) calc(-1 * var(--u)); }
  .p-onsite-team__list-ttl { translate: 0 calc(1 * var(--u)); }
  .p-onsite-panel__ttl { translate: calc(1 * var(--u)) 0; }
}

/* §4 SP（375基準。セクション上端＝Figma y3701） */
@media screen and (max-width: 767px) {
  .p-onsite-team { --u: calc(100cqw / 375); height: calc(1888 * var(--u)); overflow: hidden; }
  .p-onsite-team > *,
  .p-onsite-panel > *,
  .p-onsite-slider > * { position: absolute; }
  .p-onsite-team > .p-onsite-panel,
  .p-onsite-panel > .p-onsite-slider,
  .p-onsite-team > .p-onsite-slider { position: static; }

  .p-onsite-team__en { left: calc(105 * var(--u)); top: calc(50 * var(--u)); width: calc(168 * var(--u)); font-size: calc(60 * var(--u)); line-height: calc(75 * var(--u)); }
  .p-onsite-team__ttl { left: calc(34 * var(--u)); top: calc(98 * var(--u)); width: calc(310 * var(--u)); font-size: calc(24 * var(--u)); white-space: nowrap; }
  /* Figmaは行末の字間を幅に数えないので、枠幅に字間1つ分（0.08em）を足して同じ位置で改行させる */
  .p-onsite-team__lead { left: calc(20 * var(--u)); top: calc(180 * var(--u)); width: calc(335 * var(--u) + 0.08em); font-size: calc(16 * var(--u)); line-height: calc(29 * var(--u)); text-align: left; }

  .p-onsite-panel::before { left: 0; width: 100%; }
  .p-onsite-panel--books::before { top: calc(358 * var(--u)); height: calc(391 * var(--u)); }
  .p-onsite-panel--events::before { top: calc(807 * var(--u)); height: calc(433 * var(--u)); }
  .p-onsite-panel__ttl { height: calc(44.56 * var(--u)); padding-top: calc(8 * var(--u)); font-size: calc(20 * var(--u)); z-index: 1; }
  .p-onsite-panel--books .p-onsite-panel__ttl { left: calc(85.74 * var(--u)); top: calc(336 * var(--u)); width: calc(202.05 * var(--u)); background-image: url(../img/panel-label-sp-books.svg); }
  .p-onsite-panel--events .p-onsite-panel__ttl { left: calc(80.74 * var(--u)); top: calc(787 * var(--u)); width: calc(212.05 * var(--u)); background-image: url(../img/panel-label-sp-events.svg); }

  /* 書籍: マスク(-88,401) 550×296、並びは幅406（x0）の中央揃え・間隔10 → 開始 -473.5、y410 */
  .p-onsite-panel--books .p-onsite-slider__view { left: calc(-88 * var(--u)); top: calc(401 * var(--u)); width: calc(550 * var(--u)); height: calc(296 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__track { left: calc((88 - 473.5) * var(--u)); top: calc(9 * var(--u)); height: calc(260 * var(--u)); align-items: center; gap: calc(10 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item { width: calc(177 * var(--u)); height: calc(260 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="2"] { height: calc(258.69 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="3"] { width: calc(176 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="4"] { width: calc(183 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="5"] { width: calc(222 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="6"] { width: calc(181 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__prev { left: calc(12 * var(--u)); top: calc(519 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__next { left: calc(327 * var(--u)); top: calc(519 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__dots { left: calc(125 * var(--u)); top: calc(692 * var(--u)); }

  /* 講演: 並びは x-88 幅550 の中央揃え、329.1×7・間隔10 → 開始 -994.85、y862 */
  .p-onsite-panel--events .p-onsite-slider__view { left: 0; top: calc(862 * var(--u)); width: 100%; height: calc(302 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__track { left: calc(-994.85 * var(--u)); top: 0; gap: calc(10 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__item { width: calc(329.1 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__item img { height: calc(251.67 * var(--u)); }
  .p-onsite-panel--events figcaption { margin-top: calc(9.68 * var(--u)); font-size: calc(15.487 * var(--u)); line-height: calc(20 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__prev { left: calc(10 * var(--u)); top: calc(968 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__next { left: calc(325 * var(--u)); top: calc(968 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__dots { left: calc(124 * var(--u)); top: calc(1183 * var(--u)); }

  .p-onsite-slider__prev,
  .p-onsite-slider__next { width: calc(40 * var(--u)); height: calc(40 * var(--u)); }
  .p-onsite-slider__prev.is-line { background-image: url(../img/arrow-prev-line-sp.svg); }
  .p-onsite-slider__next.is-line { background-image: url(../img/arrow-next-line-sp.svg); }
  .p-onsite-slider__prev.is-fill { background-image: url(../img/arrow-prev-fill-sp.svg); }
  .p-onsite-slider__next.is-fill { background-image: url(../img/arrow-next-fill-sp.svg); }
  .p-onsite-slider__dots { height: calc(7 * var(--u)); gap: calc(10 * var(--u)); }
  .p-onsite-slider__dot { width: calc(7 * var(--u)); height: calc(7 * var(--u)); background: #DDDDDD; }

  /* トレーナー一覧（見出し x54.5 y1290、カードは x-6 幅677 の中央揃え・間隔10 → 開始 -822.5、y1346） */
  .p-onsite-team__list-ttl {
    left: calc(54.5 * var(--u)); top: calc(1290 * var(--u));
    display: flex; align-items: center; gap: calc(10 * var(--u));
    margin: 0;
    font-family: "Shippori Mincho", serif; font-weight: 700;
    font-size: calc(20 * var(--u)); line-height: 1.3; letter-spacing: 0.08em; color: #333333; white-space: nowrap;
  }
  .p-onsite-team__list-ttl::before,
  .p-onsite-team__list-ttl::after { content: ""; flex: none; width: calc(50 * var(--u)); height: 2px; background: rgba(177, 147, 95, 0.5); }
  .p-onsite-slider--trainers .p-onsite-slider__view { left: 0; top: calc(1346 * var(--u)); width: 100%; height: calc(465 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__track { left: calc(-822.5 * var(--u)); top: 0; gap: calc(10 * var(--u)); }
  .p-onsite-tcard { width: calc(280 * var(--u)); height: calc(465 * var(--u)); }
  .p-onsite-tcard__img { left: 0; top: 0; width: calc(280 * var(--u)); height: calc(250 * var(--u)); }
  .p-onsite-tcard__name { left: calc(15 * var(--u)); top: calc(259 * var(--u)); font-size: calc(20 * var(--u)); }
  .p-onsite-tcard__role { left: calc(15 * var(--u)); top: calc(288 * var(--u)); font-size: calc(14 * var(--u)); }
  .p-onsite-tcard__role::after { left: calc(1 * var(--u)); top: calc(27 * var(--u)); width: calc(245 * var(--u)); height: 2px; }
  .p-onsite-tcard__quals { left: calc(17 * var(--u)); top: calc(326 * var(--u)); width: calc(244 * var(--u)); gap: calc(6 * var(--u)); font-size: calc(14 * var(--u)); line-height: calc(18 * var(--u)); }
  .p-onsite-tcard__quals li { padding-left: calc(11 * var(--u)); }
  .p-onsite-tcard__quals li::before { top: calc(6 * var(--u)); width: calc(6 * var(--u)); height: calc(6 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__prev { left: calc(10 * var(--u)); top: calc(1451 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__next { left: calc(325 * var(--u)); top: calc(1451 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__dots { left: calc(124.5 * var(--u)); top: calc(1831 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__dot.is-active { background: #B1935F; }
}

/* §4 SP の実測補正（offset.py） */
@media screen and (max-width: 767px) {
  .p-onsite-team__ttl { translate: calc(1 * var(--u)) 0; }
  .p-onsite-panel--books .p-onsite-panel__ttl { translate: calc(2 * var(--u)) 0; }
  .p-onsite-panel--events .p-onsite-panel__ttl { translate: calc(2 * var(--u)) calc(1 * var(--u)); }
  .p-onsite-panel--events figcaption { translate: 0 calc(-1 * var(--u)); }
  .p-onsite-team__list-ttl { translate: 0 calc(1 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__dots { translate: calc(-1 * var(--u)) 0; }
}

/* --------------------------------------------------------------------------
   §5 代表メッセージ（PC y5229–6462）／§6 出張パーソナルのメリット（PC y6462–6964）
   背景 #FDFBF7 は2セクション共通（Figmaは1枚の矩形）
   -------------------------------------------------------------------------- */
.p-onsite-message,
.p-onsite-merit { position: relative; background: #FDFBF7; }
.p-onsite-message__panel { background: #FFFFFF; }
.p-onsite-message__img img { width: 100%; height: 100%; }
.p-onsite-message__en { margin: 0; font-family: "Marcellus", serif; font-weight: 400; text-align: center; color: #F3F1EB; white-space: nowrap; }
.p-onsite-message__ttl { margin: 0; font-family: "Shippori Mincho", serif; font-weight: 500; line-height: 1.3; letter-spacing: 0.08em; text-align: center; color: #333333; white-space: nowrap; }
.p-onsite-message__body p { margin: 0; }
.p-onsite-message__body,
.p-onsite-merit__card-txt { font-family: "Noto Sans JP", sans-serif; font-weight: 400; letter-spacing: 0.08em; color: #333333; }
.p-onsite-message__p2 strong { font-weight: 800; }
.p-onsite-message__quote { background: rgba(234, 230, 215, 0.6); }
.p-onsite-message__quote strong { font-weight: 700; }
.p-onsite-message__p2 { position: relative; }
.p-onsite-message__p2 p { position: relative; }
.p-onsite-message__mark { position: absolute; left: 1px; height: 7px; background: #FFEA4B; }
.p-onsite-message__company { display: block; font-weight: 800; line-height: 1.3; color: #B1935F; white-space: nowrap; }
.p-onsite-message__name { display: block; font-family: "Shippori Mincho", serif; font-weight: 700; line-height: 1.3; color: #333333; white-space: nowrap; }

.p-onsite-merit__ttl { margin: 0; font-family: "Shippori Mincho", serif; font-weight: 700; line-height: 1.3; letter-spacing: 0.08em; text-align: center; color: #333333; white-space: nowrap; }
.p-onsite-merit__ttl::after { content: ""; position: absolute; background: url(../img/merit-deco.svg) no-repeat 0 0 / 100% 100%; }
.p-onsite-merit__card::before { content: ""; position: absolute; border: 1px solid #B1935F; border-radius: 8px; background: #FFFFFF; }
.p-onsite-merit__card-ttl { position: relative; margin: 0; background: #B1935F; box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25); font-family: "Shippori Mincho", serif; font-weight: 700; line-height: 1.3; letter-spacing: 0.08em; color: #FFFFFF; white-space: nowrap; }
.p-onsite-merit__card-txt { position: relative; margin: 0; }
.p-onsite-merit__card-txt strong { color: #B1935F; }
.p-onsite-merit__card--1 .p-onsite-merit__card-txt strong { font-weight: 800; }
.p-onsite-merit__card--2 .p-onsite-merit__card-txt strong { font-weight: 700; }

@media screen and (min-width: 768px) {
  .p-onsite-message { --u: calc(100cqw / 1920); height: calc(1233 * var(--u)); }
  .p-onsite-message > *,
  .p-onsite-message__body > * { position: absolute; }
  .p-onsite-message > .p-onsite-message__body { position: static; }
  .p-onsite-message__panel { left: calc(563 * var(--u)); top: calc(370 * var(--u)); width: calc(1037 * var(--u)); height: calc(843 * var(--u)); }
  .p-onsite-message__img { left: calc(320 * var(--u)); top: calc(315 * var(--u)); width: calc(410 * var(--u)); height: calc(520 * var(--u)); }
  .p-onsite-message__en { left: calc(701 * var(--u)); top: calc(72 * var(--u)); width: calc(519 * var(--u)); font-size: calc(120 * var(--u)); line-height: calc(150 * var(--u)); }
  .p-onsite-message__ttl { left: calc(559 * var(--u)); top: calc(167 * var(--u)); width: calc(806 * var(--u)); font-size: calc(34 * var(--u)); }
  .p-onsite-message__body { font-size: calc(16 * var(--u)); line-height: calc(29 * var(--u)); }
  .p-onsite-message__p1 { left: calc(786 * var(--u)); top: calc(425 * var(--u)); width: calc(750 * var(--u)); }
  .p-onsite-message__quote { left: calc(787 * var(--u)); top: calc(509 * var(--u)); width: calc(552 * var(--u)); height: calc(113 * var(--u)); padding: calc(12 * var(--u)) 0 0 calc(19 * var(--u)); }
  .p-onsite-message__p2 { left: calc(786 * var(--u)); top: calc(649 * var(--u)); width: calc(750 * var(--u) + 0.08em); }
  .p-onsite-message__p2 p + p { margin-top: calc(29 * var(--u)); }
  .p-onsite-message__mark--1 { top: calc(136 * var(--u)); width: calc(291 * var(--u)); height: calc(7 * var(--u)); }
  .p-onsite-message__mark--2 { top: calc(309 * var(--u)); width: calc(740 * var(--u)); height: calc(7 * var(--u)); }
  .p-onsite-message__mark--3 { top: calc(337 * var(--u)); width: calc(185 * var(--u)); height: calc(7 * var(--u)); }
  .p-onsite-message__sign { left: calc(1193 * var(--u)); top: calc(1084 * var(--u)); width: calc(343 * var(--u)); }
  .p-onsite-message__company { font-size: calc(16 * var(--u)); }
  .p-onsite-message__name { margin: calc(6.2 * var(--u)) 0 0 calc(160 * var(--u)); font-size: calc(40 * var(--u)); letter-spacing: 0.08em; }

  .p-onsite-merit { --u: calc(100cqw / 1920); height: calc(502 * var(--u)); }
  .p-onsite-merit > *,
  .p-onsite-merit__card > * { position: absolute; }
  .p-onsite-merit > .p-onsite-merit__card { position: static; }
  .p-onsite-merit__ttl { left: calc(756 * var(--u)); top: calc(30 * var(--u)); width: calc(413 * var(--u)); font-size: calc(32 * var(--u)); }
  .p-onsite-merit__ttl::after { left: calc(3 * var(--u)); top: calc(56 * var(--u)); width: calc(408 * var(--u)); height: calc(17 * var(--u)); }
  .p-onsite-merit__card::before { top: calc((137 + 25) * var(--u)); width: calc(577 * var(--u)); height: calc(230 * var(--u)); }
  .p-onsite-merit__card--1::before { left: calc((319.98 + 19.96) * var(--u)); }
  .p-onsite-merit__card--2::before { left: calc((983.01 + 39.93) * var(--u)); }
  .p-onsite-merit__card-ttl { top: calc(137 * var(--u)); height: calc(49.51 * var(--u)); padding-top: calc(8 * var(--u)); font-size: calc(24 * var(--u)); }
  .p-onsite-merit__card--1 .p-onsite-merit__card-ttl { left: calc(319.98 * var(--u)); width: calc(386.13 * var(--u)); padding-left: calc(30.96 * var(--u)); }
  .p-onsite-merit__card--2 .p-onsite-merit__card-ttl { left: calc(983.01 * var(--u)); width: calc(425.79 * var(--u)); padding-left: calc(29.96 * var(--u)); }
  .p-onsite-merit__card-txt { top: calc((137 + 71) * var(--u)); width: calc(530 * var(--u) + 0.08em); font-size: calc(18 * var(--u)); line-height: calc(32 * var(--u)); }
  .p-onsite-merit__card--1 .p-onsite-merit__card-txt { left: calc((319.98 + 52) * var(--u)); }
  .p-onsite-merit__card--2 .p-onsite-merit__card-txt { left: calc((983.01 + 67.97) * var(--u)); }
}

/* §5・§6 PC の実測補正 */
@media screen and (min-width: 768px) {
  .p-onsite-message__en { translate: 0 calc(1 * var(--u)); }
  .p-onsite-message__ttl { translate: calc(1 * var(--u)) calc(1 * var(--u)); }
  .p-onsite-merit__ttl { translate: calc(1 * var(--u)) 0; }
  .p-onsite-merit__card-txt { translate: 0 calc(-1 * var(--u)); } /* 行送り32pxの本文は1px上げ（§3と同じ） */
}
.p-onsite-message__quote span { display: block; }

/* §5・§6 SP（§5 は Figma y5589–7290、§6 は y7290–8097） */
@media screen and (max-width: 767px) {
  .p-onsite-message { --u: calc(100cqw / 375); height: calc(1701 * var(--u)); }
  .p-onsite-message > *,
  .p-onsite-message__body > * { position: absolute; }
  .p-onsite-message > .p-onsite-message__body { position: static; }
  .p-onsite-message__panel { left: calc(20 * var(--u)); top: calc(312 * var(--u)); width: calc(335 * var(--u)); height: calc(1361 * var(--u)); }
  .p-onsite-message__img { left: calc(100 * var(--u)); top: calc(215 * var(--u)); width: calc(176 * var(--u)); height: calc(222 * var(--u)); }
  .p-onsite-message__en { left: calc(59 * var(--u)); top: calc(50 * var(--u)); width: calc(260 * var(--u)); font-size: calc(60 * var(--u)); line-height: calc(75 * var(--u)); }
  .p-onsite-message__ttl { left: calc(23 * var(--u)); top: calc(98 * var(--u)); width: calc(331 * var(--u)); font-size: calc(22 * var(--u)); }
  .p-onsite-message__body { font-size: calc(16 * var(--u)); line-height: calc(29 * var(--u)); }
  .p-onsite-message__p1 { left: calc(40 * var(--u)); top: calc(457 * var(--u)); width: calc(295 * var(--u) + 0.08em); }
  .p-onsite-message__quote { left: calc(40 * var(--u)); top: calc(564 * var(--u)); width: calc(295 * var(--u)); height: calc(199 * var(--u)); padding: calc(12 * var(--u)) 0 0 calc(14 * var(--u)); }
  /* Figmaは2行目を半角スペース3つで字下げしている → ぶら下げインデントで同じ位置に */
  .p-onsite-message__quote span { padding-left: calc(1em - 1px); text-indent: calc(-1em + 1px); } /* 実測で1em−1px */
  .p-onsite-message__p2 { left: calc(40 * var(--u)); top: calc(783 * var(--u)); width: calc(295 * var(--u) + 0.08em); }
  .p-onsite-message__p2 p + p { margin-top: calc(29 * var(--u)); }
  .p-onsite-message__mark--1 { top: calc(252 * var(--u)); width: calc(291 * var(--u)); height: calc(7 * var(--u)); }
  .p-onsite-message__mark--2 { top: calc(571 * var(--u)); width: calc(291 * var(--u)); height: calc(7 * var(--u)); }
  .p-onsite-message__mark--3 { top: calc(599 * var(--u)); width: calc(289 * var(--u)); height: calc(7 * var(--u)); }
  .p-onsite-message__mark--4 { top: calc(628 * var(--u)); width: calc(289 * var(--u)); height: calc(7 * var(--u)); }
  .p-onsite-message__mark--5 { top: calc(657 * var(--u)); width: calc(48 * var(--u)); height: calc(7 * var(--u)); }
  .p-onsite-message__sign { left: calc(56 * var(--u)); top: calc(1586 * var(--u)); width: calc(279 * var(--u)); }
  .p-onsite-message__company { font-size: calc(13 * var(--u)); }
  .p-onsite-message__name { margin: calc(4.1 * var(--u)) 0 0 calc(150 * var(--u)); font-size: calc(28 * var(--u)); letter-spacing: 0.08em; }

  .p-onsite-merit { --u: calc(100cqw / 375); height: calc(807 * var(--u)); }
  .p-onsite-merit > *,
  .p-onsite-merit__card > * { position: absolute; }
  .p-onsite-merit > .p-onsite-merit__card { position: static; }
  .p-onsite-merit__ttl { left: calc(46 * var(--u)); top: calc(22 * var(--u)); width: calc(284 * var(--u)); font-size: calc(22 * var(--u)); }
  .p-onsite-merit__ttl::after { left: 0; top: calc(39 * var(--u)); width: calc(284 * var(--u)); height: calc(12 * var(--u)); background-image: url(../img/merit-deco-sp.svg); }
  .p-onsite-merit__card::before { left: calc(20 * var(--u)); width: calc(335 * var(--u)); }
  .p-onsite-merit__card--1::before { top: calc((82 + 20.13) * var(--u)); height: calc(370 * var(--u)); }
  .p-onsite-merit__card--2::before { top: calc((492 + 19.5) * var(--u)); height: calc(245 * var(--u)); }
  .p-onsite-merit__card-ttl { height: calc(39.61 * var(--u)); font-size: calc(20 * var(--u)); }
  .p-onsite-merit__card--1 .p-onsite-merit__card-ttl { left: calc((20 + 12.29) * var(--u)); top: calc(82 * var(--u)); width: calc(308.57 * var(--u)); padding: calc(4.13 * var(--u)) 0 0 calc(18.67 * var(--u)); letter-spacing: 0.05em; }
  .p-onsite-merit__card--2 .p-onsite-merit__card-ttl { left: calc((20 + 2.62) * var(--u)); top: calc(492 * var(--u)); width: calc(330.78 * var(--u)); padding: calc(4.5 * var(--u)) 0 0 calc(22.34 * var(--u)); letter-spacing: 0.03em; }
  .p-onsite-merit__card-txt { left: calc(40 * var(--u)); width: calc(295 * var(--u) + 0.08em); font-size: calc(18 * var(--u)); line-height: calc(32 * var(--u)); }
  .p-onsite-merit__card--1 .p-onsite-merit__card-txt { top: calc((82 + 49.13) * var(--u)); }
  .p-onsite-merit__card--2 .p-onsite-merit__card-txt { top: calc((492 + 54.5) * var(--u)); }
}
@media screen and (max-width: 767px) {
  .p-onsite-merit__card-txt { translate: 0 calc(-1 * var(--u)); }
  .p-onsite-merit__card--1 .p-onsite-merit__card-ttl { translate: 0 calc(1 * var(--u)); }
  .p-onsite-message__ttl { translate: calc(1 * var(--u)) 0; }
}

/* --------------------------------------------------------------------------
   §7 お客様の声（PC y6964–7802：3枚並び・送りなし／SP y8097–8829：横スライド）
   -------------------------------------------------------------------------- */
.p-onsite-voices { position: relative; }
.p-onsite-voices__en { margin: 0; font-family: "Marcellus", serif; font-weight: 400; text-align: center; color: #F3F1EB; white-space: nowrap; }
.p-onsite-voices__ttl { margin: 0; font-family: "Shippori Mincho", serif; font-weight: 500; line-height: 1.3; letter-spacing: 0.08em; text-align: center; color: #333333; white-space: nowrap; }
.p-onsite-vcard { position: relative; border: 1px solid #B1935F; border-radius: 8px; }
.p-onsite-vcard::before { content: ""; position: absolute; left: -1px; right: -1px; bottom: -1px; border-radius: 0 0 8px 8px; background: #FDFBF7; z-index: -1; }
.p-onsite-vcard > * { position: absolute; margin: 0; }
.p-onsite-vcard__meta,
.p-onsite-vcard__ttl { font-family: "Shippori Mincho", serif; font-weight: 700; letter-spacing: 0.08em; color: #333333; white-space: nowrap; }
.p-onsite-vcard__txt { font-family: "Noto Sans JP", sans-serif; font-weight: 400; letter-spacing: 0.08em; color: #333333; }
/* 点線（2pxおき・線幅1pxの中央＝2行に半分の濃さ） */
.p-onsite-vcard__ttl::after { content: ""; position: absolute; left: 0; height: 2px; background: repeating-linear-gradient(90deg, rgba(177, 147, 95, 0.5) 0 2px, transparent 2px 4px); }
.p-onsite-slider--voices .p-onsite-slider__track { isolation: isolate; }

@media screen and (min-width: 768px) {
  .p-onsite-voices { --u: calc(100cqw / 1920); height: calc(838 * var(--u)); }
  .p-onsite-voices > *,
  .p-onsite-slider--voices > * { position: absolute; }
  .p-onsite-voices > .p-onsite-slider { position: static; }
  .p-onsite-voices__en { left: calc(759 * var(--u)); top: calc(71 * var(--u)); width: calc(403 * var(--u)); font-size: calc(120 * var(--u)); line-height: calc(150 * var(--u)); }
  .p-onsite-voices__ttl { left: calc(872 * var(--u)); top: calc(166 * var(--u)); width: calc(181 * var(--u)); font-size: calc(34 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__view { left: calc(320 * var(--u)); top: calc(252 * var(--u)); width: calc(1281 * var(--u)); height: calc(486 * var(--u)); overflow: visible; }
  .p-onsite-slider--voices .p-onsite-slider__track { left: 0; top: 0; gap: calc(48 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__prev,
  .p-onsite-slider--voices .p-onsite-slider__next,
  .p-onsite-slider--voices .p-onsite-slider__dots { display: none; }
  .p-onsite-vcard { width: calc(395 * var(--u)); height: calc(486 * var(--u)); }
  .p-onsite-vcard::before { top: calc(123 * var(--u)); }
  .p-onsite-vcard img.p-onsite-vcard__avatar { left: calc(29 * var(--u)); top: calc(22 * var(--u)); width: calc(90 * var(--u)); height: calc(90 * var(--u)); }
  .p-onsite-vcard__meta { left: calc(132 * var(--u)); top: calc(39 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(26 * var(--u)); }
  .p-onsite-vcard__ttl { left: calc(32 * var(--u)); top: calc(145 * var(--u)); font-size: calc(22 * var(--u)); line-height: calc(35 * var(--u)); }
  .p-onsite-vcard__ttl::after { top: calc(82 * var(--u)); width: calc(335 * var(--u)); }
  .p-onsite-vcard__txt { left: calc(32 * var(--u)); top: calc(240 * var(--u)); width: calc(335 * var(--u) + 0.08em); font-size: calc(18 * var(--u)); line-height: calc(32 * var(--u)); translate: 0 calc(-1 * var(--u)); }
  /* 1枚目だけFigmaの内側の位置が4px左（アバター26・文字29・名前139） */
  .p-onsite-vcard--1 img.p-onsite-vcard__avatar { left: calc(25 * var(--u)); }
  .p-onsite-vcard--1 .p-onsite-vcard__meta { left: calc(138 * var(--u)); }
  .p-onsite-vcard--1 .p-onsite-vcard__ttl,
  .p-onsite-vcard--1 .p-onsite-vcard__txt { left: calc(28 * var(--u)); }
}
@media screen and (min-width: 768px) {
  .p-onsite-voices__en,
  .p-onsite-voices__ttl { translate: 0 calc(1 * var(--u)); }
}

/* §7 SP（Figma y8097–8829。カード335×496を間隔10で並べ、2枚目が中央＝開始 -325） */
@media screen and (max-width: 767px) {
  .p-onsite-voices { --u: calc(100cqw / 375); height: calc(732 * var(--u)); overflow: hidden; }
  .p-onsite-voices > *,
  .p-onsite-slider--voices > * { position: absolute; }
  .p-onsite-voices > .p-onsite-slider { position: static; }
  .p-onsite-voices__en { left: calc(87 * var(--u)); top: calc(50 * var(--u)); width: calc(202 * var(--u)); font-size: calc(60 * var(--u)); line-height: calc(75 * var(--u)); }
  .p-onsite-voices__ttl { left: calc(126 * var(--u)); top: calc(98 * var(--u)); width: calc(128 * var(--u)); font-size: calc(24 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__view { left: 0; top: calc(159 * var(--u)); width: 100%; height: calc(496 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__track { left: calc(-325 * var(--u)); top: 0; gap: calc(10 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__prev { left: calc(10 * var(--u)); top: calc(198 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__next { left: calc(325 * var(--u)); top: calc(198 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__dots { left: calc(124.5 * var(--u)); top: calc(675 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__dot.is-active { background: #B1935F; box-shadow: none; }
  .p-onsite-vcard { width: calc(335 * var(--u)); height: calc(496 * var(--u)); }
  .p-onsite-vcard::before { top: calc(122 * var(--u)); }
  .p-onsite-vcard img.p-onsite-vcard__avatar { left: calc(29 * var(--u)); top: calc(14 * var(--u)); width: calc(90 * var(--u)); height: calc(90 * var(--u)); }
  .p-onsite-vcard__meta { left: calc(132 * var(--u)); top: calc(38 * var(--u)); font-size: calc(14 * var(--u)); line-height: calc(22 * var(--u)); }
  .p-onsite-vcard__ttl { left: calc(22 * var(--u)); top: calc(134 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(32 * var(--u)); }
  .p-onsite-vcard__ttl::after { top: calc(79 * var(--u)); width: calc(295 * var(--u)); }
  .p-onsite-vcard__txt { left: calc(22 * var(--u)); top: calc(221 * var(--u)); width: calc(295 * var(--u) + 0.08em); font-size: calc(18 * var(--u)); line-height: calc(32 * var(--u)); translate: 0 calc(-1 * var(--u)); }
  .p-onsite-vcard--1 img.p-onsite-vcard__avatar { left: calc(25 * var(--u)); }
  .p-onsite-vcard--1 .p-onsite-vcard__meta { left: calc(138 * var(--u)); }
  .p-onsite-vcard--1 .p-onsite-vcard__ttl,
  .p-onsite-vcard--1 .p-onsite-vcard__txt { left: calc(18 * var(--u)); }
}
@media screen and (max-width: 767px) {
  .p-onsite-vcard__ttl { translate: 0 calc(1 * var(--u)); }
  .p-onsite-vcard__ttl::after { translate: 0 calc(-1 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__dots { translate: calc(-1 * var(--u)) 0; }
}

/* --------------------------------------------------------------------------
   §8 CTA①／§12 CTA②（PC 1920×517／SP 375×457。背景は書き出し画像）
   -------------------------------------------------------------------------- */
.p-onsite-cta { position: relative; overflow: hidden; color: #FFFFFF; }
.p-onsite-cta > * { position: absolute; margin: 0; }
.p-onsite-cta__en { font-family: "Marcellus", serif; font-weight: 400; text-align: center; color: rgba(243, 241, 235, 0.3); white-space: nowrap; }
.p-onsite-cta__ttl { font-family: "Shippori Mincho", serif; font-weight: 700; line-height: 1.3; letter-spacing: 0.08em; text-align: center; white-space: nowrap; }
.p-onsite-cta__lead,
.p-onsite-cta__note { font-family: "Noto Sans JP", sans-serif; font-weight: 500; letter-spacing: 0.08em; text-align: center; white-space: nowrap; }
.p-onsite-cta__btn { border-radius: 5px; background: #C77A43; font-family: "Noto Sans JP", sans-serif; font-weight: 800; letter-spacing: 0.08em; color: #FFFFFF; text-decoration: none; white-space: nowrap; }

@media screen and (min-width: 768px) {
  .p-onsite-cta {
    --u: calc(100cqw / 1920);
    height: calc(517 * var(--u));
    background: url(../img/cta-bg.jpg) no-repeat calc(-3 * var(--u)) 0 / calc(1926 * var(--u)) 100%;
    background-image: image-set(url(../img/cta-bg.jpg) 1x, url(../img/cta-bg@2x.jpg) 2x);
  }
  .p-onsite-cta__en { left: calc(877 * var(--u)); top: calc(100 * var(--u)); width: calc(167 * var(--u)); font-size: calc(30 * var(--u)); line-height: calc(38 * var(--u)); }
  .p-onsite-cta__ttl { left: calc(643 * var(--u)); top: calc(129 * var(--u)); /* Figma 128。実測で1px下 */ width: calc(632 * var(--u)); font-size: calc(42 * var(--u)); }
  .p-onsite-cta__lead { left: calc(505 * var(--u)); top: calc(211 * var(--u)); width: calc(911 * var(--u)); font-size: calc(18 * var(--u)); line-height: calc(32 * var(--u)); }
  .p-onsite-cta__btn { left: calc(773 * var(--u)); top: calc(315 * var(--u)); width: calc(373 * var(--u)); height: calc(70 * var(--u)); padding: calc(22 * var(--u)) 0 0 calc(90 * var(--u)); font-size: calc(18 * var(--u)); line-height: calc(26 * var(--u)); }
  .p-onsite-cta__note { left: calc(817 * var(--u)); top: calc(395 * var(--u)); width: calc(287 * var(--u)); font-size: calc(12 * var(--u)); line-height: calc(22 * var(--u)); }
}
@media screen and (max-width: 767px) {
  .p-onsite-cta {
    --u: calc(100cqw / 375);
    height: calc(457 * var(--u));
    background: url(../img/cta-bg-sp.jpg) no-repeat 0 0 / 100% 100%;
    background-image: image-set(url(../img/cta-bg-sp.jpg) 1x, url(../img/cta-bg-sp@2x.jpg) 2x);
  }
  .p-onsite-cta__en { left: calc(104 * var(--u)); top: calc(50 * var(--u)); width: calc(167 * var(--u)); font-size: calc(30 * var(--u)); line-height: calc(38 * var(--u)); }
  .p-onsite-cta__ttl { left: calc(46 * var(--u)); top: calc(72 * var(--u)); width: calc(284 * var(--u)); font-size: calc(24 * var(--u)); }
  .p-onsite-cta__lead { left: calc(21 * var(--u)); top: calc(149 * var(--u)); /* Figma 20。実測で1px右 */ width: calc(335 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(29 * var(--u)); }
  .p-onsite-cta__btn { left: calc(20 * var(--u)); top: calc(315 * var(--u)); width: calc(335 * var(--u)); height: calc(60 * var(--u)); padding: calc(19 * var(--u)) 0 0 calc(82 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(23 * var(--u)); }
  .p-onsite-cta__note { left: calc(44 * var(--u)); top: calc(385 * var(--u)); width: calc(287 * var(--u)); font-size: calc(12 * var(--u)); line-height: calc(22 * var(--u)); }
}

/* --------------------------------------------------------------------------
   §9 料金（PC y8319–9129／SP y9286–10011）
   -------------------------------------------------------------------------- */
.p-onsite-price { position: relative; }
.p-onsite-price > * { position: absolute; margin: 0; }
.p-onsite-price__en { font-family: "Marcellus", serif; font-weight: 400; text-align: center; color: #F3F1EB; white-space: nowrap; }
.p-onsite-price__ttl { font-family: "Shippori Mincho", serif; font-weight: 500; line-height: 1.3; letter-spacing: 0.08em; text-align: center; color: #333333; white-space: nowrap; }
.p-onsite-price__row { position: absolute; border-radius: 8px; background: #FDFBF7; }
.p-onsite-price__row > * { margin: 0; }
.p-onsite-price__row dt,
.p-onsite-price__unit { position: absolute; font-family: "Shippori Mincho", serif; font-weight: 700; line-height: 1.3; letter-spacing: 0.08em; color: #333333; white-space: nowrap; }
.p-onsite-price__amount { position: absolute; font-family: "Shippori Mincho", serif; font-weight: 700; line-height: 1.3; text-align: right; color: #B1935F; white-space: nowrap; }
.p-onsite-price__notes { padding: 0; list-style: none; font-family: "Noto Sans JP", sans-serif; font-weight: 400; letter-spacing: 0.08em; color: #333333; }
/* 「・」の後ろにそろえるぶら下げ（「・」は1文字＋字間） */
.p-onsite-price__notes li { padding-left: 1.08em; text-indent: -1.08em; }
.p-onsite-price__btn { border-radius: 5px; background: #C77A43; font-family: "Noto Sans JP", sans-serif; font-weight: 800; letter-spacing: 0.08em; color: #FFFFFF; text-decoration: none; white-space: nowrap; }

@media screen and (min-width: 768px) {
  .p-onsite-price { --u: calc(100cqw / 1920); height: calc(810 * var(--u)); }
  .p-onsite-price__en { left: calc(808 * var(--u)); top: calc(70 * var(--u)); width: calc(305 * var(--u)); font-size: calc(120 * var(--u)); line-height: calc(150 * var(--u)); }
  .p-onsite-price__ttl { left: calc(925 * var(--u)); top: calc(159 * var(--u)); width: calc(71 * var(--u)); font-size: calc(34 * var(--u)); }
  .p-onsite-price__list { left: 0; top: 0; width: 100%; }
  .p-onsite-price__row { left: calc(540 * var(--u)); width: calc(840 * var(--u)); height: calc(90 * var(--u)); }
  .p-onsite-price__row--1 { top: calc(245 * var(--u)); }
  .p-onsite-price__row--2 { top: calc(345 * var(--u)); }
  .p-onsite-price__row dt { left: calc(70 * var(--u)); top: calc(32 * var(--u)); font-size: calc(22 * var(--u)); }
  .p-onsite-price__amount { top: calc(13 * var(--u)); height: calc(60 * var(--u)); font-size: calc(46 * var(--u)); }
  .p-onsite-price__yen { font-size: calc(22 * var(--u)); }
  .p-onsite-price__unit { top: calc(42 * var(--u)); font-size: calc(16 * var(--u)); }
  .p-onsite-price__row--1 .p-onsite-price__amount { left: calc(482 * var(--u)); width: calc(195 * var(--u)); }
  .p-onsite-price__row--1 .p-onsite-price__unit { left: calc(676 * var(--u)); }
  .p-onsite-price__row--2 .p-onsite-price__amount { left: calc(453 * var(--u)); width: calc(169 * var(--u)); }
  .p-onsite-price__row--2 .p-onsite-price__unit { left: calc(621 * var(--u)); }
  .p-onsite-price__notes { left: calc(577 * var(--u)); top: calc(455 * var(--u)); width: calc(780 * var(--u) + 0.08em); font-size: calc(16 * var(--u)); line-height: calc(29 * var(--u)); }
  .p-onsite-price__btn { left: calc(776 * var(--u)); top: calc(640 * var(--u)); width: calc(373 * var(--u)); height: calc(70 * var(--u)); padding: calc(22 * var(--u)) 0 0 calc(30 * var(--u)); font-size: calc(18 * var(--u)); line-height: calc(26 * var(--u)); }
}
@media screen and (max-width: 767px) {
  .p-onsite-price { --u: calc(100cqw / 375); height: calc(775 * var(--u)); } /* 2026-10-25 注記1項目（2行）追加で +50 */
  .p-onsite-price__en { left: calc(111 * var(--u)); top: calc(50 * var(--u)); width: calc(153 * var(--u)); font-size: calc(60 * var(--u)); line-height: calc(75 * var(--u)); }
  .p-onsite-price__ttl { left: calc(160 * var(--u)); top: calc(98 * var(--u)); width: calc(55 * var(--u)); font-size: calc(26 * var(--u)); }
  .p-onsite-price__list { left: 0; top: 0; width: 100%; }
  .p-onsite-price__row { left: calc(20 * var(--u)); width: calc(335 * var(--u)); height: calc(109 * var(--u)); }
  .p-onsite-price__row--1 { top: calc(162 * var(--u)); }
  .p-onsite-price__row--2 { top: calc(281 * var(--u)); }
  .p-onsite-price__row dt { font-size: calc(18 * var(--u)); }
  .p-onsite-price__amount { height: calc(52 * var(--u)); font-size: calc(40 * var(--u)); }
  .p-onsite-price__yen { font-size: calc(22 * var(--u)); }
  .p-onsite-price__unit { font-size: calc(14 * var(--u)); }
  .p-onsite-price__row--1 dt { left: calc(100 * var(--u)); top: calc(19 * var(--u)); }
  .p-onsite-price__row--1 .p-onsite-price__amount { left: calc(42 * var(--u)); top: calc(41 * var(--u)); width: calc(171 * var(--u)); }
  .p-onsite-price__row--1 .p-onsite-price__unit { left: calc(209 * var(--u)); top: calc(67 * var(--u)); }
  .p-onsite-price__row--2 dt { left: calc(42 * var(--u)); top: calc(18 * var(--u)); }
  .p-onsite-price__row--2 .p-onsite-price__amount { left: calc(29 * var(--u)); top: calc(40 * var(--u)); width: calc(149 * var(--u)); }
  .p-onsite-price__row--2 .p-onsite-price__unit { left: calc(173 * var(--u)); top: calc(66 * var(--u)); }
  .p-onsite-price__notes { left: calc(20 * var(--u)); top: calc(400 * var(--u)); width: calc(335 * var(--u) + 0.08em); font-size: calc(14 * var(--u)); line-height: calc(25 * var(--u)); }
  .p-onsite-price__btn { left: calc(20 * var(--u)); top: calc(655 * var(--u)); width: calc(335 * var(--u)); height: calc(70 * var(--u)); padding: calc(24 * var(--u)) 0 0 calc(30 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(23 * var(--u)); }
}
@media screen and (min-width: 768px) {
  .p-onsite-price__en,
  .p-onsite-price__ttl,
  .p-onsite-price__amount { translate: 0 calc(1 * var(--u)); }
}

/* --------------------------------------------------------------------------
   §10 対応エリア（PC y9129–9789／SP y10011–10625）
   -------------------------------------------------------------------------- */
.p-onsite-area { position: relative; }
.p-onsite-area > * { position: absolute; margin: 0; }
.p-onsite-area__en { font-family: "Marcellus", serif; font-weight: 400; color: #F3F1EB; white-space: nowrap; }
.p-onsite-area__ttl { font-family: "Shippori Mincho", serif; font-weight: 500; line-height: 1.3; letter-spacing: 0.08em; color: #333333; white-space: nowrap; }
.p-onsite-area__map img { width: 100%; height: 100%; }
.p-onsite-area__txt { font-family: "Noto Sans JP", sans-serif; font-weight: 400; letter-spacing: 0.08em; color: #333333; }
@media screen and (min-width: 768px) {
  .p-onsite-area { --u: calc(100cqw / 1920); height: calc(660 * var(--u)); }
  .p-onsite-area__en { left: calc(320 * var(--u)); top: calc(68 * var(--u)); font-size: calc(120 * var(--u)); line-height: calc(150 * var(--u)); }
  .p-onsite-area__ttl { left: calc(320 * var(--u)); top: calc(157 * var(--u)); font-size: calc(38 * var(--u)); }
  .p-onsite-area__map { left: calc(860 * var(--u)); top: calc(100 * var(--u)); width: calc(740 * var(--u)); height: calc(460 * var(--u)); }
  .p-onsite-area__txt { left: calc(320 * var(--u)); top: calc(243 * var(--u)); width: calc(500 * var(--u) + 0.08em); font-size: calc(18 * var(--u)); line-height: calc(32 * var(--u)); translate: 0 calc(-1 * var(--u)); }
}
@media screen and (max-width: 767px) {
  .p-onsite-area { --u: calc(100cqw / 375); height: calc(614 * var(--u)); }
  .p-onsite-area__en { left: calc(114 * var(--u)); top: calc(50 * var(--u)); font-size: calc(60 * var(--u)); line-height: calc(75 * var(--u)); }
  .p-onsite-area__ttl { left: calc(118 * var(--u)); top: calc(98 * var(--u)); font-size: calc(26 * var(--u)); }
  .p-onsite-area__map { left: calc(20 * var(--u)); top: calc(161.88 * var(--u)); width: calc(335 * var(--u)); height: calc(209 * var(--u)); }
  .p-onsite-area__txt { left: calc(20 * var(--u)); top: calc(390 * var(--u)); width: calc(335 * var(--u) + 0.08em); font-size: calc(16 * var(--u)); line-height: calc(29 * var(--u)); }
}

/* --------------------------------------------------------------------------
   §11 ご利用の流れ（PC y9789–10525：横4列／SP y10625–11899：縦並び）
   -------------------------------------------------------------------------- */
.p-onsite-flow { position: relative; }
.p-onsite-flow > * { position: absolute; margin: 0; }
.p-onsite-flow__en { font-family: "Marcellus", serif; font-weight: 400; text-align: center; color: #F3F1EB; white-space: nowrap; }
.p-onsite-flow__h2 { font-family: "Shippori Mincho", serif; font-weight: 500; line-height: 1.3; letter-spacing: 0.08em; text-align: center; color: #333333; white-space: nowrap; }
.p-onsite-flow__list { padding: 0; list-style: none; }
.p-onsite-flow__step { position: absolute; }
.p-onsite-flow__step > * { position: absolute; margin: 0; }
.p-onsite-flow__step::before { content: ""; position: absolute; border: 1px solid #B1935F; border-radius: 8px; background: #FDFBF7; }
/* 次のステップへの三角（最後以外） */
.p-onsite-flow__step:not(:last-child)::after { content: ""; position: absolute; background: url(../img/flow-arrow.svg) no-repeat 0 0 / 100% 100%; }
.p-onsite-flow__num { font-family: "Marcellus", serif; font-weight: 400; color: rgba(177, 147, 95, 0.5); white-space: nowrap; }
.p-onsite-flow__ttl { font-family: "Shippori Mincho", serif; font-weight: 700; letter-spacing: 0.08em; text-align: center; color: #333333; white-space: nowrap; }
.p-onsite-flow__ttl::after { content: ""; position: absolute; left: 0; height: 2px; background: repeating-linear-gradient(90deg, rgba(177, 147, 95, 0.5) 0 2px, transparent 2px 4px); }
.p-onsite-flow__txt { font-family: "Noto Sans JP", sans-serif; font-weight: 400; letter-spacing: 0.08em; color: #333333; }

@media screen and (min-width: 768px) {
  .p-onsite-flow { --u: calc(100cqw / 1920); height: calc(736 * var(--u)); }
  .p-onsite-flow__en { left: calc(795 * var(--u)); top: calc(71 * var(--u)); width: calc(330 * var(--u)); font-size: calc(120 * var(--u)); line-height: calc(150 * var(--u)); }
  .p-onsite-flow__h2 { left: calc(851 * var(--u)); top: calc(160 * var(--u)); width: calc(218 * var(--u)); font-size: calc(34 * var(--u)); }
  .p-onsite-flow__list { left: calc(320 * var(--u)); top: calc(231 * var(--u)); width: calc(1280 * var(--u)); height: calc(405 * var(--u)); }
  .p-onsite-flow__step { top: 0; width: calc(270 * var(--u)); height: calc(405 * var(--u)); }
  .p-onsite-flow__step--02 { left: calc(336 * var(--u)); }
  .p-onsite-flow__step--03 { left: calc(672 * var(--u)); }
  .p-onsite-flow__step--04 { left: calc(1008 * var(--u)); }
  .p-onsite-flow__step::before { left: 0; top: calc(45 * var(--u)); width: calc(270 * var(--u)); height: calc(360 * var(--u)); }
  .p-onsite-flow__step:not(:last-child)::after { left: calc(295 * var(--u)); top: calc(195 * var(--u)); width: calc(23 * var(--u)); height: calc(59 * var(--u)); }
  .p-onsite-flow__num { left: 0; top: 0; width: calc(251 * var(--u)); font-size: calc(80 * var(--u)); line-height: calc(100 * var(--u)); text-align: center; }
  .p-onsite-flow__ttl { left: calc(14 * var(--u)); top: calc(119 * var(--u)); width: calc(222 * var(--u)); font-size: calc(24 * var(--u)); line-height: calc(31 * var(--u)); }
  .p-onsite-flow__step--03 .p-onsite-flow__ttl { top: calc(100 * var(--u)); }
  .p-onsite-flow__ttl::after { left: calc(1 * var(--u)); top: calc(53 * var(--u)); width: calc(222 * var(--u)); }
  .p-onsite-flow__step--03 .p-onsite-flow__ttl::after { top: calc(72 * var(--u)); }
  .p-onsite-flow__txt { left: calc(15 * var(--u)); top: calc(190 * var(--u)); width: calc(222 * var(--u) + 0.08em); font-size: calc(18 * var(--u)); line-height: calc(32 * var(--u)); translate: 0 calc(-1 * var(--u)); }
}
@media screen and (max-width: 767px) {
  .p-onsite-flow { --u: calc(100cqw / 375); height: calc(1274 * var(--u)); }
  .p-onsite-flow__en { left: calc(105 * var(--u)); top: calc(50 * var(--u)); width: calc(165 * var(--u)); font-size: calc(60 * var(--u)); line-height: calc(75 * var(--u)); }
  .p-onsite-flow__h2 { left: calc(104 * var(--u)); top: calc(98 * var(--u)); width: calc(167 * var(--u)); font-size: calc(26 * var(--u)); }
  .p-onsite-flow__list { left: calc(20 * var(--u)); top: calc(162 * var(--u)); width: calc(335 * var(--u)); height: calc(1062 * var(--u)); }
  .p-onsite-flow__step { left: 0; width: calc(335 * var(--u)); }
  .p-onsite-flow__step--01 { top: 0; height: calc(233 * var(--u)); }
  .p-onsite-flow__step--02 { top: calc(264 * var(--u)); height: calc(205 * var(--u)); }
  .p-onsite-flow__step--03 { top: calc(500 * var(--u)); height: calc(298 * var(--u)); }
  .p-onsite-flow__step--04 { top: calc(829 * var(--u)); height: calc(233 * var(--u)); }
  .p-onsite-flow__step::before { left: calc(16 * var(--u)); top: 0; width: calc(319 * var(--u)); height: 100%; }
  .p-onsite-flow__step:not(:last-child)::after { left: calc(147 * var(--u)); top: calc(100% + 7.5 * var(--u)); width: calc(41 * var(--u)); height: calc(16 * var(--u)); background-image: url(../img/flow-arrow-sp.svg); }
  .p-onsite-flow__num { left: 0; top: calc(5 * var(--u)); font-size: calc(50 * var(--u)); line-height: calc(63 * var(--u)); }
  .p-onsite-flow__ttl { left: calc(79 * var(--u)); top: calc(19 * var(--u)); width: calc(222 * var(--u)); font-size: calc(24 * var(--u)); line-height: calc(36 * var(--u)); }
  .p-onsite-flow__step--03 .p-onsite-flow__ttl { top: calc(21 * var(--u)); }
  .p-onsite-flow__ttl::after { left: calc(-2.5 * var(--u)); top: calc(50 * var(--u)); width: calc(234 * var(--u)); }
  .p-onsite-flow__step--03 .p-onsite-flow__ttl::after { top: calc(82 * var(--u)); }
  .p-onsite-flow__txt { left: calc(39 * var(--u)); top: calc(81 * var(--u)); width: calc(275 * var(--u) + 0.08em); font-size: calc(18 * var(--u)); line-height: calc(32 * var(--u)); translate: 0 calc(-1 * var(--u)); }
  .p-onsite-flow__step--02 .p-onsite-flow__txt { top: calc(82 * var(--u)); }
  .p-onsite-flow__step--03 .p-onsite-flow__txt { top: calc(116 * var(--u)); }
  .p-onsite-flow__step--04 .p-onsite-flow__txt { top: calc(80 * var(--u)); }
}
/* §11 実測補正 */
@media screen and (min-width: 768px) {
  .p-onsite-flow__en,
  .p-onsite-flow__h2 { translate: 0 calc(1 * var(--u)); }
  .p-onsite-flow__ttl { translate: calc(1 * var(--u)) 0; }
}
@media screen and (max-width: 767px) {
  .p-onsite-flow__ttl { translate: calc(1 * var(--u)) 0; }
  .p-onsite-flow__step:not(:last-child)::after { translate: 0 calc(2 * var(--u)); }
}

/* --------------------------------------------------------------------------
   §13 よくあるご質問（PC y11042–12396／SP y12356–13983）
   -------------------------------------------------------------------------- */
.p-onsite-faq { position: relative; }
.p-onsite-faq > * { position: absolute; margin: 0; }
.p-onsite-faq__en { font-family: "Marcellus", serif; font-weight: 400; text-align: center; color: #F3F1EB; white-space: nowrap; }
.p-onsite-faq__ttl { font-family: "Shippori Mincho", serif; font-weight: 500; line-height: 1.3; letter-spacing: 0.08em; text-align: center; color: #333333; white-space: nowrap; }
.p-onsite-faq__list { display: flex; flex-direction: column; }
.p-onsite-faq__item { position: relative; }
.p-onsite-faq__item::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; background: #F3F1EB; }
.p-onsite-faq__q,
.p-onsite-faq__a { position: absolute; margin: 0; letter-spacing: 0.08em; color: #333333; }
.p-onsite-faq__q { font-family: "Shippori Mincho", serif; font-weight: 700; }
.p-onsite-faq__a { font-family: "Noto Sans JP", sans-serif; font-weight: 400; }
.p-onsite-faq__q::before,
.p-onsite-faq__a::before { position: absolute; font-family: "Marcellus", serif; font-weight: 400; letter-spacing: 0; text-align: center; }
.p-onsite-faq__q::before { content: "Q."; color: #333333; }
.p-onsite-faq__a::before { content: "A."; color: #B1935F; }

@media screen and (min-width: 768px) {
  .p-onsite-faq { --u: calc(100cqw / 1920); height: calc(1354 * var(--u)); }
  .p-onsite-faq__en { left: calc(850 * var(--u)); top: calc(74 * var(--u)); width: calc(226 * var(--u)); font-size: calc(120 * var(--u)); line-height: calc(150 * var(--u)); }
  .p-onsite-faq__ttl { left: calc(836 * var(--u)); top: calc(156 * var(--u)); width: calc(255 * var(--u)); font-size: calc(34 * var(--u)); }
  .p-onsite-faq__list { left: calc(463 * var(--u)); top: calc(264 * var(--u)); width: calc(1000 * var(--u)); gap: calc(25 * var(--u)); }
  .p-onsite-faq__item { height: calc(108 * var(--u)); }
  .p-onsite-faq__item:nth-child(-n+3) { height: calc(136 * var(--u)); }
  .p-onsite-faq__item::before { height: calc(60 * var(--u)); }
  .p-onsite-faq__q { left: calc(67 * var(--u)); top: calc(17 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(26 * var(--u)); white-space: nowrap; }
  .p-onsite-faq__q::before { left: calc(-44 * var(--u)); top: calc(-7 * var(--u)); width: calc(31 * var(--u)); font-size: calc(30 * var(--u)); line-height: calc(38 * var(--u)); }
  .p-onsite-faq__a { left: calc(65 * var(--u)); top: calc(72 * var(--u)); width: calc(935 * var(--u) + 0.08em); font-size: calc(18 * var(--u)); line-height: calc(32 * var(--u)); }
  .p-onsite-faq__a::before { left: calc(-40 * var(--u)); top: calc(-1 * var(--u)); width: calc(27 * var(--u)); font-size: calc(30 * var(--u)); line-height: calc(38 * var(--u)); }
}
@media screen and (max-width: 767px) {
  .p-onsite-faq { --u: calc(100cqw / 375); height: calc(1627 * var(--u)); }
  .p-onsite-faq__en { left: calc(131 * var(--u)); top: calc(50 * var(--u)); width: calc(113 * var(--u)); font-size: calc(60 * var(--u)); line-height: calc(75 * var(--u)); }
  .p-onsite-faq__ttl { left: calc(90 * var(--u)); top: calc(98 * var(--u)); width: calc(195 * var(--u)); font-size: calc(26 * var(--u)); }
  .p-onsite-faq__list { left: calc(20 * var(--u)); top: calc(162 * var(--u)); width: calc(335 * var(--u)); gap: calc(25 * var(--u)); }
  .p-onsite-faq__item { height: calc(168 * var(--u)); }
  .p-onsite-faq__item:nth-child(1),
  .p-onsite-faq__item:nth-child(3) { height: calc(197 * var(--u)); }
  .p-onsite-faq__item:nth-child(2) { height: calc(226 * var(--u)); }
  .p-onsite-faq__item:nth-child(7) { height: calc(141 * var(--u)); }
  .p-onsite-faq__item::before { height: calc(70 * var(--u)); }
  .p-onsite-faq__q { left: calc(49 * var(--u)); top: calc(10 * var(--u)); width: calc(273 * var(--u) + 0.08em); font-size: calc(16 * var(--u)); line-height: calc(24 * var(--u)); }
  .p-onsite-faq__q::before { left: calc(-36 * var(--u)); top: calc(-7 * var(--u)); width: calc(27 * var(--u)); font-size: calc(26 * var(--u)); line-height: calc(33 * var(--u)); }
  .p-onsite-faq__a { left: calc(47 * var(--u)); top: calc(81 * var(--u)); width: calc(288 * var(--u) + 0.08em); font-size: calc(16 * var(--u)); line-height: calc(29 * var(--u)); }
  .p-onsite-faq__a::before { left: calc(-32 * var(--u)); top: calc(-4 * var(--u)); width: calc(23 * var(--u)); font-size: calc(26 * var(--u)); line-height: calc(33 * var(--u)); }
  /* 7問目だけFigmaの内側の位置が2px下 */
  .p-onsite-faq__item:nth-child(7) .p-onsite-faq__q { top: calc(12 * var(--u)); }
  .p-onsite-faq__item:nth-child(7) .p-onsite-faq__a { top: calc(83 * var(--u)); }
}
@media screen and (min-width: 768px) {
  .p-onsite-faq__en,
  .p-onsite-faq__ttl,
  .p-onsite-faq__q { translate: 0 calc(1 * var(--u)); }
  .p-onsite-faq__a { translate: 0 calc(-1 * var(--u)); }
}

/* --------------------------------------------------------------------------
   §14 お申し込みフォーム（PC y12396–13919／SP y13983–15637）
   Figmaはオートレイアウト（行＝横並び・下線、PCはラベル275＋間隔60＋入力465）なので flex で組む
   -------------------------------------------------------------------------- */
.p-onsite-form { position: relative; background: rgba(243, 241, 235, 0.6); }
.p-onsite-form > * { position: absolute; margin: 0; }
.p-onsite-form__en { font-family: "Marcellus", serif; font-weight: 400; text-align: center; color: #FFFFFF; white-space: nowrap; }
.p-onsite-form__ttl { font-family: "Shippori Mincho", serif; font-weight: 500; line-height: 1.3; letter-spacing: 0.08em; text-align: center; color: #333333; white-space: nowrap; }
.p-onsite-form__panel { background: #FFFFFF; }
.p-onsite-form__rows { display: flex; flex-direction: column; }
.p-onsite-form__row { display: flex; border-bottom: 1px solid #DADADA; }
.p-onsite-form__label { display: flex; align-items: center; flex: none; gap: 8px; font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 16px; line-height: 29px; /* Figmaはテキストの高さ28.8を29に丸める */ color: #333333; white-space: nowrap; }
.p-onsite-form__row--first .p-onsite-form__label { gap: 15px; }
.p-onsite-form__req,
.p-onsite-form__opt { padding: 2px 7px; border-radius: 2px; font-size: 13px; line-height: 1.8; color: #FFFFFF; }
.p-onsite-form__req { background: #D32E36; }
.p-onsite-form__opt { background: #999999; }
.p-onsite-form__field { display: flex; flex-direction: column; gap: 5px; }
.p-onsite-form__input,
.p-onsite-form__select,
.p-onsite-form__textarea {
  display: block;
  width: 100%;
  margin: 0;
  padding: 2px 20px;
  border: 1px solid #DDDDDD;
  border-radius: 5px;
  background: #FFFFFF;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  line-height: 1.8;
  color: #333333;
  appearance: none;
}
.p-onsite-form__input,
.p-onsite-form__select { height: 45px; }
.p-onsite-form__input::placeholder,
.p-onsite-form__textarea::placeholder { color: #999999; opacity: 1; }
.p-onsite-form__select { background: #FFFFFF url(../img/select-arrow.svg) no-repeat right 25px center / 15px 8px; color: #333333; }
.p-onsite-form__select.is-empty { color: #999999; } /* 未選択（JSで付け外し。CF7 の select* は required 属性を出さないので :valid は使わない） */
.p-onsite-form__textarea { padding: 10px 20px; resize: vertical; }
.p-onsite-form__note { font-family: "Noto Sans JP", sans-serif; font-weight: 400; font-size: 12px; line-height: 1.8; letter-spacing: 0.08em; color: #333333; }
/* 同意欄・送信ボタンは Contact Form 7 の出力（[acceptance]・[submit]）に合わせた形 */
.p-onsite-form__agree { font-family: "Noto Sans JP", sans-serif; font-weight: 800; font-size: 16px; line-height: 1.8; letter-spacing: 0.08em; color: #333333; white-space: nowrap; }
.p-onsite-form__agree .wpcf7-list-item { margin: 0; }
.p-onsite-form__agree .wpcf7-list-item-label { font-size: inherit; white-space: nowrap; } /* テーマの CF7 共通指定（SP 14px・pre-line）を打ち消す */
.p-onsite-form__agree label { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.p-onsite-form__agree a { color: inherit; text-decoration: none; }
.p-onsite-form__agree input { flex: none; width: 20px; height: 20px; margin: 0; border: 1px solid #DADADA; border-radius: 3px; background: #FFFFFF; appearance: none; }
.p-onsite-form__agree input:checked { background: #B1935F url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10l3.5 3.5L15 7' fill='none' stroke='%23fff' stroke-width='2'/%3E%3C/svg%3E") no-repeat center / 100%; border-color: #B1935F; }
.p-onsite-form__submit { padding: 0; border: 0; border-radius: 5px; background: #C77A43; font-family: "Noto Sans JP", sans-serif; font-weight: 800; letter-spacing: 0.08em; text-align: center; color: #FFFFFF; cursor: pointer; appearance: none; }
/* 注記・同意・ボタンは .p-onsite-form__form 基準の絶対配置（CF7 の form の中にあっても同じ位置） */
.p-onsite-form__note,
.p-onsite-form__agree,
.p-onsite-form__submit { position: absolute; margin: 0; }

@media screen and (min-width: 768px) {
  .p-onsite-form { --u: calc(100cqw / 1920); height: calc(1523 * var(--u)); }
  .p-onsite-form__en { left: calc(677 * var(--u)); top: calc(72 * var(--u)); width: calc(567 * var(--u)); font-size: calc(120 * var(--u)); line-height: calc(150 * var(--u)); }
  .p-onsite-form__ttl { left: calc(649 * var(--u)); top: calc(163 * var(--u)); width: calc(622 * var(--u)); font-size: calc(34 * var(--u)); }
  .p-onsite-form__panel { left: calc(463 * var(--u)); top: calc(262 * var(--u)); width: calc(1000 * var(--u)); height: calc(1161 * var(--u)); }
  .p-onsite-form__form { left: calc(560 * var(--u)); top: calc(302 * var(--u)); width: calc(800 * var(--u)); }
  .p-onsite-form__rows { gap: 20px; }
  .p-onsite-form__row { align-items: center; gap: 60px; padding-bottom: 20px; } /* 下線1pxは余白20pxの外側（実測） */
  .p-onsite-form__row--date,
  .p-onsite-form__row--top { align-items: flex-start; }
  .p-onsite-form__label { width: 275px; }
  .p-onsite-form__row--date .p-onsite-form__label { padding-top: 8px; }
  .p-onsite-form__field { width: 465px; }
  .p-onsite-form__textarea { height: 157px; }
  .p-onsite-form__note { left: calc(199 * var(--u)); top: calc(900 * var(--u)); }
  .p-onsite-form__agree { left: calc(257 * var(--u)); top: calc(952 * var(--u)); }
  .p-onsite-form__submit { left: calc(214 * var(--u)); top: calc(1011 * var(--u)); width: calc(373 * var(--u)); height: calc(70 * var(--u)); font-size: calc(18 * var(--u)); } /* Figmaの文字位置 x99 は幅373の中央 */
}
@media screen and (max-width: 767px) {
  .p-onsite-form { --u: calc(100cqw / 375); height: calc(1654 * var(--u)); background: linear-gradient(rgba(243, 241, 235, 0.6), rgba(243, 241, 235, 0.6)) no-repeat 0 0 / 100% calc(1614 * var(--u)); }
  .p-onsite-form__en { left: calc(46 * var(--u)); top: calc(50 * var(--u)); width: calc(284 * var(--u)); font-size: calc(60 * var(--u)); line-height: calc(75 * var(--u)); }
  .p-onsite-form__ttl { left: calc(27 * var(--u)); top: calc(98 * var(--u)); width: calc(321 * var(--u)); font-size: calc(26 * var(--u)); letter-spacing: 0.03em; }
  .p-onsite-form__panel { left: calc(20 * var(--u)); top: calc(197 * var(--u)); width: calc(335 * var(--u)); height: calc(1367 * var(--u)); }
  .p-onsite-form__form { left: calc(35 * var(--u)); top: calc(227 * var(--u)); width: calc(305 * var(--u)); }
  .p-onsite-form__rows { gap: 12px; }
  .p-onsite-form__row { flex-direction: column; gap: 8px; padding-bottom: 12px; }
  .p-onsite-form__row--date .p-onsite-form__label { padding-top: 8px; }
  .p-onsite-form__field { width: 100%; }
  .p-onsite-form__textarea { height: 201px; padding: 10px; }
  .p-onsite-form__note { left: 0; top: calc(1124 * var(--u)); width: calc(305 * var(--u) + 0.08em); }
  .p-onsite-form__agree { left: calc(10 * var(--u)); top: calc(1198 * var(--u)); }
  .p-onsite-form__submit { left: 0; top: calc(1247 * var(--u)); width: calc(305 * var(--u)); height: calc(50 * var(--u)); font-size: calc(16 * var(--u)); } /* x75 は幅305の中央 */
}
@media screen and (min-width: 768px) {
  .p-onsite-form__ttl { translate: 0 calc(1 * var(--u)); }
}

/* §14 フォーム内の寸法も --u で幅に追従させる（基準幅で上の px と同じ値） */
.p-onsite-form__form {
  --f-gap: 20; --f-row-pb: 20; --f-col-gap: 60; --f-label-w: 275; --f-field-w: 465;
}
.p-onsite-form__rows { gap: calc(var(--f-gap) * var(--u)); }
.p-onsite-form__row { padding-bottom: calc(var(--f-row-pb) * var(--u)); }
.p-onsite-form__label { gap: calc(8 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(29 * var(--u)); }
.p-onsite-form__row--first .p-onsite-form__label { gap: calc(15 * var(--u)); }
.p-onsite-form__row--date .p-onsite-form__label { padding-top: calc(8 * var(--u)); }
.p-onsite-form__req,
.p-onsite-form__opt { padding: calc(2 * var(--u)) calc(7 * var(--u)); border-radius: calc(2 * var(--u)); font-size: calc(13 * var(--u)); }
.p-onsite-form__field { gap: calc(5 * var(--u)); }
.p-onsite-form__input,
.p-onsite-form__select,
.p-onsite-form__textarea { padding: calc(2 * var(--u)) calc(20 * var(--u)); border-radius: calc(5 * var(--u)); font-size: calc(14 * var(--u)); }
.p-onsite-form__input,
.p-onsite-form__select { height: calc(45 * var(--u)); }
.p-onsite-form__select { background-position: right calc(25 * var(--u)) center; background-size: calc(15 * var(--u)) calc(8 * var(--u)); }
.p-onsite-form__textarea { padding: calc(10 * var(--u)) calc(20 * var(--u)); }
.p-onsite-form__note { font-size: calc(12 * var(--u)); }
.p-onsite-form__agree { gap: calc(8 * var(--u)); font-size: calc(16 * var(--u)); }
.p-onsite-form__agree input { width: calc(20 * var(--u)); height: calc(20 * var(--u)); border-radius: calc(3 * var(--u)); }
@media screen and (min-width: 768px) {
  .p-onsite-form__row { gap: calc(var(--f-col-gap) * var(--u)); }
  .p-onsite-form__label { width: calc(var(--f-label-w) * var(--u)); }
  .p-onsite-form__field { width: calc(var(--f-field-w) * var(--u)); }
  .p-onsite-form__textarea { height: calc(157 * var(--u)); }
}
@media screen and (max-width: 767px) {
  .p-onsite-form__form { --f-gap: 12; --f-row-pb: 12; }
  .p-onsite-form__row { gap: calc(8 * var(--u)); }
  .p-onsite-form__textarea { height: calc(201 * var(--u)); padding: calc(10 * var(--u)); }
}

/* ==========================================================================
   仮決定（2026-10-21・西川さんに確認中。回答が変わったらこのブロックを消す／書き換えるだけで戻る）
   2. ドット数を件数に合わせる（SP 書籍6・講演7・お客様の声3。Figmaは各8）
   6. Figmaの手配置のばらつきをそろえる（お客様の声1枚目／流れのステップ見出しをカード中央に／FAQ 7問目）
   ========================================================================== */
@media screen and (max-width: 767px) {
  .p-onsite-panel--books .p-onsite-slider__dot:nth-child(n+7),
  .p-onsite-panel--events .p-onsite-slider__dot:nth-child(n+8),
  .p-onsite-slider--voices .p-onsite-slider__dot:nth-child(n+4) { display: none; }
  /* ドットを減らした分、中央にそろえ直す（ドット7px・間隔10px） */
  .p-onsite-panel--books .p-onsite-slider__dots { left: calc((375 - (6 * 7 + 5 * 10)) / 2 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__dots { left: calc((375 - (7 * 7 + 6 * 10)) / 2 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__dots { left: calc((375 - (3 * 7 + 2 * 10)) / 2 * var(--u)); translate: 0 0; }

  .p-onsite-vcard--1 img.p-onsite-vcard__avatar { left: calc(29 * var(--u)); }
  .p-onsite-vcard--1 .p-onsite-vcard__meta { left: calc(132 * var(--u)); }
  .p-onsite-vcard--1 .p-onsite-vcard__ttl,
  .p-onsite-vcard--1 .p-onsite-vcard__txt { left: calc(22 * var(--u)); }

  .p-onsite-flow__ttl { left: calc(64.5 * var(--u)); } /* カード（x16〜335）の中央 175.5 に */
  .p-onsite-flow__ttl::after { left: calc(-1 * var(--u)); }
  .p-onsite-flow__step--02 .p-onsite-flow__txt,
  .p-onsite-flow__step--04 .p-onsite-flow__txt { top: calc(81 * var(--u)); }

  .p-onsite-faq__item:nth-child(7) .p-onsite-faq__q { top: calc(10 * var(--u)); }
  .p-onsite-faq__item:nth-child(7) .p-onsite-faq__a { top: calc(81 * var(--u)); }
}
@media screen and (min-width: 768px) {
  .p-onsite-vcard--1 img.p-onsite-vcard__avatar { left: calc(29 * var(--u)); }
  .p-onsite-vcard--1 .p-onsite-vcard__meta { left: calc(132 * var(--u)); }
  .p-onsite-vcard--1 .p-onsite-vcard__ttl,
  .p-onsite-vcard--1 .p-onsite-vcard__txt { left: calc(32 * var(--u)); }

  .p-onsite-flow__ttl { left: calc(24 * var(--u)); }   /* カード（幅270）の中央 135 に */
  .p-onsite-flow__num { width: calc(270 * var(--u)); }
}

/* §14 Contact Form 7 の付属要素（WP版） */
.p-onsite-form__form .wpcf7-form-control-wrap { display: block; }
.p-onsite-form__form .wpcf7-not-valid-tip { margin-top: 4px; font-size: 12px; color: #D32E36; }
.p-onsite-form__form .wpcf7-spinner { position: absolute; margin: 0; }
.p-onsite-form__form .wpcf7-response-output { position: absolute; left: 0; right: 0; margin: 0 !important; font-size: 14px; text-align: center; }
@media screen and (min-width: 768px) {
  .p-onsite-form__form .wpcf7-spinner { left: calc(600 * var(--u)); top: calc(1034 * var(--u)); }
  .p-onsite-form__form .wpcf7-response-output { top: calc(1095 * var(--u)); }
}
@media screen and (max-width: 767px) {
  .p-onsite-form__form .wpcf7-spinner { left: calc(140 * var(--u)); top: calc(1305 * var(--u)); }
  .p-onsite-form__form .wpcf7-response-output { top: calc(1305 * var(--u)); }
}

/* ==========================================================================
   PCレイアウト（768px以上）— 2026-10-21 作り直し（西川さん承認の方針）
   - 1920カンプを画面幅に比例して縮めない（ノートPCで文字が小さくなるため）。--u を 1px に固定＝カンプの値を px のまま使う
   - 各セクションの骨組みは通常のフロー（block／flex／grid）。中身は幅1280px（カンプの x320〜1600）で中央寄せ、
     背景・帯・写真・スライダーの帯だけ全幅。帯の重なりなど合成で作る飾りの内側だけ、親要素基準の絶対配置を残す
   - 1920px幅でカンプと同じ位置になるよう、余白はカンプの座標から計算した px
   ========================================================================== */
@media screen and (min-width: 768px) {
  .p-onsite { --pad: max(32px, calc((100cqw - 1280px) / 2)); } /* ページ幅基準（% だと使う場所で基準が変わる） */
  .p-onsite > section { --u: 1px; position: relative; height: auto; padding-inline: var(--pad); }
  .p-onsite > section > * { left: auto; top: auto; }

  /* §1 FV（高さ1029固定。文字の列は S＝max(24, (幅−1620)/2) から。1920 で S=150） */
  /* FV だけは幅に合わせて伸縮（2026-10-21 西川さん方針）。1920px で Figma の値、それより狭いと縮む。各グループの --u を差し替える
     --k: 英字（SPORT MOTIVATION）。幅に比例・下限なし
     --kt: 見出し／--kb: バッジ／--kc: CTA・対応エリア。clamp で 1024px 以下は下限（読める大きさ）、1920px 以上は Figma の値
     --g: 縦の位置・写真・背景の高さ。見出しなどが下限で止まっても背景からはみ出さないよう、下限 0.7 */
  .p-onsite > .p-onsite-fv {
    --s: max(24px, calc((100cqw - 1620px) / 2));
    --k: min(1px, calc(100cqw / 1920));
    --kt: clamp(0.6px, calc(100cqw / 1920), 1px);
    --kb: clamp(0.72px, calc(100cqw / 1920), 1px);
    --kc: clamp(0.78px, calc(100cqw / 1920), 1px);
    --g: clamp(0.7px, calc(100cqw / 1920), 1px);
    height: calc(1029 * var(--g)); padding: 0;
  }
  .p-onsite .p-onsite-fv__bg { --u: var(--g); left: 0; top: 0; width: min(100%, calc(var(--s) + 1156 * var(--kt))); }
  /* 写真の左端は見出しの帯と 65px（見出しの縮みに比例）重なる位置。picture に高さを渡さないと画像が横幅に合わせて縦も縮み、英字に届かない（fv-overlap-report.md） */
  .p-onsite .p-onsite-fv__photo { --u: var(--g); left: calc(var(--s) + 670 * var(--kt)); right: 0; top: calc(186 * var(--g)); width: auto; }
  .p-onsite-fv__photo picture { height: 100%; }
  .p-onsite-fv__photo img { object-fit: cover; object-position: 60% center; }
  /* 英字は写真の下端に 90px（英字の縮みに比例）かかる位置 */
  .p-onsite .p-onsite-fv__deco { --u: var(--k); left: calc(var(--s) + 170 * var(--k)); top: calc(913 * var(--g) - 90 * var(--k)); }
  .p-onsite-fv__ttl,
  .p-onsite-fv__badges,
  .p-onsite-fv__cta { position: relative; left: auto; top: auto; }
  .p-onsite-fv__ttl { --u: var(--kt); margin: calc(92.53 * var(--g)) 0 0 calc(var(--s) + 0.56px); }
  .p-onsite-fv__badges { --u: var(--kb); margin: calc(29.92 * var(--g)) 0 0 calc(var(--s) - 0.65px); }
  .p-onsite-fv__cta { --u: var(--kc); margin: calc(77.04 * var(--g)) 0 0 var(--s); }
  /* 対応エリアは下端を背景の下端（791.5）に揃える */
  .p-onsite .p-onsite-fv__area { --u: var(--kc); left: auto; right: calc(var(--s) + 0.1px); top: calc(791.5 * var(--g) - 136.5 * var(--kc)); }

  /* §2 提携パートナー（ロゴの帯は全幅。収まらない幅では JS が左へ流す） */
  .p-onsite > .p-onsite-partner { padding: 57px 0 60px; }
  .p-onsite-partner__ttl { position: relative; left: auto; top: auto; display: flex; justify-content: center; align-items: center; gap: 18px; width: auto; text-align: center; translate: 3px 0; } /* カンプの見出しは中央から3px右（実測） */
  .p-onsite-partner__ttl::before,
  .p-onsite-partner__ttl::after { position: static; flex: none; width: 100px; }
  .p-onsite-partner__slider { position: relative; left: auto; top: auto; width: 100%; height: 64px; margin-top: 29.6px; translate: 2px 0; } /* ロゴ列も2px右（実測） */

  /* §3 神楽坂で15年 */
  .p-onsite > .p-onsite-trust { padding-top: 100px; padding-bottom: 0; }
  .p-onsite-trust > * { position: relative; }
  .p-onsite .p-onsite-trust__band { position: absolute; left: 0; top: 0; }
  .p-onsite-trust__ttl { left: auto; top: auto; width: auto; }
  .p-onsite-trust__lead { left: auto; top: auto; width: 712px; margin: 39.6px auto 0; }
  .p-onsite-trust > .p-onsite-feature { position: relative; display: grid; align-items: start; }
  .p-onsite-feature > * { position: relative; left: auto !important; top: auto !important; }
  .p-onsite-feature > .p-onsite-feature__bg,
  .p-onsite-feature > .p-onsite-feature__num { position: absolute; }
  .p-onsite-feature__img { grid-column: 1; grid-row: 1 / span 4; width: auto; max-width: 580px; }
  .p-onsite-feature__ttl,
  .p-onsite-feature__txt,
  .p-onsite-feature__box { grid-column: 3; }
  .p-onsite-feature__ttl { grid-row: 1; }
  .p-onsite-feature__txt { grid-row: 2; width: calc(100% + 0.08em); margin-top: 49.6px; }
  .p-onsite-feature__box { grid-row: 3; width: auto; }
  .p-onsite-feature--01,
  .p-onsite-feature--03 { grid-template-columns: minmax(0, 580px) 55px 645px; }
  .p-onsite-feature--02 { grid-template-columns: 645px 55px minmax(0, 580px); }
  .p-onsite-feature--02 .p-onsite-feature__img { grid-column: 3; }
  .p-onsite-feature--02 .p-onsite-feature__ttl,
  .p-onsite-feature--02 .p-onsite-feature__txt,
  .p-onsite-feature--02 .p-onsite-feature__box { grid-column: 1; }
  .p-onsite-feature--01 { margin-top: 90px; padding-bottom: 80px; }
  .p-onsite-feature--01 .p-onsite-feature__img { margin-top: 39px; }
  .p-onsite-feature--01 .p-onsite-feature__ttl { margin-top: 92px; }
  .p-onsite-feature--01 .p-onsite-feature__box { margin-top: 20px; }
  .p-onsite-feature--01 .p-onsite-feature__num { right: 2px; top: 0 !important; left: auto !important; }
  .p-onsite-feature--01 .p-onsite-feature__bg { left: calc(-1 * var(--pad)) !important; top: 195px !important; width: calc(var(--pad) + 880px); }
  .p-onsite-feature--02 { padding-bottom: 82px; }
  .p-onsite-feature--02 .p-onsite-feature__img { margin-top: 34px; }
  .p-onsite-feature--02 .p-onsite-feature__ttl { margin-top: 93px; }
  .p-onsite-feature--02 .p-onsite-feature__box { margin-top: 35px; }
  .p-onsite-feature--02 .p-onsite-feature__num { left: -2px !important; top: 0 !important; }
  .p-onsite-feature--02 .p-onsite-feature__bg { left: 400px !important; right: calc(-1 * var(--pad)); top: 195px !important; width: auto; }
  .p-onsite-feature--03 { padding-bottom: 200px; }
  .p-onsite-feature--03 .p-onsite-feature__img { margin: 38px 0 0 1.58px; translate: 1px 1px; } /* 小数座標の丸め（実測） */
  .p-onsite-feature--03 .p-onsite-feature__ttl { margin: 90px 0 0 -2px; }
  .p-onsite-feature--03 .p-onsite-feature__txt { margin-left: -2px; }
  .p-onsite-feature--03 .p-onsite-feature__num { right: 2px; top: 0 !important; left: auto !important; }
  .p-onsite-feature--03 .p-onsite-feature__bg { left: calc(-1 * var(--pad)) !important; top: 192px !important; width: calc(var(--pad) + 880px); }
  .p-onsite-feature__ttl::after { left: 0; }
  .p-onsite-feature--03 .p-onsite-feature__ttl::after { left: 2px; }

  /* §4 トレーナーチーム */
  .p-onsite > .p-onsite-team { display: grid; grid-template-columns: minmax(0, 618px) 44px minmax(0, 618px); justify-content: center; padding-top: 174px; padding-bottom: 100px; overflow: visible; }
  .p-onsite-team > * { grid-column: 1 / -1; }
  .p-onsite-team > .p-onsite-panel--books { grid-column: 1; }
  .p-onsite-team > .p-onsite-panel--events { grid-column: 3; }
  .p-onsite-team > * { position: relative; }
  .p-onsite .p-onsite-team__en { position: absolute; left: 0; right: 0; top: 72px; width: auto; }
  .p-onsite-team__ttl { width: 438px; margin: 0 auto; }
  .p-onsite-team__lead { width: 841px; margin: 39.6px auto 0; }
  .p-onsite-team > .p-onsite-panel { position: relative; width: 618px; height: 455px; margin-top: 60px; }
  .p-onsite-panel::before { left: 0 !important; top: 25px; width: 618px; height: 430px; }
  .p-onsite-panel__ttl { left: 168.04px !important; top: 0; }
  .p-onsite-panel > .p-onsite-slider { position: static; }
  .p-onsite-panel--books .p-onsite-slider__view { left: 34px; top: 71px; }
  .p-onsite-panel--events .p-onsite-slider__view { left: 34px; top: 80px; }
  .p-onsite-panel .p-onsite-slider__prev { left: 9px; top: 193px; }
  .p-onsite-panel--books .p-onsite-slider__next { left: 555px; top: 193px; }
  .p-onsite-panel--events .p-onsite-slider__next { left: 559px; top: 193px; }
  .p-onsite-panel--books .p-onsite-slider__dots { left: 245px; top: 412px; }
  .p-onsite-panel--events .p-onsite-slider__dots { left: 215px; top: 412px; }
  .p-onsite-team__list-ttl { left: auto; top: auto; justify-content: center; margin-top: 80px; }
  .p-onsite-team > .p-onsite-slider--trainers { position: relative; margin: 39.8px calc(-1 * var(--pad)) 0; padding-bottom: 60px; }
  .p-onsite-slider--trainers .p-onsite-slider__view { position: relative; left: auto; top: auto; width: 100%; }
  .p-onsite-slider--trainers .p-onsite-slider__track { left: calc(50% - 1225px + 149.5px); }
  .p-onsite-slider--trainers .p-onsite-slider__prev { left: auto; right: calc(var(--pad) + 70px); top: 475px; }
  .p-onsite-slider--trainers .p-onsite-slider__next { left: auto; right: var(--pad); top: 475px; }
  .p-onsite-slider--trainers .p-onsite-slider__dots { left: calc(50% - 88px); top: 495px; }

  /* §5 代表メッセージ（写真 410／間56／本文 750 の grid） */
  .p-onsite > .p-onsite-message { display: grid; grid-template-columns: 410px 56px minmax(0, 750px) minmax(0, 64px); padding-top: 167px; padding-bottom: 70px; }
  .p-onsite-message > * { position: relative; }
  .p-onsite .p-onsite-message__panel { position: absolute; left: calc(var(--pad) + 243px); right: var(--pad); top: 370px; width: auto; }
  .p-onsite .p-onsite-message__en { position: absolute; left: 0; right: 0; top: 72px; width: auto; margin: 0 auto; }
  .p-onsite-message__ttl { grid-column: 1 / -1; grid-row: 1; width: 806px; margin: 0 auto; }
  .p-onsite-message__img { grid-column: 1; grid-row: 2; margin-top: 59.6px; }
  .p-onsite-message > .p-onsite-message__body { grid-column: 3; grid-row: 2; position: relative; margin-top: 169.6px; }
  .p-onsite-message__body > * { position: relative; left: auto; top: auto; }
  .p-onsite-message__p1 { width: calc(100% + 0.08em); }
  .p-onsite-message__body .p-onsite-message__quote { margin: 26px 0 0 1px; }
  .p-onsite .p-onsite-message__en { translate: 1px 1px; }
  .p-onsite-message__ttl { translate: 3px 1px; } /* カンプは中央から右に寄っている（実測） */
  .p-onsite-message__p2 { margin-top: 27px; width: calc(100% + 0.08em); }
  .p-onsite-message__mark { position: absolute; }
  .p-onsite-message__body .p-onsite-message__sign { width: 343px; margin: 29px 0 0 auto; } /* 本文の右端にそろえる（1920で左から407＝カンプと同じ） */

  /* §6 メリット */
  .p-onsite > .p-onsite-merit { display: grid; grid-template-columns: 596.96px minmax(0, 1fr) 616.93px; padding-top: 30px; padding-bottom: 110px; }
  .p-onsite-merit > * { grid-column: 1 / -1; }
  .p-onsite-merit > * { position: relative; }
  .p-onsite-merit__ttl { width: 413px; margin: 0 auto; translate: 3px 0; }
  .p-onsite-merit__ttl::after { position: absolute; }
  .p-onsite-merit > .p-onsite-merit__card { position: relative; height: 255px; margin-top: 65.4px; }
  .p-onsite-merit > .p-onsite-merit__card--1 { grid-column: 1; width: 596.96px; }
  .p-onsite-merit > .p-onsite-merit__card--2 { grid-column: 3; width: 616.93px; }
  .p-onsite-merit__card::before { top: 25px !important; }
  .p-onsite-merit__card--1::before { left: 19.96px !important; }
  .p-onsite-merit__card--2::before { left: 39.93px !important; }
  .p-onsite-merit__card-ttl { left: 0 !important; top: 0 !important; }
  .p-onsite-merit__card-txt { top: 71px !important; }
  .p-onsite-merit__card--1 .p-onsite-merit__card-txt { left: 52px !important; }
  .p-onsite-merit__card--2 .p-onsite-merit__card-txt { left: 67.97px !important; }

  /* §7 お客様の声（PCは3枚並び） */
  .p-onsite > .p-onsite-voices { padding-top: 166px; padding-bottom: 100px; }
  .p-onsite-voices > * { position: relative; }
  .p-onsite .p-onsite-voices__en { position: absolute; left: 0; right: 0; top: 71px; width: auto; margin: 0 auto; translate: 1px 1px; }
  .p-onsite-voices__ttl { width: 181px; margin: 0 auto; translate: 3px 1px; }
  .p-onsite-voices > .p-onsite-slider { position: relative; margin-top: 41.8px; }
  .p-onsite-slider--voices .p-onsite-slider__view { position: relative; left: auto; top: auto; width: auto; height: 486px; }
  .p-onsite-slider--voices .p-onsite-slider__track { position: static; gap: clamp(16px, calc((100% - 1185px) / 2 + 0.5px), 48px); }

  /* §8・§12 CTA */
  .p-onsite > .p-onsite-cta { padding-top: 129px; padding-bottom: 100px; text-align: center; background-position: center top; background-size: 1926px 517px; }
  .p-onsite-cta > * { position: relative; }
  .p-onsite .p-onsite-cta__en { position: absolute; left: 0; right: 0; top: 100px; width: auto; margin: 0 auto; }
  .p-onsite-cta__ttl { width: 632px; margin: 0 auto; translate: -1px 0; }
  .p-onsite-cta__lead { width: 911px; margin: 27.4px auto 0; translate: 1px 0; }
  .p-onsite-cta__btn { display: block; width: 373px; margin: 40px auto 0; padding: 22px 0 0 90px; text-align: left; translate: -1px 0; }
  .p-onsite-cta__note { width: 287px; margin: 10px auto 0; translate: 1px 0; }

  /* §9 料金 */
  .p-onsite > .p-onsite-price { padding-top: 159px; padding-bottom: 100px; }
  .p-onsite-price > * { position: relative; }
  .p-onsite .p-onsite-price__en { position: absolute; left: 0; right: 0; top: 70px; width: auto; margin: 0 auto; translate: 1px 1px; }
  .p-onsite-price__ttl { width: 71px; margin: 0 auto; translate: 1px 1px; }
  .p-onsite-price__list { width: 840px; margin: 41.8px auto 0; }
  .p-onsite-price__row { position: relative; left: auto !important; top: auto !important; }
  .p-onsite-price__row--2 { margin-top: 10px; }
  .p-onsite-price__notes { width: calc(780px + 0.08em); margin: 20px auto 0; translate: 8px 0; }
  .p-onsite-price__btn { display: block; width: 373px; margin: 40px auto 0; translate: 2px 0; }

  /* §10 対応エリア（本文の列＋地図 740 の grid） */
  .p-onsite > .p-onsite-area { display: grid; grid-template-columns: minmax(0, 1fr) 740px; grid-template-rows: auto 1fr; align-items: start; padding-top: 100px; padding-bottom: 100px; }
  .p-onsite-area > * { position: relative; }
  .p-onsite .p-onsite-area__en { position: absolute; left: var(--pad); top: 68px; }
  .p-onsite-area__ttl { grid-column: 1; grid-row: 1; margin-top: 57px; }
  .p-onsite-area__txt { grid-column: 1; grid-row: 2; margin-top: 36.6px; width: min(calc(500px + 0.08em), 100% - 24px); }
  .p-onsite-area__map { grid-column: 2; grid-row: 1 / span 2; }

  /* §11 ご利用の流れ */
  .p-onsite > .p-onsite-flow { padding-top: 160px; padding-bottom: 100px; }
  .p-onsite-flow > * { position: relative; }
  .p-onsite .p-onsite-flow__en { position: absolute; left: 0; right: 0; top: 71px; width: auto; margin: 0 auto; }
  .p-onsite-flow__h2 { width: 218px; margin: 0 auto; }
  .p-onsite-flow__list { --fgap: min(66px, calc((100cqw - 2 * var(--pad) - 1080px) / 3)); display: flex; gap: var(--fgap); width: auto; height: auto; margin: 26.8px 0 0; }
  .p-onsite-flow__step:not(:last-child)::after { left: calc(100% + var(--fgap) / 2 - 8px); }
  .p-onsite-flow__step { position: relative; left: auto !important; top: auto !important; flex: none; }

  /* §13 よくあるご質問 */
  .p-onsite > .p-onsite-faq { padding-top: 156px; padding-bottom: 100px; }
  .p-onsite-faq > * { position: relative; }
  .p-onsite .p-onsite-faq__en { position: absolute; left: 0; right: 0; top: 74px; width: auto; margin: 0 auto; translate: 7px 1px; }
  .p-onsite-faq__ttl { width: 255px; margin: 0 auto; translate: 4px 1px; }
  .p-onsite-faq__list { width: 1000px; margin: 63.8px auto 0; translate: 3px 0; }

  /* §14 お申し込みフォーム */
  .p-onsite > .p-onsite-form { padding-top: 163px; padding-bottom: 341px; }
  .p-onsite-form > * { position: relative; }
  .p-onsite .p-onsite-form__en { position: absolute; left: 0; right: 0; top: 72px; width: auto; margin: 0 auto; }
  .p-onsite-form__ttl { width: 622px; margin: 0 auto; }
  .p-onsite .p-onsite-form__panel { position: absolute; left: calc(50% - 497px); top: 262px; width: 1000px; }
  .p-onsite-form__form { width: 800px; margin: 94.8px auto 0; }
}

/* --------------------------------------------------------------------------
   PC の中身の幅（1280）が取れない幅（〜1299px のノートPC・タブレット）は、段組みを組み替える。文字サイズは変えない
   -------------------------------------------------------------------------- */
@media screen and (min-width: 768px) and (max-width: 1299px) {
  /* §4 書籍・講演のパネル（618×2＋間44＝1280）は縦に並べる */
  .p-onsite > .p-onsite-team { grid-template-columns: minmax(0, 1fr); }
  .p-onsite-team > .p-onsite-panel--books,
  .p-onsite-team > .p-onsite-panel--events { grid-column: 1; justify-self: center; }
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  /* §6 メリットのカードは縦に並べる */
  .p-onsite > .p-onsite-merit { grid-template-columns: minmax(0, 1fr); justify-items: center; }
  .p-onsite-merit > .p-onsite-merit__card--1,
  .p-onsite-merit > .p-onsite-merit__card--2 { grid-column: 1; }
  .p-onsite-merit > .p-onsite-merit__card--2 { margin-top: 40px; }
}
@media screen and (min-width: 768px) and (max-width: 1199px) {
  /* §7 お客様の声は折り返す／§10 対応エリアは地図を下に */
  .p-onsite-slider--voices .p-onsite-slider__view { height: auto; }
  .p-onsite-slider--voices .p-onsite-slider__track { flex-wrap: wrap; justify-content: center; gap: 24px; }
  .p-onsite > .p-onsite-area { grid-template-columns: minmax(0, 1fr); }
  .p-onsite-area__map { grid-column: 1; grid-row: 3; width: 100%; max-width: 740px; height: auto; margin-top: 40px; }
  .p-onsite-area__map img { height: auto; }
}
@media screen and (min-width: 768px) and (max-width: 1151px) {
  /* §11 流れは2列 */
  .p-onsite-flow__list { flex-wrap: wrap; justify-content: center; --fgap: 24px; row-gap: 40px; }
  .p-onsite-flow__step:not(:last-child)::after { display: none; }
}
@media screen and (min-width: 768px) and (max-width: 1099px) {
  /* §3 特徴は写真を上に1列 */
  .p-onsite-trust > .p-onsite-feature--01,
  .p-onsite-trust > .p-onsite-feature--02,
  .p-onsite-trust > .p-onsite-feature--03 { grid-template-columns: minmax(0, 1fr); }
  .p-onsite-feature > .p-onsite-feature__img { grid-column: 1 !important; grid-row: 1 !important; margin: 150px auto 0 !important; width: 100%; max-width: 580px; translate: none; }
  .p-onsite-feature > .p-onsite-feature__ttl,
  .p-onsite-feature > .p-onsite-feature__txt,
  .p-onsite-feature > .p-onsite-feature__box { grid-column: 1 !important; grid-row: auto; justify-self: center; width: min(645px, 100%); }
  .p-onsite-feature > .p-onsite-feature__ttl { margin: 40px 0 0 !important; white-space: normal; }
  .p-onsite-feature > .p-onsite-feature__txt { width: min(calc(645px + 0.08em), 100%); }
  .p-onsite-feature > .p-onsite-feature__num { left: 0 !important; right: auto; }
  .p-onsite-feature > .p-onsite-feature__bg { left: calc(-1 * var(--pad)) !important; right: calc(-1 * var(--pad)); width: auto; top: 350px !important; }
}
@media screen and (min-width: 768px) and (max-width: 1063px) {
  /* §13 FAQ・§14 フォームは幅いっぱい（FAQは高さを中身で伸ばす） */
  .p-onsite-faq__list { width: 100%; translate: none; }
  .p-onsite-faq__item { height: auto !important; padding: 17px 0 0 67px; }
  .p-onsite-faq__q,
  .p-onsite-faq__a { position: relative; left: auto; top: auto; width: auto; white-space: normal; }
  .p-onsite-faq__q { min-height: 43px; }
  .p-onsite-faq__a { margin: 12px 0 0 -2px; }
  .p-onsite .p-onsite-form__panel { left: var(--pad); right: var(--pad); width: auto; }
  .p-onsite-form__form { width: min(800px, 100% - 48px); }
}
@media screen and (min-width: 768px) and (max-width: 1023px) {
  /* §1 FV: 写真の幅を確保（見出しの帯は写真に重なる＝デザインどおり） */
  .p-onsite .p-onsite-fv__photo { left: min(calc(var(--s) + 670 * var(--kt)), 100% - 420px); }
  /* §4・§5・§8 長い1行の見出し・リードは折り返す */
  .p-onsite-team__lead,
  .p-onsite-message__ttl,
  .p-onsite-cta__lead { width: auto; max-width: 100%; white-space: normal; }
  .p-onsite-team__lead br,
  .p-onsite-cta__lead br { display: none; }
  /* §5 メッセージは写真を上に1列 */
  .p-onsite > .p-onsite-message { grid-template-columns: minmax(0, 1fr); }
  .p-onsite-message__img { grid-column: 1; justify-self: center; }
  .p-onsite-message > .p-onsite-message__body { grid-column: 1; grid-row: 3; margin-top: 40px; }
  .p-onsite .p-onsite-message__panel { left: calc(var(--pad) - 16px); right: calc(var(--pad) - 16px); top: 560px; bottom: 40px; height: auto; }
  .p-onsite-message__body .p-onsite-message__quote { width: auto; height: auto; padding-bottom: 12px; }
  /* §9 料金: 表は幅いっぱい、行は中身で組む */
  .p-onsite-price__list { width: 100%; }
  .p-onsite-price__row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; height: auto !important; padding: 20px 32px; }
  .p-onsite-price__row > dt,
  .p-onsite-price__row .p-onsite-price__amount,
  .p-onsite-price__row .p-onsite-price__unit { position: static; width: auto; height: auto; }
  .p-onsite-price__row > dd { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin: 0; }
  .p-onsite-price__notes { width: auto; translate: none; }
  /* §14 フォーム: 項目名を上、入力欄を下 */
  .p-onsite-form__row { flex-direction: column; align-items: stretch !important; gap: 8px !important; }
  .p-onsite-form__label,
  .p-onsite-form__field { width: 100% !important; }
  .p-onsite-form__note,
  .p-onsite-form__agree,
  .p-onsite-form__submit { position: relative; left: auto !important; top: auto !important; display: block; margin: 0 auto; }
  .p-onsite-form__note { margin-top: 24px; text-align: center; }
  .p-onsite-form__agree { width: max-content; margin-top: 24px; }
  .p-onsite-form__submit { margin-top: 24px; }
  .p-onsite > .p-onsite-form { padding-bottom: 140px; }
  .p-onsite .p-onsite-form__panel { bottom: 80px; height: auto; }
}

/* ==========================================================================
   §14 フォーム: エラー表示で送信ボタンと重ならないようにする（2026-10-21 西川さん依頼）
   原因: 注記・同意・送信ボタン・応答メッセージを、エラーなしの時の位置（Figma）に絶対配置していた。
   エラー文（1件 22px）で行が伸びても下の要素が動かず、パネル・セクションの高さも固定だった。
   → 行の下に続けて並べる（通常のフロー）。エラーなしの時の位置は従来と同じになる余白にする
   ========================================================================== */
.p-onsite-form__form .p-onsite-form__note,
.p-onsite-form__form .p-onsite-form__agree,
.p-onsite-form__form .p-onsite-form__submit,
.p-onsite-form__form .wpcf7-response-output { position: relative; top: auto; display: block; }
.p-onsite-form__form .wpcf7-response-output { left: 0; right: 0; }
.p-onsite-form__form .wpcf7-spinner { position: relative; display: block; }
@media screen and (min-width: 1024px) {
  /* 行の下端 880 → 注記 900・同意 952・ボタン 1011〜1081（スピナーはボタン上端+23・x600、応答は 1095） */
  .p-onsite-form__form .p-onsite-form__note { margin-top: 20px; }
  .p-onsite-form__form .p-onsite-form__agree { margin-top: 30.41px; width: max-content; height: 28.8px; } /* 高さは文字1行分に固定（CF7 の span で WP 版だけ 32.19 になるため） */
  .p-onsite-form__form .p-onsite-form__submit { margin-top: 30.2px; }
  .p-onsite-form__form .wpcf7-spinner { left: 0; top: auto; margin: -47px 0 23px 600px; }
  .p-onsite-form__form .wpcf7-response-output { margin: 37px 0 0 !important; } /* スピナーの下マージン 23px と相殺されるので 23＋14。ボタン下端+14 */
  /* パネルとセクションは中身に合わせて伸びる（エラーなしで従来と同じ: パネル下端＝ボタン下端+40、セクション下端＝パネル下端+100） */
  .p-onsite > .p-onsite-form { padding-bottom: 140px; }
  .p-onsite .p-onsite-form__panel { height: auto; bottom: 100px; }
}
@media screen and (min-width: 768px) and (max-width: 1023px) {
  .p-onsite-form__form .wpcf7-spinner { left: 0; top: auto; margin: -47px auto 23px calc(50% + 200px); }
  .p-onsite-form__form .wpcf7-response-output { margin: 37px 0 0 !important; } /* スピナーの下マージン 23px と相殺されるので 23＋14。ボタン下端+14 */
}
@media screen and (max-width: 767px) {
  /* SP: 行の下端 1116 → 注記 1124・同意 1198・ボタン 1247〜1297・応答 1305（--u＝幅/375） */
  .p-onsite > .p-onsite-form { height: auto; padding-top: calc(227 * var(--u)); padding-bottom: calc(130 * var(--u)); background-size: 100% calc(100% - 40 * var(--u)); }
  .p-onsite .p-onsite-form__form { position: relative; top: auto; }
  .p-onsite .p-onsite-form__panel { height: auto; bottom: calc(90 * var(--u)); }
  .p-onsite-form__form .p-onsite-form__note { margin-top: calc(8 * var(--u)); }
  .p-onsite-form__form .p-onsite-form__agree { margin-top: calc(30.81 * var(--u)); width: max-content; height: calc(28.8 * var(--u)); }
  .p-onsite-form__form .p-onsite-form__submit { margin-top: calc(20.2 * var(--u)); }
  .p-onsite-form__form .wpcf7-spinner { left: 0; top: auto; margin: calc(8 * var(--u)) auto calc(-32 * var(--u)); }
  .p-onsite-form__form .wpcf7-response-output { margin: calc(8 * var(--u)) 0 0 !important; }
}

/* §14 入力欄の文字サイズを本番（club100.sport-motivation.com/contact/）と同じ指定に: SP 0.875rem・PC 1rem（ルートはテーマ共通。PC 1920/1440 で 16px、1280 で 15.4px、SP 14px）
   本番の textarea はテーマの指定が無くブラウザ初期値（13.33px 等幅）なので、ほかの入力欄にそろえる */
.p-onsite-form__form .p-onsite-form__input,
.p-onsite-form__form .p-onsite-form__select,
.p-onsite-form__form .p-onsite-form__textarea { font-size: 0.875rem; }
@media screen and (min-width: 768px) {
  .p-onsite-form__form .p-onsite-form__input,
  .p-onsite-form__form .p-onsite-form__select,
  .p-onsite-form__form .p-onsite-form__textarea { font-size: 1rem; }
}

/* §8・§12 CTA（SP）: 背景の英字 CONTACT US が見出しの1行目に被る（2026-10-21 西川さん指摘）
   原因: Figma の SP は英字 y50〜88・見出し y72 で、英字の下 1/3 が見出しに重なる配置。それをそのまま実装していた
   → 英字だけ上へ（50→24）。見出しの文字との間に約 18px（375px 時）あけ、「見出しのすぐ上に薄い英字」の見え方は残す */
@media screen and (max-width: 767px) {
  .p-onsite-cta__en { top: calc(24 * var(--u)); }
}

/* §14 ご相談内容（PC）: 例文 5 行（各 1 行）をスクロールなしで全部見せる高さ。157→172（16px×行高1.8×5行＋上下余白20＋枠2＝166 に少し余裕）
   SP は従来の高さ（201×幅/375）で 6 行（「お悩み」は 2 行）が収まるので変えない（2026-10-21 西川さん依頼） */
@media screen and (min-width: 768px) {
  .p-onsite-form__form .p-onsite-form__textarea { height: 172px; }
}

/* §14 同意欄の「プライバシーポリシー」: /contact/ のフォームの同意欄と同じ見た目（テーマ styles.css の .p-form__agree a と、共通の a:hover）
   色 rgb(41, 146, 235)・下線・hover で opacity 0.7（0.3秒） */
.p-onsite-form__agree a { color: #2992EB; text-decoration: underline; }
@media (any-hover: hover) {
  .p-onsite-form__agree a { transition: opacity 0.3s; }
  .p-onsite-form__agree a:hover { opacity: 0.7; }
}

/* §5 代表メッセージ・§6 メリット（PC）: カンプどおりだと上下の余白が大きく間延びして見えるので詰める（2026-10-21 西川さん指摘）
   カンプとの違い: §5 上の余白 167→120・写真の上 59.6→50・本文の上 169.6→134（白いパネルは写真の上端から 40 下・本文の 44 上）・下の余白 70→56
                   §6 カードの上 65.4→44・下の余白 110→72 */
@media screen and (min-width: 1024px) {
  .p-onsite > .p-onsite-message { padding-top: 120px; padding-bottom: 56px; }
  .p-onsite .p-onsite-message__en { top: 25px; }
  .p-onsite-message__img { margin-top: 50px; }
  .p-onsite-message > .p-onsite-message__body { margin-top: 134px; }
  .p-onsite .p-onsite-message__panel { top: 303px; bottom: 16px; height: auto; }
  .p-onsite > .p-onsite-merit { padding-bottom: 72px; }
  .p-onsite-merit > .p-onsite-merit__card { margin-top: 44px; }
}

/* ==========================================================================
   2026-10-23 楢本さんFB（Figma SP #174:1463 へのコメント2件）をSPの実装側で反映。Figma は水口さんが並行で修正予定
   ① 書籍・講演イベントが大きすぎる → 書籍は表紙の高さ 260→176（×0.68）、講演は幅 329→250・写真 252→191。パネルを詰め、以降のトレーナー一覧を 174 上へ
   ② お客様の声の文字が大きくバランスが悪い → 見出し 20→17、本文 18→15、アバター 90→72、カード高さ 496→400
   戻す時はこのブロックを消す
   ========================================================================== */
@media screen and (max-width: 767px) {
  .p-onsite-team { height: calc(1714 * var(--u)); }

  /* 書籍（パネル 358〜637） */
  .p-onsite-panel--books::before { top: calc(358 * var(--u)); height: calc(279 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__view { left: calc(-88 * var(--u)); top: calc(401 * var(--u)); width: calc(550 * var(--u)); height: calc(196 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__track { left: calc(-175.2 * var(--u)); top: calc(8 * var(--u)); height: calc(176 * var(--u)); gap: calc(10 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item { width: calc(177 * 0.68 * var(--u)); height: calc(176 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="2"] { height: calc(258.69 * 0.68 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="3"] { width: calc(176 * 0.68 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="4"] { width: calc(183 * 0.68 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="5"] { width: calc(222 * 0.68 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="6"] { width: calc(181 * 0.68 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__prev { top: calc(477 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__next { top: calc(477 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__dots { top: calc(600 * var(--u)); }

  /* 講演・イベント（パネル 695〜1066） */
  .p-onsite-panel--events::before { top: calc(695 * var(--u)); height: calc(371 * var(--u)); }
  .p-onsite-panel--events .p-onsite-panel__ttl { top: calc(675 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__view { top: calc(750 * var(--u)); height: calc(240 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__track { left: calc(-717.5 * var(--u)); gap: calc(10 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__item { width: calc(250 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__item img { height: calc(191 * var(--u)); }
  .p-onsite-panel--events figcaption { margin-top: calc(8 * var(--u)); font-size: calc(14 * var(--u)); line-height: calc(19 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__prev { top: calc(825 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__next { top: calc(825 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__dots { top: calc(1009 * var(--u)); }

  /* トレーナー一覧（174 上へ） */
  .p-onsite-team__list-ttl { top: calc(1116 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__view { top: calc(1172 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__prev { top: calc(1277 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__next { top: calc(1277 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__dots { top: calc(1657 * var(--u)); }

  /* お客様の声 */
  .p-onsite-voices { height: calc(636 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__view { height: calc(400 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__prev { top: calc(189 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__next { top: calc(189 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__dots { top: calc(579 * var(--u)); }
  .p-onsite-vcard { height: calc(400 * var(--u)); }
  .p-onsite-vcard::before { top: calc(100 * var(--u)); }
  .p-onsite-vcard img.p-onsite-vcard__avatar { left: calc(22 * var(--u)); top: calc(14 * var(--u)); width: calc(72 * var(--u)); height: calc(72 * var(--u)); }
  .p-onsite-vcard__meta { left: calc(108 * var(--u)); top: calc(28 * var(--u)); font-size: calc(13 * var(--u)); line-height: calc(21 * var(--u)); }
  .p-onsite-vcard__ttl { left: calc(20 * var(--u)); top: calc(116 * var(--u)); font-size: calc(17 * var(--u)); line-height: calc(28 * var(--u)); }
  .p-onsite-vcard__ttl::after { top: calc(69 * var(--u)); width: calc(295 * var(--u)); }
  .p-onsite-vcard__txt { left: calc(20 * var(--u)); top: calc(200 * var(--u)); width: calc(295 * var(--u) + 0.08em); font-size: calc(15 * var(--u)); line-height: calc(26 * var(--u)); }
  .p-onsite-vcard--1 img.p-onsite-vcard__avatar { left: calc(22 * var(--u)); }
  .p-onsite-vcard--1 .p-onsite-vcard__meta { left: calc(108 * var(--u)); }
  .p-onsite-vcard--1 .p-onsite-vcard__ttl,
  .p-onsite-vcard--1 .p-onsite-vcard__txt { left: calc(20 * var(--u)); }
}

/* ==========================================================================
   2026-10-23 SPを Figma 10/22版（水口さんが縦を縮めた版・#174:1463 高さ16297→15447）に合わせる
   変わったのは §5 代表メッセージ（1701→1293）・§6 メリット（807→645）・§11 ご利用の流れ（1274→994）だけ。ほかのセクションは同じ（行ごとの比較で確認）
   ========================================================================== */
@media screen and (max-width: 767px) {
  /* §5 代表メッセージ（本文 16/29 → 14/22.4、引用 15/24） */
  .p-onsite-message { height: calc(1293 * var(--u)); }
  .p-onsite-message__panel { top: calc(286 * var(--u)); height: calc(999 * var(--u)); }
  .p-onsite-message__img { left: calc(115.8 * var(--u)); top: calc(205 * var(--u)); width: calc(143.5 * var(--u)); height: calc(182 * var(--u)); }
  .p-onsite-message__body { font-size: calc(14 * var(--u)); line-height: calc(22.4 * var(--u)); }
  .p-onsite-message__p1 { top: calc(397 * var(--u)); }
  .p-onsite-message__quote { top: calc(473 * var(--u)); height: calc(170 * var(--u)); font-size: calc(15 * var(--u)); line-height: calc(24 * var(--u)); }
  .p-onsite-message__p2 { top: calc(653 * var(--u)); }
  .p-onsite-message__p2 p + p { margin-top: calc(22.4 * var(--u)); }
  .p-onsite-message__p2 p:nth-of-type(2) { font-size: calc(16 * var(--u)); line-height: calc(25.6 * var(--u)); } /* 「それなら、私たちが伺えばいい。」だけ16px */
  /* 3段落目の「なりました。」の後の改行は 10/22版のSPでなくなった → HTML の <br> を u-desktop にした */
  .p-onsite-message__mark--1 { top: calc(197 * var(--u)); width: calc(291 * var(--u)); }
  .p-onsite-message__mark--2 { top: calc(393 * var(--u)); width: calc(291 * var(--u)); }
  .p-onsite-message__mark--3 { top: calc(414 * var(--u)); width: calc(289 * var(--u)); }
  .p-onsite-message__mark--4 { top: calc(437 * var(--u)); width: calc(237 * var(--u)); }
  .p-onsite-message__mark--5 { display: none; }
  .p-onsite-message__sign { top: calc(1205 * var(--u)); }
  .p-onsite-message__name { margin-left: calc(178 * var(--u)); font-size: calc(22 * var(--u)); }

  /* §6 メリット（本文 18/32 → 16/25.6） */
  .p-onsite-merit { height: calc(645 * var(--u)); }
  .p-onsite-merit__card--1::before { top: calc(102 * var(--u)); height: calc(250 * var(--u)); }
  .p-onsite-merit__card--2::before { top: calc(392 * var(--u)); height: calc(203 * var(--u)); }
  .p-onsite-merit__card--2 .p-onsite-merit__card-ttl { top: calc(372 * var(--u)); }
  .p-onsite-merit__card-txt { font-size: calc(16 * var(--u)); line-height: calc(25.6 * var(--u)); }
  .p-onsite-merit__card--1 .p-onsite-merit__card-txt { top: calc(131.1 * var(--u)); }
  .p-onsite-merit__card--2 .p-onsite-merit__card-txt { top: calc(426.5 * var(--u)); }

  /* §11 ご利用の流れ（見出し 24→20、番号 50→46、本文 18/32 → 14/25.2） */
  .p-onsite-flow { height: calc(994 * var(--u)); }
  .p-onsite-flow__list { height: calc(782 * var(--u)); }
  .p-onsite-flow__step--01 { top: 0; height: calc(160 * var(--u)); }
  .p-onsite-flow__step--02 { top: calc(191 * var(--u)); height: calc(160 * var(--u)); }
  .p-onsite-flow__step--03 { top: calc(382 * var(--u)); height: calc(209 * var(--u)); }
  .p-onsite-flow__step--04 { top: calc(622 * var(--u)); height: calc(160 * var(--u)); }
  .p-onsite-flow__step:not(:last-child)::after { top: calc(100% + 5 * var(--u)); translate: none; }
  .p-onsite-flow__num { left: calc(1 * var(--u)); top: calc(1 * var(--u)); font-size: calc(46 * var(--u)); line-height: calc(57.7 * var(--u)); }
  .p-onsite-flow__ttl { left: calc(71 * var(--u)); top: calc(19 * var(--u)); width: calc(222 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(30 * var(--u)); }
  .p-onsite-flow__step--03 .p-onsite-flow__ttl { top: calc(13 * var(--u)); }
  .p-onsite-flow__ttl::after { left: calc(-35 * var(--u)); top: calc(38 * var(--u)); width: calc(275 * var(--u)); }
  .p-onsite-flow__step--03 .p-onsite-flow__ttl::after { top: calc(68 * var(--u)); }
  .p-onsite-flow__txt { left: calc(37.2 * var(--u)); top: calc(68 * var(--u)); width: calc(275 * var(--u) + 0.08em); font-size: calc(14 * var(--u)); line-height: calc(25.2 * var(--u)); }
  .p-onsite-flow__step--02 .p-onsite-flow__txt { top: calc(69 * var(--u)); }
  .p-onsite-flow__step--03 .p-onsite-flow__txt { top: calc(93 * var(--u)); }
  .p-onsite-flow__step--04 .p-onsite-flow__txt { top: calc(67 * var(--u)); }
}
/* 10/22版 SP の実測補正（offset.py） */
@media screen and (max-width: 767px) {
  .p-onsite-message__quote { translate: 0 calc(1 * var(--u)); }
  .p-onsite-message__p2 p { translate: 0 calc(-1 * var(--u)); }
  .p-onsite-message__p2 p:nth-of-type(n+3) { translate: 0 calc(-5 * var(--u)); }
  .p-onsite-merit__card-txt { translate: 0 calc(1 * var(--u)); }
  .p-onsite-merit__card--1 .p-onsite-merit__card-txt { translate: 0 calc(2 * var(--u)); }
  .p-onsite-flow__step::before { left: calc(15 * var(--u)); }
  .p-onsite-flow__ttl { translate: calc(1 * var(--u)) calc(1 * var(--u)); }
  .p-onsite-flow__txt { translate: none; }
  .p-onsite-flow__step:not(:last-child)::after { top: calc(100% + 10 * var(--u)); }
}

/* ==========================================================================
   2026-10-23 21:1x ①Figma最新（10/23 21:00 水口さん調整版・SP #174:1463）を再現（SPのみ）
   書籍・講演の背景を1枚（#EAE5D7）に／見出しは帯192×33.7・18px／書籍は表紙190のスライダー／
   講演は写真180×137.6＋2行（11px）のカードのスライダー／§4 の高さ 1646
   ========================================================================== */
@media screen and (max-width: 767px) {
  .p-onsite-team { height: calc(1646 * var(--u)); }
  .p-onsite-panel--books::before { top: calc(336 * var(--u)); height: calc(662 * var(--u)); background: #EAE5D7; }
  .p-onsite-panel--events::before { display: none; }
  .p-onsite-panel__ttl { width: calc(192 * var(--u)) !important; height: calc(33.7 * var(--u)); padding-top: calc(5 * var(--u)); font-size: calc(18 * var(--u)); line-height: calc(23.4 * var(--u)); translate: none !important; background-image: url(../img/panel-label-sp-books.svg) !important; background-size: 100% 100%; }
  .p-onsite-panel--books .p-onsite-panel__ttl { left: calc(90 * var(--u)) !important; top: calc(386 * var(--u)); }
  .p-onsite-panel--events .p-onsite-panel__ttl { left: calc(90 * var(--u)) !important; top: calc(690 * var(--u)); }

  .p-onsite-panel--books .p-onsite-slider__view { left: 0; top: calc(425 * var(--u)); width: 100%; height: calc(227 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__track { left: calc(-296.7 * var(--u)); top: calc(9 * var(--u)); height: calc(190 * var(--u)); gap: calc(10 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item { width: calc(177 * 0.7308 * var(--u)); height: calc(190 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="2"] { height: calc(258.69 * 0.7308 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="3"] { width: calc(176 * 0.7308 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="4"] { width: calc(183 * 0.7308 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="5"] { width: calc(222 * 0.7308 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="6"] { width: calc(181 * 0.7308 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__prev { left: calc(12 * var(--u)); top: calc(513 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__next { left: calc(327 * var(--u)); top: calc(513 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__dots { top: calc(645 * var(--u)); }

  .p-onsite-panel--events .p-onsite-slider__view { left: 0; top: calc(739 * var(--u)); width: 100%; height: calc(172 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__track { left: calc(-474.8 * var(--u)); top: 0; gap: calc(10 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__item { width: calc(180 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__item img { height: calc(137.6 * var(--u)); }
  .p-onsite-panel--events figcaption { margin-top: calc(7 * var(--u)); font-size: calc(11 * var(--u)); line-height: calc(15.4 * var(--u)); white-space: normal; overflow: visible; translate: none; }
  .p-onsite-panel--events .p-onsite-slider__prev { left: calc(10 * var(--u)); top: calc(818 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__next { left: calc(325 * var(--u)); top: calc(818 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__dots { top: calc(941 * var(--u)); }

  .p-onsite-team__list-ttl { top: calc(1048 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__view { top: calc(1104 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__prev,
  .p-onsite-slider--trainers .p-onsite-slider__next { top: calc(1209 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__dots { top: calc(1589 * var(--u)); }
}

/* ==========================================================================
   2026-10-23 21:1x ②内部の課題を解くスタイル（section に is-quiet。外せば①のFigma再現に戻る）
   ・書籍・講演が目立ちすぎ／補強材料として控えめに → 背景を薄く、全体の縦を 998→708 に
   ・見出しがトレーナー一覧（20px・左右の線）より目立つ → 帯をやめ、14pxの金色の小見出しに
   ・書籍は一画面に収める → 6冊を横一列（表紙51×75）で全部見せ、矢印・ドットは出さない
   ・講演名が入らない → 写真140×107＋11pxで2行。矢印も小さく（32px）
   ========================================================================== */
@media screen and (max-width: 767px) {
  .is-quiet.p-onsite-team { height: calc(1356 * var(--u)); }
  .is-quiet .p-onsite-panel--books::before { height: calc(372 * var(--u)); background: #F3F0E8; }
  .is-quiet .p-onsite-panel__ttl { left: 0 !important; width: 100% !important; height: auto; padding-top: 0; background: none !important; font-size: calc(14 * var(--u)); line-height: calc(20 * var(--u)); letter-spacing: 0.16em; color: #B1935F; }
  .is-quiet .p-onsite-panel--books .p-onsite-panel__ttl { top: calc(356 * var(--u)); }
  .is-quiet .p-onsite-panel--events .p-onsite-panel__ttl { top: calc(491 * var(--u)); }

  .is-quiet .p-onsite-panel--books .p-onsite-slider__view { top: calc(386 * var(--u)); height: calc(80 * var(--u)); }
  .is-quiet .p-onsite-panel--books .p-onsite-slider__track { left: calc(19.5 * var(--u)); top: 0; height: calc(75 * var(--u)); gap: calc(6 * var(--u)); transform: none !important; transition: none !important; }
  .is-quiet .p-onsite-panel--books .p-onsite-slider__item[aria-hidden="true"] { display: none; }
  .is-quiet .p-onsite-panel--books .p-onsite-slider__item,
  .is-quiet .p-onsite-panel--books .p-onsite-slider__item[data-n] { width: calc(51 * var(--u)); height: calc(75 * var(--u)); }
  .is-quiet .p-onsite-panel--books .p-onsite-slider__item img { width: 100%; height: 100%; object-fit: cover; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); }
  .is-quiet .p-onsite-panel--books .p-onsite-slider__prev,
  .is-quiet .p-onsite-panel--books .p-onsite-slider__next,
  .is-quiet .p-onsite-panel--books .p-onsite-slider__dots { display: none; }

  .is-quiet .p-onsite-panel--events .p-onsite-slider__view { top: calc(517 * var(--u)); height: calc(152 * var(--u)); }
  .is-quiet .p-onsite-panel--events .p-onsite-slider__track { left: calc(-332.5 * var(--u)); }
  .is-quiet .p-onsite-panel--events .p-onsite-slider__item { width: calc(140 * var(--u)); }
  .is-quiet .p-onsite-panel--events .p-onsite-slider__item img { height: calc(107 * var(--u)); }
  .is-quiet .p-onsite-panel--events figcaption { margin-top: calc(6 * var(--u)); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; } /* 2行を超える講演名は…で切る */
  .is-quiet .p-onsite-panel--events .p-onsite-slider__prev,
  .is-quiet .p-onsite-panel--events .p-onsite-slider__next { width: calc(32 * var(--u)); height: calc(32 * var(--u)); top: calc(554 * var(--u)); background-size: 100% 100%; }
  .is-quiet .p-onsite-panel--events .p-onsite-slider__prev { left: calc(10 * var(--u)); }
  .is-quiet .p-onsite-panel--events .p-onsite-slider__next { left: calc(333 * var(--u)); }
  .is-quiet .p-onsite-panel--events .p-onsite-slider__dots { top: calc(679 * var(--u)); }

  .is-quiet .p-onsite-team__list-ttl { top: calc(758 * var(--u)); }
  .is-quiet .p-onsite-slider--trainers .p-onsite-slider__view { top: calc(814 * var(--u)); }
  .is-quiet .p-onsite-slider--trainers .p-onsite-slider__prev,
  .is-quiet .p-onsite-slider--trainers .p-onsite-slider__next { top: calc(919 * var(--u)); }
  .is-quiet .p-onsite-slider--trainers .p-onsite-slider__dots { top: calc(1299 * var(--u)); }
}

/* ==========================================================================
   2026-10-23 23:3x お客様の声（SP）を Figma 最新（10/23 21:00 版・#175:2155）にそろえる
   カード335×383／上の白い部分103／アバター72（左30・上15）／名前14px・22.4／見出し18px・28.8／本文14px・25.2／
   点線は見出しの69下／§7 の高さ 619（ドットは件数どおり3つのまま＝Figmaは8つ）
   ========================================================================== */
@media screen and (max-width: 767px) {
  .p-onsite-voices { height: calc(619 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__view { top: calc(159 * var(--u)); height: calc(383 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__prev,
  .p-onsite-slider--voices .p-onsite-slider__next { top: calc(192 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__dots { top: calc(562 * var(--u)); }
  .p-onsite-vcard { height: calc(383 * var(--u)); }
  .p-onsite-vcard::before { top: calc(103 * var(--u)); }
  .p-onsite-vcard img.p-onsite-vcard__avatar { left: calc(30 * var(--u)); top: calc(15 * var(--u)); width: calc(72 * var(--u)); height: calc(72 * var(--u)); }
  .p-onsite-vcard__meta { left: calc(113 * var(--u)); top: calc(31 * var(--u)); font-size: calc(14 * var(--u)); line-height: calc(22.4 * var(--u)); }
  .p-onsite-vcard__ttl { left: calc(23 * var(--u)); top: calc(115 * var(--u)); font-size: calc(18 * var(--u)); line-height: calc(28.8 * var(--u)); }
  .p-onsite-vcard__ttl::after { top: calc(69 * var(--u)); width: calc(295 * var(--u)); }
  .p-onsite-vcard__txt { left: calc(23 * var(--u)); top: calc(192 * var(--u)); width: calc(295 * var(--u) + 0.08em); font-size: calc(14 * var(--u)); line-height: calc(25.2 * var(--u)); }
  .p-onsite-vcard--1 img.p-onsite-vcard__avatar { left: calc(26 * var(--u)); }
  .p-onsite-vcard--1 .p-onsite-vcard__meta { left: calc(119 * var(--u)); }
  .p-onsite-vcard--1 .p-onsite-vcard__ttl,
  .p-onsite-vcard--1 .p-onsite-vcard__txt { left: calc(19 * var(--u)); }
}
/* お客様の声 SP の実測補正（offset.py） */
@media screen and (max-width: 767px) {
  .p-onsite-slider--voices .p-onsite-slider__view { top: calc(158 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__track { left: calc(-326 * var(--u)); }
  .p-onsite-vcard__ttl { translate: none; }
}

/* ==========================================================================
   2026-10-24 00:0x Figma 最新（10/23 22:21 版・_design/comp/v1023c）にそろえる（SPのみ・②の is-quiet は外した）
   書籍・講演の見出しは帯なし18px／トレーナー一覧の見出しに帯（225.9×39.6・22px）／書籍の表紙140のスライダー／
   講演は写真180×137.6＋2行のスライダー／矢印40は画像の左右・ドットは下／背景 #EAE5D7 は 336〜925／§4 1577
   ========================================================================== */
@media screen and (max-width: 767px) {
  .p-onsite-team { height: calc(1577 * var(--u)); }
  .p-onsite-panel--books::before { top: calc(336 * var(--u)); height: calc(589 * var(--u)); background: #EAE5D7; }

  .p-onsite-panel__ttl { left: 0 !important; width: 100% !important; height: auto; padding-top: 0; background: none !important; font-size: calc(18 * var(--u)); line-height: calc(23.4 * var(--u)); }
  .p-onsite-panel--books .p-onsite-panel__ttl { top: calc(391 * var(--u)); }
  .p-onsite-panel--events .p-onsite-panel__ttl { top: calc(632 * var(--u)); }

  .p-onsite-panel--books .p-onsite-slider__view { top: calc(415 * var(--u)); height: calc(227 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__track { left: calc(-177.15 * var(--u)); top: calc(9 * var(--u)); height: calc(140 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item { width: calc(177 * 0.5385 * var(--u)); height: calc(140 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="2"] { height: calc(258.69 * 0.5385 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="3"] { width: calc(176 * 0.5385 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="4"] { width: calc(183 * 0.5385 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="5"] { width: calc(222 * 0.5385 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__item[data-n="6"] { width: calc(181 * 0.5385 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__prev,
  .p-onsite-panel--books .p-onsite-slider__next { top: calc(474 * var(--u)); }
  .p-onsite-panel--books .p-onsite-slider__dots { top: calc(585 * var(--u)); }

  .p-onsite-panel--events .p-onsite-slider__view { top: calc(666 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__prev,
  .p-onsite-panel--events .p-onsite-slider__next { top: calc(715 * var(--u)); }
  .p-onsite-panel--events .p-onsite-slider__dots { top: calc(868 * var(--u)); }

  .p-onsite-team__list-ttl { left: calc(75.4 * var(--u)); top: calc(975 * var(--u)); width: calc(225.9 * var(--u)); height: calc(39.6 * var(--u)); justify-content: center; padding-top: calc(4 * var(--u)); box-sizing: border-box; align-items: flex-start; background: url(../img/panel-label-sp-books.svg) no-repeat 0 0 / 100% 100%; font-size: calc(22 * var(--u)); line-height: calc(28.6 * var(--u)); translate: none; }
  .p-onsite-team__list-ttl::before,
  .p-onsite-team__list-ttl::after { display: none; }
  .p-onsite-slider--trainers .p-onsite-slider__view { top: calc(1035 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__prev,
  .p-onsite-slider--trainers .p-onsite-slider__next { top: calc(1140 * var(--u)); }
  .p-onsite-slider--trainers .p-onsite-slider__dots { top: calc(1520 * var(--u)); }
}
@media screen and (max-width: 767px) {
  .p-onsite-team__list-ttl { background-image: url(../img/panel-label-stretch.svg); translate: calc(3 * var(--u)) 0; } /* 帯を枠いっぱいに伸ばす（元のSVGは縦横比を保つため細くなっていた）。実測で右へ3 */
}
/* 2026-10-24 書籍・講演の見出しが右にずれていた：①（21:1x）の .p-onsite-panel--books/--events .p-onsite-panel__ttl { left: 90 !important } が
   後の .p-onsite-panel__ttl { left: 0 !important } より詳細度が高く残っていた。同じ詳細度で上書きして中央に戻す（Figma 22:21 は中央） */
@media screen and (max-width: 767px) {
  .p-onsite-panel--books .p-onsite-panel__ttl,
  .p-onsite-panel--events .p-onsite-panel__ttl { left: 0 !important; width: 100% !important; }
}
/* 2026-10-24 お客様の声の前へ・次へをカードの上下中央に（西川さん指摘）。カードの位置・高さを変数にし、ボタンはその中央から半分上げる */
@media screen and (max-width: 767px) {
  .p-onsite-voices { --v-top: calc(158 * var(--u)); --v-h: calc(383 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__view { top: var(--v-top); height: var(--v-h); }
  .p-onsite-vcard { height: var(--v-h); }
  .p-onsite-slider--voices .p-onsite-slider__prev,
  .p-onsite-slider--voices .p-onsite-slider__next { top: calc(var(--v-top) + var(--v-h) / 2); translate: 0 -50%; }
}
/* 2026-10-24 出張パーソナルページだけ SP の追従ボタン（無料カウンセリングはこちら）を出さない（西川さん指示）。on-site.css はこのページだけで読み込む */
@media screen and (max-width: 767px) {
  .p-footer__fixed { display: none !important; }
}
/* 2026-10-27 関様指摘：SP のお客様の声で前へ・次へがカードの本文に被る → カードの下、ドットの左右に置く（ドットの縦の中央にそろえる） */
@media screen and (max-width: 767px) {
  .p-onsite-slider--voices .p-onsite-slider__prev,
  .p-onsite-slider--voices .p-onsite-slider__next { top: calc(var(--v-top) + var(--v-h) + 24.5 * var(--u)); translate: 0 -50%; }
  .p-onsite-slider--voices .p-onsite-slider__prev { left: calc(50% - 88 * var(--u)); }
  .p-onsite-slider--voices .p-onsite-slider__next { left: calc(50% + 48 * var(--u)); }
}
/* 2026-10-29 関様指摘：SP で代表メッセージの最後の文と署名の間が空きすぎ（10/27 に最後の段落を削除したため約106px）。
   署名を82上げて間を約1行（24）にし、パネルとセクションの高さも同じだけ縮める（PC・タブレットは通常の流れで29px のまま） */
@media screen and (max-width: 767px) {
  .p-onsite-message { height: calc(1211 * var(--u)); }
  .p-onsite-message__panel { height: calc(917 * var(--u)); }
  .p-onsite-message__sign { top: calc(1123 * var(--u)); }
}
/* 2026-10-29 提携パートナーのロゴを12個にしたため、中央寄せの初期位置のままだと先頭（関様指定のアディダス）が画面の左外から始まる。
   流れる時は先頭のロゴを左端に置いて始める（JS が入れる margin-left を打ち消す） */
.p-onsite-partner__slider.is-marquee .p-onsite-partner__track { margin-left: 0 !important; }
/* 2026-10-29 ロゴの帯が画面に入るまで流さない（on-site.js が画面に半分入った時に is-inview を付ける） */
.p-onsite-partner__slider.is-marquee:not(.is-inview) .p-onsite-partner__track { animation-play-state: paused; }
/* 2026-10-29 マウスを乗せても止めない（西川さん指示）。上の :hover の一時停止を打ち消す。画面に入るまで止める動き（is-inview）はそのまま */
.p-onsite-partner__slider.is-marquee.is-inview:hover .p-onsite-partner__track { animation-play-state: running; }

/* 2026-11-04 研修の文言差し替え（関様10/31）で特徴01の本文がSPで1行増えたため、特徴01の枠以降を1行（29u）下げる */
@media screen and (max-width: 767px) {
  .p-onsite-trust { height: calc(2852 * var(--u)); }
  .p-onsite-feature--01 .p-onsite-feature__bg { height: calc(685 * var(--u)); }
  .p-onsite-feature--01 .p-onsite-feature__box { top: calc(1051 * var(--u)); }
  .p-onsite-feature--02 .p-onsite-feature__bg { top: calc(1614 * var(--u)); }
  .p-onsite-feature--02 .p-onsite-feature__img { top: calc(1515 * var(--u)); }
  .p-onsite-feature--02 .p-onsite-feature__num { top: calc(1358 * var(--u)); }
  .p-onsite-feature--02 .p-onsite-feature__ttl { top: calc(1413 * var(--u)); }
  .p-onsite-feature--02 .p-onsite-feature__txt { top: calc(1737 * var(--u)); }
  .p-onsite-feature--02 .p-onsite-feature__box { top: calc(1931 * var(--u)); }
  .p-onsite-feature--03 .p-onsite-feature__bg { top: calc(2390 * var(--u)); }
  .p-onsite-feature--03 .p-onsite-feature__img { top: calc(2297 * var(--u)); }
  .p-onsite-feature--03 .p-onsite-feature__num { top: calc(2141 * var(--u)); }
  .p-onsite-feature--03 .p-onsite-feature__ttl { top: calc(2196 * var(--u)); }
  .p-onsite-feature--03 .p-onsite-feature__txt { top: calc(2520 * var(--u)); }
}

/* 2026-11-05 楢本さん指摘（SP）
   ・スライダー: 端まで来たら、その向きの矢印は出さない（トレーナー一覧・お客様の声）
   ・同意欄のエラー文が送信ボタンに重なる: 同意欄の高さを文字1行分に固定していたため。エラー文が出た時だけ高さを中身に合わせる（エラーなしの位置は変えない） */
.p-onsite-slider__prev.is-hidden,
.p-onsite-slider__next.is-hidden { visibility: hidden; }
.p-onsite-form__form .p-onsite-form__agree:has(.wpcf7-not-valid-tip) { height: auto; }
