    :root {
      --bg: #ffffff;
      --text: #1a1a1a;
      --sub-text: #1a1a1a;
      --accent: #1e1f3b;
      --accent-text: #45508a;
      --accent-soft: #5a6ba8;
      --accent-coral: #d66b3f;
      --accent-coral-strong: #c85b2d;
      --accent-coral-soft: rgba(214, 107, 63, 0.14);
      --line: #e4e6f2;
      --line-strong: #c5cadf;
      --container: 1200px;
      /* header::before(2px) + .header-inner(min 88) + border(1) */
      --header-total: 91px;
    }

    .gtm-noscript-frame {
      display: none;
      visibility: hidden;
    }

    .faq-more-wrap {
      text-align: center;
      margin-top: 24px;
    }

    * { box-sizing: border-box; }

    body {
      margin: 0;
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 16px;
      color: var(--text);
      line-height: 1.9;
      letter-spacing: 0.02em;
      background: var(--bg);
      -webkit-font-smoothing: antialiased;
    }

    h1, h2, h3, .shippori {
      font-family: 'Noto Sans JP', sans-serif;
      font-weight: 700;
      line-height: 1.4;
      margin-top: 0;
      letter-spacing: -0.01em;
    }

    a { color: inherit; text-decoration: none; }
    .section-label, .wf-annotation { display: none !important; }
    /* Scroll fade-in */
    .fade-in {
      opacity: 0;
      transform: translateY(30px);
      transition: opacity 1.1s ease-out, transform 1.1s ease-out;
      will-change: opacity, transform;
    }
    .fade-in.is-visible {
      opacity: 1;
      transform: translateY(0);
    }
    /* 手動で表示順を制御したい場合（1〜10） */
    .fade-in.fade-order-1 { transition-delay: 0.04s; }
    .fade-in.fade-order-2 { transition-delay: 0.10s; }
    .fade-in.fade-order-3 { transition-delay: 0.16s; }
    .fade-in.fade-order-4 { transition-delay: 0.22s; }
    .fade-in.fade-order-5 { transition-delay: 0.28s; }
    .fade-in.fade-order-6 { transition-delay: 0.34s; }
    .fade-in.fade-order-7 { transition-delay: 0.40s; }
    .fade-in.fade-order-8 { transition-delay: 0.46s; }
    .fade-in.fade-order-9 { transition-delay: 0.52s; }
    .fade-in.fade-order-10 { transition-delay: 0.58s; }
    .fade-in.fade-order-11 { transition-delay: 0.64s; }
    .fade-in.fade-order-12 { transition-delay: 0.70s; }
    .fade-in.fade-order-13 { transition-delay: 0.76s; }
    .fade-in.fade-order-14 { transition-delay: 0.82s; }
    .fade-in.fade-order-15 { transition-delay: 0.88s; }
    .fade-in.fade-order-16 { transition-delay: 0.94s; }
    .fade-in.fade-order-17 { transition-delay: 1.00s; }
    .fade-in.fade-order-18 { transition-delay: 1.06s; }
    .fade-in.fade-order-19 { transition-delay: 1.12s; }
    .fade-in.fade-order-20 { transition-delay: 1.18s; }
    .fade-in.fade-order-21 { transition-delay: 1.24s; }
    .fade-in.fade-order-22 { transition-delay: 1.30s; }
    .fade-in.fade-order-23 { transition-delay: 1.36s; }
    .fade-in.fade-order-24 { transition-delay: 1.42s; }
    .fade-in.fade-order-25 { transition-delay: 1.48s; }
    .fade-in.fade-order-26 { transition-delay: 1.54s; }
    .fade-in.fade-order-27 { transition-delay: 1.60s; }
    .fade-in.fade-order-28 { transition-delay: 1.66s; }
    .fade-in.fade-order-29 { transition-delay: 1.72s; }
    .fade-in.fade-order-30 { transition-delay: 1.78s; }
    /* 11以降はfade-order-10と同じ遅延に揃える（出るのを遅くしすぎない） */
    .fade-in.fade-order-11,
    .fade-in.fade-order-12,
    .fade-in.fade-order-13,
    .fade-in.fade-order-14,
    .fade-in.fade-order-15,
    .fade-in.fade-order-16,
    .fade-in.fade-order-17,
    .fade-in.fade-order-18,
    .fade-in.fade-order-19,
    .fade-in.fade-order-20,
    .fade-in.fade-order-21,
    .fade-in.fade-order-22,
    .fade-in.fade-order-23,
    .fade-in.fade-order-24,
    .fade-in.fade-order-25,
    .fade-in.fade-order-26,
    .fade-in.fade-order-27,
    .fade-in.fade-order-28,
    .fade-in.fade-order-29,
    .fade-in.fade-order-30 {
      transition-delay: 0.58s;
    }
    @media (prefers-reduced-motion: reduce) {
      .fade-in,
      .fade-in.is-visible {
        opacity: 1;
        transform: none;
        transition: none;
      }
      .hero-main-image {
        transform: none !important;
      }
    }

    .container,
    .header-inner,
    .hero-inner,
    .hero-bottom,
    .footer-inner {
      max-width: var(--container);
      margin: 0 auto;
      padding-left: 40px;
      padding-right: 40px;
    }

    header {
      position: sticky;
      top: 0;
      z-index: 120;
      background: rgba(255, 255, 255, 0.94);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      border-bottom: 1px solid rgba(30, 31, 59, 0.14);
      box-shadow: 0 1px 0 rgba(30, 31, 59, 0.06);
    }
    header::before {
      content: "";
      display: block;
      height: 2px;
      width: 100%;
      background: var(--accent-soft);
      opacity: 0.95;
    }

    .header-inner {
      min-height: 88px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px 32px;
    }

    .logo-box {
      display: inline-flex;
      align-items: center;
      gap: 14px;
      flex-shrink: 0;
      text-decoration: none;
      color: #0a0a0a;
      transition: opacity 0.2s ease;
    }
    .logo-box:hover { opacity: 0.82; }
    .logo-img { display: block; height: 64px; width: auto; }
    .logo-tagline {
      font-size: 15px;
      font-weight: 600;
      color: #0a0a0a;
      letter-spacing: 0.14em;
      white-space: nowrap;
    }

    .nav-items {
      display: flex;
      align-items: center;
      gap: 6px 2px;
      margin-left: auto;
      flex-wrap: nowrap;
    }
    .nav-item {
      font-size: 15px;
      font-weight: 700;
      color: #0a0a0a;
      white-space: nowrap;
      padding: 10px 11px;
      position: relative;
      transition: color 0.2s ease;
    }
    .nav-item::after {
      content: "";
      position: absolute;
      left: 10px;
      right: 10px;
      bottom: 2px;
      height: 1px;
      background: var(--accent-soft);
      opacity: 0;
      transform: scaleX(0);
      transform-origin: left;
      transition: opacity 0.2s ease, transform 0.2s ease;
    }
    .nav-item:hover::after,
    .nav-item:focus-visible::after {
      opacity: 1;
      transform: scaleX(1);
    }
    .nav-item:hover { color: #0a0a0a; }
    .nav-item:hover {
      color: #252a4a;
      background: rgba(90, 107, 168, 0.12);
    }
    .nav-cta {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0;
      font-size: 15px;
      font-weight: 700;
      letter-spacing: 0.12em;
      margin-left: 14px;
      padding: 13px 24px 13px 26px;
      color: #fff;
      background: linear-gradient(165deg, #ff5c5c 0%, #f13c3c 58%, #c92828 100%);
      border: 1px solid #a82020;
      border-radius: 0;
      box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.12) inset,
        0 8px 22px rgba(241, 60, 60, 0.3);
      white-space: nowrap;
      position: relative;
      overflow: hidden;
      transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
    }
    .nav-cta::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      bottom: 0;
      width: 4px;
      background: rgba(255, 220, 220, 0.9);
    }
    .nav-cta:hover {
      color: #fff;
      filter: brightness(1.06);
      box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.16) inset,
        0 10px 28px rgba(241, 60, 60, 0.36);
    }
    .nav-cta:focus-visible {
      outline: 2px solid var(--accent-soft);
      outline-offset: 2px;
    }

    .floating-cta {
      position: fixed;
      right: 0;
      top: 50%;
      z-index: 110;
      transform: translateY(-50%);
      display: flex;
      align-items: center;
      justify-content: center;
      writing-mode: vertical-rl;
      text-orientation: mixed;
      min-height: 248px;
      padding: 34px 24px 34px 28px;
      font-size: 20px;
      font-weight: 800;
      letter-spacing: 0.22em;
      line-height: 1.55;
      color: #fff;
      text-decoration: none;
      background: linear-gradient(180deg, #ff5c5c 0%, #c92828 100%);
      border: 1px solid #a82020;
      border-right: 0;
      box-shadow: -8px 0 30px rgba(241, 60, 60, 0.32);
      transition: padding 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
    }
    .floating-cta::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      bottom: 0;
      width: 4px;
      background: rgba(255, 220, 220, 0.9);
    }
    .floating-cta:hover {
      filter: brightness(1.05);
      padding-left: 32px;
      box-shadow: -10px 0 36px rgba(241, 60, 60, 0.38);
    }
    .floating-cta:focus-visible {
      outline: 2px solid var(--accent-soft);
      outline-offset: 2px;
    }
    .hamburger, .sp-only { display: none; }

    #hero {
      display: flex;
      flex-direction: column;
      gap: clamp(20px, 3vw, 40px);
      padding: clamp(20px, 3vw, 40px) 0 0;
      /* border-bottom: 1px solid var(--line); */
      position: relative;
      background: #ffffff;
      overflow-x: hidden;
      box-sizing: border-box;
      min-height: calc(100vh - var(--header-total));
      min-height: calc(100svh - var(--header-total));
      min-height: calc(100dvh - var(--header-total));
      --hero-scroll-progress: 0;
      --hero-zoom-max: 0.14;
      /* SP：画像は親幅に対する % で統一（ビューポート単位よりブレにくい） */
      --hero-img-width-sp: 124%;
      --hero-img-max-h: 720px;
    }
    .hero-inner {
      position: relative;
      z-index: 3;
      pointer-events: auto;
      flex: 1 1 auto;
      min-height: 0;
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      grid-template-rows: 1fr;
      align-items: center;
      align-content: center;
      gap: clamp(12px, 1.6vw, 24px);
    }
    .hero-left {
      position: relative;
      z-index: 2;
      min-width: 0;
      max-width: 100%;
      padding-right: 0;
    }
    .hero-eyebrow {
      margin: 0 0 20px;
      font-size: clamp(15px, 1.7vw, 28px);
      font-weight: 700;
      letter-spacing: 0.02em;
      color: #1a2744;
    }
    .hero-eyebrow-keep {
      white-space: nowrap;
    }
    .hero-right {
      position: relative;
      z-index: 1;
      display: flex;
      justify-content: center;
      align-items: center;
      min-height: 0;
    }
    .hero-main-visual {
      display: flex;
      justify-content: center;
      align-items: flex-end;
      width: 100%;
      min-height: 0;
    }
    .hero-main-image {
      max-width: min(148%, 1320px);
      width: auto;
      height: auto;
      max-height: min(66vh, 1040px);
      max-height: min(66dvh, 1040px);
      object-fit: contain;
      object-position: center bottom;
      display: block;
    }
    @media (min-width: 961px) {
      .hero-left {
        align-self: center;
      }
      .hero-right {
        align-self: center;
      }
      .hero-main-image {
        max-height: min(69vh, 1100px);
        max-height: min(69dvh, 1100px);
      }
    }
    .hero-visual-link {
      position: absolute;
      z-index: 2;
      top: 0;
      right: 0;
      bottom: 0;
      width: min(62%, 720px);
      text-indent: -9999px;
      overflow: hidden;
      white-space: nowrap;
      background: transparent;
    }
    .hero-visual-link:hover { opacity: 0.97; }
    .hero-visual-link:focus-visible {
      outline: 2px solid var(--accent-soft);
      outline-offset: -4px;
    }
    .hero-h1 {
      font-size: clamp(30px, 3.8vw, 56px);
      line-height: 1.25;
      letter-spacing: 0.02em;
      margin-bottom: 12px;
      color: #1a2744;
      white-space: normal;
      overflow-wrap: anywhere;
    }
    .hero-sub {
      max-width: 600px;
      margin-left: 0;
      margin-top: 0;
      font-size: clamp(12px, 1.05vw, 17px);
      line-height: 1.72;
      color: #24385e;
    }
    .hero-sub strong { color: #1a2744; font-weight: 700; }
    .hero-eyebrow .hero-accent-text,
    .hero-h1 .hero-accent-text,
    .hero-sub strong .hero-accent-text {
      color: #f13c3c;
    }
    .hero-bottom {
      flex: 0 0 auto;
      margin-top: 0;
      padding-bottom: 0;
      position: relative;
      z-index: 3;
      box-sizing: border-box;
      width: 100%;
    }
    .hero-steps {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      background: #1a2744;
      /* border: 1px solid rgba(255, 255, 255, 0.16); */
      border-radius: 0;
      box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
      overflow: hidden;
    }
    .hero-step-item {
      display: grid;
      grid-template-columns: 84px minmax(170px, auto);
      align-items: center;
      column-gap: 22px;
      justify-content: start;
      padding: 22px 24px 18px;
    }
    .hero-step-item + .hero-step-item {
      border-left: 1px solid rgba(255, 255, 255, 0.14);
    }
    .hero-step-media {
      width: 84px;
      height: 84px;
      border-radius: 999px;
      overflow: hidden;
      background: rgba(255, 255, 255, 0.12);
      display: grid;
      place-items: center;
      box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);
    }
    .hero-step-item img {
      width: 84px;
      height: 84px;
      max-width: none;
      object-fit: cover;
      transform: scale(1.8);
      transform-origin: center;
    }
    .hero-step-no {
      margin: 0 0 2px;
      font-weight: 800;
      color: #ffffff;
      letter-spacing: 0.04em;
      line-height: 1;
    }
    .hero-step-text {
      text-align: left;
    }
    .hero-step-text h3 {
      margin: 0 0 8px;
      font-size: 18px;
      line-height: 1.4;
      color: #ffffff;
    }
    .hero-step-text p {
      margin: 0;
      font-size: 16px;
      line-height: 1.65;
      color: rgba(255, 255, 255, 0.88);
    }
    .baseball-teaser,
    .brand-pillars,
    #service-detail,
    #policy,
    #flow,
    #faq,
    .track-record-status,
    .track-record-teaser,
    #cta {
      padding: 120px 0;
      border-bottom: 1px solid var(--line);
      background: transparent;
    }

    /* 「のスタンス」は黒、「集患代打」は .heading-accent のまま */
    #brand-promise .brand-pillars-title {
      color: #1a1a1a;
    }

    /* サービスと料金（セクション内の背景を濃色に） */
    #service-detail {
      background-color: #1a2744;
    }

    /* サービス開始までの流れ（背景を濃色に） */
    #flow {
      background-color: #1a2744;
    }

    /* 実績（実績状況ブロック）背景を濃色に */
    #track-record-status {
      background-color: #1a2744;
    }

    /* 実績（track-record-status）：右側のうっすら背景画像を消す */
    #track-record-status::after {
      opacity: 0 !important;
      background: none !important;
    }

    /* 実績（track-record-status）：文字を白に、見出し前置きだけ赤に */
    #track-record-status h2 {
      color: #ffffff;
    }
    #track-record-status .track-record-teaser-lead {
      color: #ffffff;
    }
    #track-record-status .track-record-teaser-eyebrow {
      color: #f13c3c;
    }

    /* 野球応援（MOCAの土台）：背景を濃色に */
    #moca-baseball {
      background-color: #1a2744;
    }

    /* 野球応援（MOCAの土台）：文字を白に（差し色は .heading-accent が担当） */
    #moca-baseball h2,
    #moca-baseball p {
      color: #ffffff;
    }

    /* #flow 内の見出し/契約期間（p）だけ白に */
    #flow .section-heading h2 {
      color: #ffffff;
    }
    #flow .section-heading .flow-contract {
      color: #ffffff;
      border-bottom-color: rgba(255, 255, 255, 0.9);
    }

    .brand-pillars::before,
    #policy::before,
    #faq::before,
    .track-record-teaser::before {
      content: "";
      position: absolute;
      inset: 0;
      pointer-events: none;
      background-image:
        linear-gradient(rgba(26, 26, 26, 0.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(26, 26, 26, 0.025) 1px, transparent 1px);
      background-size: 30px 30px;
    }
    .brand-pillars,
    #policy,
    #faq,
    .track-record-teaser {
      position: relative;
    }
    .brand-pillars .container,
    #policy .container,
    #faq .container,
    .track-record-teaser .container {
      position: relative;
      z-index: 1;
    }

    .service-card-tag,
    .track-record-teaser-eyebrow {
      display: block;
      margin-bottom: 14px;
      font-size: 16px;
      letter-spacing: 0.16em;
      color: var(--accent-text);
      text-transform: uppercase;
      text-align: center;
    }

    #service-detail .section-heading {
      text-align: center;
      max-width: 1020px;
      margin-left: auto;
      margin-right: auto;
      margin-bottom: 36px;
    }

    #service-detail .section-heading p {
      text-align: left;
      margin-left: 0;
      margin-right: auto;
    }

    .baseball-teaser h2,
    .brand-pillars-title,
    .section-heading h2,
    .track-record-status h2,
    .track-record-teaser h2 {
      font-size: clamp(26px, 3.15vw, 36px);
      line-height: 1.4;
      margin-bottom: 32px;
      font-weight: 700;
      position: relative;
      display: block;
      width: 100%;
      max-width: 1120px;
      margin-left: auto;
      margin-right: auto;
      padding-bottom: 20px;
      text-align: center;
      text-wrap: balance;
    }

    /* h2 内の一部を差し色で強調 */
    h2 .heading-accent {
      color: #f13c3c;
      font-weight: 800;
      font-size: 1.16em;
      letter-spacing: 0.01em;
    }

    .baseball-teaser h2::after,
    .brand-pillars-title::after,
    .section-heading h2::after,
    .track-record-status h2::after,
    .track-record-teaser h2::after {
      content: "";
      position: absolute;
      left: 50%;
      bottom: 0;
      width: 84px;
      height: 3px;
      background: var(--accent-soft);
      transform: translateX(-50%);
      border-radius: 999px;
    }

    .baseball-teaser h2::before,
    .brand-pillars-title::before,
    .section-heading h2::before,
    .track-record-status h2::before,
    .track-record-teaser h2::before {
      content: "";
      position: absolute;
      left: 50%;
      bottom: 1px;
      width: 210px;
      height: 1px;
      background: #aeb8d9;
      transform: translateX(-50%);
    }

    .baseball-teaser p,
    .brand-pillars-lead,
    .section-heading p,
    .track-record-teaser-lead {
      font-size: 16px;
      color: var(--sub-text);
      max-width: 980px;
      margin: 0 0 34px;
    }

    /* サービスと料金（#service-detail）だけ見出し(h2)と p を白に */
    #service-detail .section-heading h2,
    #service-detail .section-heading p {
      color: #ffffff;
    }

    /* サービスカード：差し色と見出し色 */
    #service-detail .service-card-tag {
      color: #f13c3c;
    }
    #service-detail .service-card-title {
      color: #ffffff;
    }
    #service-detail .service-card-price-lead {
      color: #ffffff;
    }
    #service-detail .service-card-price-lead strong {
      color: #f13c3c;
    }
    #service-detail .service-note {
      color: #ffffff;
    }

    .baseball-teaser,
    .track-record-status {
      position: relative;
      overflow: hidden;
    }
    .baseball-teaser .container,
    .track-record-status .container {
      position: relative;
      z-index: 1;
    }
    .baseball-teaser::after {
      content: "";
      position: absolute;
      right: clamp(8px, 3vw, 36px);
      top: 50%;
      transform: translateY(-50%);
      width: min(40vw, 360px);
      aspect-ratio: 1 / 1;
      background: url("./imgs/baseball-img.png") center / contain no-repeat;
      opacity: 0.13;
      pointer-events: none;
    }
    .track-record-status::after {
      content: "";
      position: absolute;
      right: clamp(8px, 3vw, 36px);
      top: 50%;
      transform: translateY(-50%);
      width: min(40vw, 340px);
      aspect-ratio: 1 / 1;
      background: url("./imgs/track-status-img.png") center / contain no-repeat;
      opacity: 0.13;
      pointer-events: none;
    }

    /* サブCTA：アウトライン型（枠・文字とも差し色 #f13c3c）。無料相談は塗りの .nav-cta */
    .baseball-teaser-link,
    .track-record-teaser-link,
    .plan-btn,
    .btn-secondary {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 10px 18px;
      border: 2px solid #f13c3c;
      font-size: 16px;
      font-weight: 700;
      color: #f13c3c;
      border-radius: 999px;
      background: #fff;
      box-shadow: 0 2px 8px rgba(241, 60, 60, 0.12);
      text-decoration: none;
      transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
    }
    .baseball-teaser-link:hover,
    .track-record-teaser-link:hover,
    .plan-btn:hover,
    .btn-secondary:hover {
      background: rgba(241, 60, 60, 0.08);
      border-color: #c92828;
      color: #c92828;
      box-shadow: 0 4px 14px rgba(241, 60, 60, 0.18);
      transform: translateY(-1px);
    }
    .baseball-teaser-link:focus-visible,
    .track-record-teaser-link:focus-visible,
    .plan-btn:focus-visible,
    .btn-secondary:focus-visible {
      outline: 2px solid rgba(241, 60, 60, 0.45);
      outline-offset: 2px;
    }
    #moca-baseball .baseball-teaser-link {
      display: flex;
      width: fit-content;
      margin-left: auto;
      margin-right: auto;
    }

    .brand-pillars-grid {
      margin-top: 46px;
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 46px;
    }
    .brand-pillar-card {
      padding-top: 24px;
    }
    .brand-pillar-card h3 {
      margin-bottom: 14px;
      font-size: 24px;
      line-height: 1.4;
      color: var(--accent-text);
      font-weight: 700;
      text-align: center;
    }
    .brand-pillar-img {
      display: block;
      width: min(100%, 340px);
      height: auto;
      margin: 0 auto 14px;
    }
    .brand-pillar-card p {
      margin: 0;
      font-size: 16px;
      color: var(--text);
    }

    .service-pricing-stack {
      position: relative;
      padding: 34px;
      max-width: 1120px;
      margin: 0 auto;
      margin-top: 18px;
      border-radius: 0;
    }
    .service-card-head { margin-bottom: 22px; }
    .service-card-title {
      margin: 10px 0 0;
      font-size: clamp(21px, 2.2vw, 28px);
      line-height: 1.4;
      font-weight: 700;
      text-align: center;
      color: #252a4a;
    }
    .service-price-tiles {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px;
      margin-bottom: 20px;
    }
    .service-price-tile {
      padding: 20px 18px;
      border: 1px solid var(--line);
      background: #fff;
      text-align: center;
      border-radius: 0;
      box-shadow: 0 4px 14px rgba(19, 34, 59, 0.06);
    }
    .service-price-tile--accent {
      background: #fff;
      border-color: var(--line);
    }
    .service-price-tile-label {
      display: block;
      margin-bottom: 6px;
      font-size: 16px;
      font-weight: 600;
      color: var(--accent-soft);
      letter-spacing: 0.02em;
    }
    .service-price-tile--accent .service-price-tile-label {
      color: var(--accent-soft);
    }
    .service-price-tile--accent .service-price-tile-amount {
      color: var(--accent-text);
    }
    .service-price-tile--accent .service-price-tile-note {
      color: #5a6488;
    }
    .service-price-tile-amount {
      display: block;
      font-family: 'Noto Sans JP', sans-serif;
      font-size: clamp(30px, 4vw, 52px);
      line-height: 1.2;
      color: var(--accent-text);
      font-weight: 800;
      letter-spacing: 0.02em;
    }
    /* 初回診断カード：月額（紺）と差がつくよう、やや明るいトーン */
    .service-price-tile:not(.service-price-tile--accent) .service-price-tile-amount {
      color: var(--accent-text);
    }
    .service-price-tile-note {
      display: block;
      margin-top: 6px;
      font-size: 15px;
      color: #5a6488;
      font-weight: 500;
    }

    .service-card-price-lead,
    .service-scope-lead,
    .service-note,
    .billing-panel-lead,
    .reason-text,
    .flow-note,
    .faq-cell,
    .track-record-chips li {
      font-size: 16px;
      color: var(--text);
    }
    .service-card-price-lead,
    .service-note,
    .service-card-cta {
      text-align: center;
    }
    .service-card-cta {
      margin-top: 12px;
      margin-bottom: 0;
    }
    .service-card-price-lead {
      color: #3a415c;
    }
    .service-card-price-lead strong {
      color: var(--accent-text);
      font-weight: 700;
      background: none;
    }
    .service-quick-points {
      margin: 18px 0 18px;
      padding: 0;
      list-style: none;
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 10px;
    }
    .service-quick-points li {
      border: 1px solid var(--line);
      border-radius: 0;
      padding: 8px 12px;
      text-align: center;
      font-size: 14px;
      color: #6f3f2a;
      background: rgba(214, 107, 63, 0.1);
      border-color: rgba(214, 107, 63, 0.32);
      line-height: 1.55;
    }

    .service-scope-blocks {
      margin-top: 34px;
      display: grid;
      grid-template-columns: 1fr;
      gap: 14px;
    }
    .service-scope-block {
      padding: 20px 18px 18px;
      border: 1px solid var(--line);
      background: #ffffff;
      border-radius: 0;
      box-shadow: 0 4px 16px rgba(17, 31, 56, 0.05);
    }
    .service-scope-heading {
      margin: 0 0 10px;
      font-size: 22px;
      line-height: 1.4;
      font-weight: 700;
      color: var(--accent-text);
      padding-bottom: 8px;
      border-bottom: 1px solid #d9deea;
      letter-spacing: 0.01em;
      text-align: center;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
    }
    .service-scope-icon {
      width: 120px;
      height: 80px;
      object-fit: contain;
      flex-shrink: 0;
    }
    .service-detail-list {
      margin: 0;
      padding: 0;
      list-style: none;
      font-size: 16px;
      color: var(--text);
      display: grid;
      gap: 9px;
    }
    /* ブロック積み（flex にしない：子が横並びになり本文が極細になるのを防ぐ） */
    .service-detail-list > li {
      margin: 0;
      line-height: 1.78;
      padding: 10px 11px 10px 42px;
      border: 1px solid var(--line);
      border-left: 3px solid rgba(90, 107, 168, 0.45);
      border-radius: 0;
      background: #fff;
      position: relative;
    }
    .service-detail-list > li::before {
      content: "✔";
      position: absolute;
      left: 11px;
      top: calc(10px + 0.36em);
      width: 18px;
      height: 18px;
      box-sizing: border-box;
      border-radius: 0;
      border: 1px solid var(--line-strong);
      color: var(--accent);
      font-size: 12px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      line-height: 1;
      background: #f4f5fa;
    }
    .service-detail-list strong {
      color: #1e2444;
      font-weight: 700;
      background: none;
    }
    .service-detail-sublist {
      margin: 10px 0 0;
      padding: 0;
      list-style: none;
      line-height: 1.75;
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      column-gap: 14px;
      gap: 6px;
      color: #374056;
    }
    .service-detail-sublist li {
      position: relative;
      padding-left: 1.1em;
    }
    .service-detail-sublist li::before {
      content: "・";
      position: absolute;
      left: 0;
      top: 0;
      color: #6f7f9d;
    }
    .service-scope-lead {
      padding-left: 10px;
      border-left: 2px solid #d4dbed;
      margin-bottom: 14px;
      line-height: 1.75;
    }
    .service-note {
      margin-top: 16px;
      color: #4f5768;
      line-height: 1.9;
      padding-top: 14px;
    }
    .service-checklist-link,
    .flow-link,
    .track-record-inline-link {
      color: var(--accent-text);
      text-decoration: none;
      text-underline-offset: 2px;
    }

    .billing-panel {
      margin-top: 72px;
      max-width: 1120px;
      width: 100%;
      margin-left: auto;
      margin-right: auto;
      padding: 36px 24px 24px;
      border-radius: 0;
      background: #fff;
      position: relative;
    }
    .billing-panel::before {
      content: "";
      position: absolute;
      left: 24px;
      right: 24px;
      top: -24px;
      height: 1px;
      background: linear-gradient(90deg, transparent 0%, var(--line-strong) 18%, var(--line-strong) 82%, transparent 100%);
    }
    .billing-panel-heading {
      font-size: clamp(24px, 2.55vw, 32px);
      line-height: 1.4;
      margin: 0 0 20px;
      padding-bottom: 20px;
      font-weight: 700;
      color: var(--accent-text);
      text-align: center;
      position: relative;
    }
    /* 他セクションの h2 と同系の下線（紺テーマに統一） */
    .billing-panel-heading::after {
      content: none;
      position: absolute;
      left: 50%;
      bottom: 0;
      width: 72px;
      height: 2px;
      background: rgba(90, 107, 168, 0.4);
      transform: translateX(-50%);
      border-radius: 999px;
    }
    .billing-panel-heading::before {
      content: none;
      position: absolute;
      left: 50%;
      bottom: 1px;
      width: min(210px, 88%);
      height: 1px;
      background: #aeb8d9;
      transform: translateX(-50%);
    }
    .billing-panel-lead {
      line-height: 1.9;
      margin-bottom: 14px;
      padding: 10px 12px;
      border: 1px solid var(--line-strong);
      background: #fff;
      border-radius: 0;
    }
    .billing-panel-lead strong {
      color: var(--accent-text);
      font-weight: 700;
      background: none;
    }
    .billing-table-wrap {
      border: 1px solid var(--line-strong);
      background: #fff;
      border-radius: 0;
      padding: 14px 20px 24px;
    }
    .billing-timeline-label {
      margin: 0 0 14px;
      padding: 9px 12px;
      color: #384061;
      font-size: 17px;
      line-height: 1.7;
      font-weight: 600;
      text-align: center;
    }
    .billing-timeline {
      display: grid;
      gap: 8px;
    }
    .billing-step {
      display: grid;
      grid-template-columns: 38px 1fr;
      gap: 10px;
      align-items: start;
    }
    .billing-step-num {
      width: 30px;
      height: 30px;
      border-radius: 50%;
      border: 1px solid var(--accent-soft);
      color: var(--accent-text);
      background: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 15px;
      font-weight: 700;
      margin-top: 4px;
      position: relative;
    }
    .billing-step-arrow {
      grid-column: 1 / -1;
      display: block;
      width: 95px;
      max-height: 34px;
      object-fit: contain;
      height: auto;
      margin: 2px auto 0;
      opacity: 0.78;
    }
    .billing-step-time {
      margin: 0 0 6px;
      font-size: 18px;
      color: var(--accent-text);
      font-weight: 700;
      letter-spacing: 0.02em;
    }
    .billing-step-card {
      border: 1px solid var(--line-strong);
      background: #fff;
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 10px;
      align-items: center;
      padding: 8px 14px;
    }
    .billing-step-card.is-highlight {
      background: rgba(90, 107, 168, 0.08);
      border-color: #aeb8d9;
    }
    .billing-step-main {
      line-height: 1.7;
      font-size: 16px;
      color: #222;
    }
    .billing-step-main strong {
      color: var(--accent-text);
      background: none;
      padding: 0 0.15em;
      border-radius: 2px;
      font-weight: 700;
    }
    .billing-step-main small {
      display: block;
      margin-top: 3px;
      color: #4a506e;
      font-size: 14px;
      line-height: 1.5;
    }
    .billing-step-amount {
      text-align: right;
      font-size: clamp(26px, 3.2vw, 34px);
      font-weight: 800;
      letter-spacing: 0.01em;
      color: var(--accent-text);
      line-height: 1.15;
      white-space: nowrap;
      padding: 6px 0;
    }
    .billing-step-amount span {
      display: block;
      margin-top: 6px;
      font-size: 14px;
      font-weight: 600;
      line-height: 1.35;
      color: #4f5868;
    }
    .billing-step-side {
      font-size: 16px;
      line-height: 1.75;
      color: #1a1a1a;
      text-align: right;
      font-weight: 600;
    }

    .reasons-list {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px 18px;
      margin-top: 10px;
    }
    .reason-item {
      display: grid;
      grid-template-columns: 62px 1fr;
      gap: 16px;
      padding: 18px 16px;
      border: 1px solid var(--line-strong);
      background: #fff;
    }
    .reason-num {
      width: 52px;
      height: 52px;
      display: flex;
      align-items: center;
      justify-content: center;
      border: 1px solid var(--line-strong);
      color: #484e58;
      font-size: 22px;
      font-family: 'Noto Sans JP', sans-serif;
      line-height: 1;
    }
    .reason-title {
      margin: 0 0 16px;
      font-size: clamp(17px, 1.9vw, 22px);
      line-height: 1.4;
      font-weight: 700;
      color: var(--accent-text);
    }

    .flow-wrap {
      max-width: 980px;
      margin-left: auto;
      margin-right: auto;
      display: grid;
      grid-template-columns: 1fr;
      gap: 22px;
      align-items: start;
    }
    .flow-item {
      position: relative;
      text-align: left;
      display: grid;
      grid-template-columns: 190px 1fr;
      column-gap: 16px;
      row-gap: 8px;
      padding: 16px 14px 16px;
      border: 1px solid var(--line-strong);
      background: #fff;
      min-height: 100%;
    }
    .flow-item:not(:last-child)::after {
      content: "↓";
      position: absolute;
      color: var(--accent-soft);
      left: 31px;
      bottom: -16px;
      transform: translateX(-50%);
      font-size: 44px;
      line-height: 0.85;
      z-index: 2;
      background: transparent;
      padding: 0;
      text-shadow: 0 3px 10px rgba(0, 0, 0, 0.22);
    }
    .flow-title-row {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      gap: 8px;
      margin-bottom: 10px;
      min-height: 0;
      grid-column: 1 / -1;
    }
    .flow-num {
      flex-shrink: 0;
      width: 38px;
      height: 38px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 17px;
      font-weight: 800;
      line-height: 1;
      color: #fff;
      background: linear-gradient(165deg, #343866 0%, #1e1f3b 100%);
      border: 1px solid rgba(20, 21, 40, 0.9);
      box-shadow: 0 2px 8px rgba(30, 31, 59, 0.2);
    }
    .flow-title {
      margin: 0;
      font-size: 24px;
      line-height: 1.4;
      font-weight: 700;
      color: var(--accent-text);
      text-align: left;
    }
    .flow-img {
      display: block;
      width: min(100%, 170px);
      height: auto;
      margin: 0 0 10px;
      border: 0;
      background: #fff;
      grid-column: 1;
      margin-bottom: 0;
    }
    .flow-note {
      margin: 0;
      padding: 0;
      border: 0;
      background: transparent;
      font-size: 16px;
      line-height: 1.7;
      text-align: left;
      grid-column: 2;
      align-self: center;
    }
    .flow-hearing-list {
      margin: 10px 0 14px;
      padding-left: 1.2em;
    }
    .flow-hearing-list li {
      margin: 4px 0;
    }
    .flow-contract {
      display: block;
      width: fit-content;
      margin: 12px auto 0;
      padding: 0 0 3px;
      border-bottom: 1px solid var(--text);
      font-size: 16px;
      color: var(--text);
      text-align: center;
    }
    #flow .section-heading .flow-contract {
      max-width: none;
      margin-left: auto;
      margin-right: auto;
      text-align: center;
    }

    .faq-list { border-top: 1px solid var(--line-strong); }
    .faq-item { border-bottom: 1px solid var(--line); }
    .faq-q, .faq-a {
      display: grid;
      grid-template-columns: 34px 1fr;
      gap: 14px;
      align-items: start;
      padding: 14px 0;
    }
    .faq-q {
      width: 100%;
      border: 0;
      background: transparent;
      text-align: left;
      cursor: pointer;
      font: inherit;
      color: inherit;
      padding: 14px 0;
      margin: 0;
      position: relative;
      padding-right: 28px;
    }
    .faq-q::after {
      content: "▾";
      position: absolute;
      right: 0;
      top: 50%;
      transform: translateY(-50%);
      font-size: 14px;
      color: var(--accent-text);
      transition: transform 0.28s ease, opacity 0.28s ease;
      opacity: 0.8;
    }
    .faq-item.is-open .faq-q::after {
      transform: translateY(-50%) rotate(180deg);
      opacity: 1;
    }
    .faq-a {
      max-height: 0;
      opacity: 0;
      overflow: hidden;
      padding-top: 0;
      padding-bottom: 0;
      transition: max-height 0.35s ease, opacity 0.25s ease, padding 0.35s ease;
    }
    .faq-item.is-open .faq-a {
      max-height: 420px;
      opacity: 1;
      padding-top: 4px;
      padding-bottom: 14px;
    }
    .faq-q:focus-visible {
      outline: 2px solid var(--accent-soft);
      outline-offset: 2px;
    }
    .faq-q::before,
    .faq-a::before {
      width: 28px;
      height: 28px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      font-size: 13px;
      font-weight: 800;
      letter-spacing: 0.06em;
      border-radius: 3px;
      box-sizing: border-box;
      line-height: 1;
    }
    /* Q：紺の塗り＋白文字（アクセントで質問を強調） */
    .faq-q::before {
      content: "Q";
      border: 1px solid #14152a;
      background: linear-gradient(165deg, #343866 0%, #1e1f3b 100%);
      color: #fafafa;
    }
    /* A：白背景＋枠（回答はすっきりアウトライン） */
    .faq-a::before {
      content: "A";
      border: 1px solid rgba(10, 10, 10, 0.38);
      background: #fff;
      color: #0a0a0a;
    }
    .faq-em { color: var(--accent-coral-strong); font-weight: 500; }
    .faq-q .faq-cell {
      font-size: 18px;
      font-weight: 700;
      line-height: 1.7;
      color: var(--accent-text);
    }

    .track-record-chips {
      margin: 18px 0 24px;
      padding: 0;
      list-style: none;
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
    }

    .track-record-status .container,
    .track-record-teaser .container {
      text-align: center;
    }

    /* 実績状況ブロック：リード文のみ左揃え（見出しは中央のまま） */
    #track-record-status .track-record-teaser-lead {
      text-align: left;
    }

    /* 実績ティーザー（MOCAの土台）：左揃え・リストは縦に並べてすっきり */
    #moca-track-record .container {
      text-align: center;
    }
    #moca-track-record .track-record-teaser-eyebrow {
      text-align: center;
    }
    #moca-track-record h2 {
      text-align: center;
      margin-left: auto;
      margin-right: auto;
      max-width: 42em;
    }
    #moca-track-record h2::after {
      left: 50%;
      transform: translateX(-50%);
    }
    #moca-track-record h2::before {
      left: 50%;
      transform: translateX(-50%);
      width: min(210px, 100%);
    }
    #moca-track-record .track-record-teaser-lead {
      margin-left: auto;
      margin-right: auto;
      max-width: 40em;
      text-align: left;
    }
    #moca-track-record .track-record-chips {
      grid-template-columns: 1fr;
      gap: 12px;
      max-width: 48em;
      margin: 12px auto 24px;
    }
    #moca-track-record .track-record-chips li {
      margin: 0;
      border-top: 0;
      border: 1px solid var(--line-strong);
      background: #fff;
      padding: 14px 16px;
      line-height: 1.75;
      position: relative;
      box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
    }
    #moca-track-record .track-record-chips li .track-record-chip-key {
      color: var(--accent-text);
      font-weight: 800;
      display: inline-block;
      padding: 0.08em 0.5em 0.12em;
      background: rgba(214, 107, 63, 0.16);
      border-radius: 0;
    }
    #moca-track-record .track-record-teaser-link {
      margin-top: 6px;
      font-weight: 700;
      letter-spacing: 0.02em;
    }

    .track-record-chips li {
      border-top: 1px solid var(--line-strong);
      padding: 10px 0 0;
      background: transparent;
    }

    #cta {
      padding: 120px 0;
      text-align: center;
      border-bottom: 1px solid var(--line);
      background: linear-gradient(180deg, rgba(90, 107, 168, 0.08) 0%, rgba(90, 107, 168, 0.02) 100%);
    }
    #cta .container { max-width: 980px; }
    /* フッター直前CTA：ヘッダーと同じ見た目＋旧ソロCTAに近い横幅 */
    /* フッター前：ヘッダーと同系だが横幅広めのため文字も一段見やすく */
    #cta .nav-cta {
      margin-left: 0;
      min-width: min(100%, 460px);
      font-size: 26px;
      font-weight: 800;
      letter-spacing: 0.12em;
      padding: 18px 34px 18px 36px;
      border-width: 2px;
      box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.18) inset,
        0 14px 34px rgba(30, 31, 59, 0.32);
      transform: translateY(0);
      transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
    }
    #cta .nav-cta:hover {
      transform: translateY(-2px) scale(1.01);
      box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.22) inset,
        0 18px 40px rgba(30, 31, 59, 0.4);
    }
    #cta .nav-cta:focus-visible {
      outline: 3px solid rgba(90, 107, 168, 0.45);
      outline-offset: 3px;
    }

    footer {
      background: transparent;
      border-top: 1px solid var(--line);
    }
    .footer-inner {
      padding-top: 56px;
      padding-bottom: 28px;
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 26px;
    }
    .footer-col-title {
      margin-bottom: 10px;
      font-size: 16px;
      color: #0a0a0a;
      font-weight: 600;
    }
    .footer-link {
      display: block;
      margin-bottom: 8px;
      font-size: 16px;
      color: #0a0a0a;
      text-decoration: none;
      font-weight: 500;
      position: relative;
      width: fit-content;
      padding-bottom: 2px;
      transition: color 0.2s ease;
    }
    .footer-link::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: -1px;
      height: 1px;
      background: var(--accent-soft);
      opacity: 0;
      transform: scaleX(0);
      transform-origin: left;
      transition: opacity 0.2s ease, transform 0.2s ease;
    }
    .footer-link:hover {
      color: #0a0a0a;
    }
    .footer-link:hover::after,
    .footer-link:focus-visible::after {
      opacity: 1;
      transform: scaleX(1);
    }
    .footer-link:focus-visible {
      outline: 2px solid rgba(90, 107, 168, 0.35);
      outline-offset: 2px;
    }
    .footer-bottom {
      border-top: 1px solid var(--line);
      text-align: center;
      padding: 14px 20px 20px;
      color: #0a0a0a;
      font-size: 14px;
      font-weight: 500;
    }

    .sticky-cta {
      position: fixed;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 99;
      padding: 10px 12px 12px;
      border-top: 1px solid rgba(26, 26, 26, 0.1);
      background: rgba(246, 247, 251, 0.97);
      backdrop-filter: blur(8px);
      display: none;
      justify-content: center;
      transform: translateY(0);
      transition: transform 0.25s ease;
    }
    .sticky-cta.is-concealed { transform: translateY(120%); }
    /* 下部追従：ヘッダーと同じ .nav-cta 見た目（横幅いっぱいに広げない） */
    .sticky-cta a.nav-cta.sticky-cta-solo {
      margin-left: 0;
      width: auto;
      max-width: 100%;
      box-sizing: border-box;
    }

    @media (max-width: 1024px) {
      .container, .header-inner, .hero-inner, .hero-bottom, .footer-inner {
        padding-left: 24px;
        padding-right: 24px;
      }
      .service-scope-blocks,
      .track-record-chips { grid-template-columns: 1fr; gap: 30px; }
    }

    @media (max-width: 960px) {
      html,
      body {
        overflow-x: clip;
        max-width: 100%;
      }
      main.page-main {
        overflow-x: clip;
        max-width: 100%;
        min-width: 0;
      }
      #hero {
        padding: clamp(16px, 4vw, 28px) 0 0;
        max-width: 100%;
        overflow-x: hidden;
      }
      .hero-inner {
        grid-template-columns: 1fr;
        grid-template-rows: auto minmax(0, 1fr);
        gap: 14px;
        min-width: 0;
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
      }
      .hero-right {
        justify-content: center;
        align-self: stretch;
        min-height: 0;
        min-width: 0;
        height: auto;
        width: 100%;
        max-width: 100%;
        overflow-x: clip;
      }
      .hero-main-visual {
        overflow-x: clip;
        overflow-y: visible;
        max-width: 100%;
        width: 100%;
        box-sizing: border-box;
        justify-content: flex-start;
        align-items: flex-end;
        padding-left: clamp(12px, 5.5%, 40px);
      }
      .hero-main-image {
        display: block;
        width: var(--hero-img-width-sp);
        max-width: none;
        height: auto;
        /* 極端に縦長になるのだけ抑える（主サイズは width %） */
        max-height: var(--hero-img-max-h);
        object-fit: contain;
        object-position: left bottom;
        transform: scale(calc(1 + var(--hero-zoom-max) * var(--hero-scroll-progress)));
        transform-origin: left bottom;
        will-change: transform;
      }
      .hero-steps {
        grid-template-columns: repeat(3, minmax(140px, 1fr));
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
      }
      .hero-step-item {
        grid-template-columns: 1fr;
        row-gap: 8px;
        justify-items: start;
        text-align: left;
        padding: 16px 16px 14px;
      }
      .hero-step-item + .hero-step-item {
        border-top: 0;
        border-left: 1px solid rgba(255, 255, 255, 0.14);
      }
      .hero-step-text {
        text-align: left;
        max-width: 100%;
        padding: 0 2px;
        overflow-wrap: break-word;
        word-break: normal;
      }
      .hero-step-text h3 {
        font-size: 15px;
        line-height: 1.35;
        margin-bottom: 6px;
      }
      .hero-step-text p {
        font-size: 12px;
        line-height: 1.5;
      }
      .hero-step-no {
        font-size: 12px;
      }
      .hero-step-media {
        width: 58px;
        height: 58px;
        justify-self: start;
      }
      .hero-step-item img {
        width: 58px;
        height: 58px;
        transform: scale(1.65);
      }
    }

    @media (max-width: 768px) {
      :root {
        /* header::before + .header-inner(min 64) + border（概算） */
        --header-total: 72px;
      }
      .container, .header-inner, .hero-inner, .hero-bottom, .footer-inner {
        padding-left: 16px;
        padding-right: 16px;
      }
      .hero-inner {
        padding-left: 0;
        padding-right: 0;
        width: 100%;
        overflow-x: hidden;
      }
      .hero-left{
        padding-left: 16px;
        padding-right: 16px;
      }
      .floating-cta {
        top: auto;
        bottom: max(76px, calc(env(safe-area-inset-bottom, 0px) + 68px));
        right: 12px;
        transform: none;
        writing-mode: horizontal-tb;
        min-height: 0;
        padding: 16px 28px 16px 22px;
        font-size: 16px;
        font-weight: 800;
        letter-spacing: 0.12em;
        border: 1px solid #1a1a1a;
        border-bottom: 3px solid var(--accent-soft);
        box-shadow: 0 10px 28px rgba(0, 0, 0, 0.2);
      }
      .floating-cta:hover {
        padding-left: 22px;
        padding-right: 30px;
      }

      .header-inner {
        min-height: 64px;
        padding-top: 6px;
        padding-bottom: 6px;
        gap: 10px;
      }
      .logo-box {
        gap: 8px;
        min-width: 0;
        flex: 1 1 auto;
      }
      .logo-img { height: 44px; }
      .logo-tagline {
        font-size: 11px;
        white-space: nowrap;
        line-height: 1.1;
        max-width: none;
        letter-spacing: 0.08em;
      }
      .nav-items {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        position: absolute;
        left: 12px;
        right: 12px;
        top: calc(100% + 8px);
        margin-left: 0;
        padding: 0 12px;
        border: 1px solid var(--line-strong);
        background: #fff;
        box-shadow: 0 10px 28px rgba(30, 31, 59, 0.16);
        z-index: 130;
        overflow: hidden;
        max-height: 0;
        opacity: 0;
        transform: translateY(-8px);
        pointer-events: none;
        transition: max-height 0.32s ease, opacity 0.24s ease, transform 0.32s ease, padding 0.24s ease;
      }
      .nav-items.is-open {
        max-height: 420px;
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
        padding: 10px 12px 12px;
      }
      .nav-items.is-open .nav-item {
        display: block;
        width: 100%;
        padding: 12px 6px;
      }
      .nav-items.is-open .nav-cta {
        margin: 8px 0 0;
        width: 100%;
        min-height: 46px;
      }
      .sp-only { display: block; }
      .hamburger {
        display: block;
        width: 44px;
        height: 44px;
        border: 1px solid rgba(90, 107, 168, 0.35);
        border-radius: 999px;
        background: #fff;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0;
        font-size: 21px;
        line-height: 1;
        font-weight: 700;
        color: var(--accent-text);
        box-shadow: 0 4px 14px rgba(30, 31, 59, 0.12);
        transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
        cursor: pointer;
      }
      .hamburger:hover {
        transform: translateY(-1px);
        box-shadow: 0 7px 18px rgba(30, 31, 59, 0.18);
      }
      .hamburger[aria-expanded="true"] {
        background: rgba(90, 107, 168, 0.12);
        border-color: rgba(90, 107, 168, 0.55);
      }

      #hero {
        padding: clamp(12px, 3.5vw, 24px) 0 0;
        --hero-img-width-sp: 105%;
        --hero-img-max-h: 680px;
      }
      .hero-eyebrow {
        margin-bottom: 8px;
        font-size: clamp(10px, 3.4vw, 14px);
      }
      .hero-h1 { font-size: clamp(22px, 9.2vw, 36px); line-height: 1.28; margin-bottom: 8px; }
      .hero-h1 { white-space: normal; }
      .hero-sub { margin-left: 0; font-size: clamp(12px, 3.3vw, 15px); line-height: 1.65; }
      /* .hero-main-image は #hero の --hero-img-* で上書き */
      /* SP：下帯をビュー幅いっぱいに（コンテナの横パディングを外す） */
      .hero-bottom {
        margin-top: 0;
        padding-bottom: 0;
        max-width: none;
        width: 100%;
        padding-left: max(0px, env(safe-area-inset-left, 0px));
        padding-right: max(0px, env(safe-area-inset-right, 0px));
        margin-left: 0;
        margin-right: 0;
      }
      .hero-steps {
        grid-template-columns: 1fr;
        overflow-x: visible;
        overflow-y: visible;
      }
      .hero-step-item {
        grid-template-columns: 52px minmax(0, 1fr);
        align-items: center;
        column-gap: 14px;
        row-gap: 0;
        justify-items: stretch;
        justify-content: start;
        text-align: left;
        padding: 14px 16px 12px;
      }
      .hero-step-item + .hero-step-item {
        border-left: none;
        border-top: 1px solid rgba(255, 255, 255, 0.14);
      }
      .hero-step-media {
        width: 52px;
        height: 52px;
        justify-self: start;
      }
      .hero-step-item img {
        width: 52px;
        height: 52px;
        transform: scale(1.55);
      }
      .hero-step-text {
        display: block;
        text-align: left;
        padding: 0;
        overflow-wrap: break-word;
        word-break: normal;
        width: 100%;
      }
      .hero-step-no {
        margin: 0 0 2px;
      }
      .hero-step-text h3 {
        font-size: clamp(11px, 3.4vw, 14px);
        line-height: 1.35;
        margin: 0 0 6px;
      }
      .hero-step-text p {
        margin: 0;
        font-size: clamp(10px, 3.1vw, 12px);
        line-height: 1.55;
      }
      .hero-step-no {
        font-size: 11px;
      }
      .baseball-teaser-link,
      .track-record-teaser-link,
      .plan-btn,
      .btn-secondary {
        display: flex;
        width: 100%;
        max-width: 100%;
        padding: 12px 16px;
        white-space: normal;
        line-height: 1.5;
        text-align: center;
        justify-content: center;
      }
      #moca-baseball .baseball-teaser-link {
        width: 100%;
      }

      .baseball-teaser,
      .brand-pillars,
      #service-detail,
      #policy,
      #flow,
      #faq,
      .track-record-status,
      .track-record-teaser,
      #cta {
        padding: 84px 0;
      }
      .baseball-teaser h2,
      .brand-pillars-title,
      .section-heading h2,
      .track-record-status h2,
      .track-record-teaser h2 {
        font-size: clamp(24px, 7vw, 30px);
      }
      .baseball-teaser::after,
      .track-record-status::after {
        right: -28px;
        width: min(58vw, 240px);
        opacity: 0.1;
      }

      .service-pricing-stack { padding: 22px 0; }
      .service-price-tiles { grid-template-columns: 1fr; gap: 10px; }
      .service-price-tile {
        padding: 16px 0;
      }
      .service-quick-points { grid-template-columns: 1fr; gap: 8px; }
      .service-scope-blocks { gap: 12px; }
      .service-scope-heading {
        font-size: clamp(20px, 6.5vw, 24px);
        flex-direction: column;
        gap: 6px;
      }
      .service-scope-icon {
        width: 92px;
        height: auto;
      }
      .service-detail-list > li { padding: 10px 10px 10px 38px; }
      .service-detail-list > li::before { left: 9px; top: calc(10px + 0.34em); }
      .service-detail-sublist { grid-template-columns: 1fr; }
      .brand-pillars-grid {
        grid-template-columns: 1fr;
        gap: 20px;
      }

      .flow-wrap {
        grid-template-columns: 1fr;
        gap: 20px;
      }
      .flow-item {
        display: block;
        padding: 12px 12px 14px;
      }
      .flow-item:not(:last-child)::after {
        content: "↓";
        color: var(--accent-soft);
        left: 50%;
        bottom: -14px;
        transform: translateX(-50%);
        font-size: 44px;
        line-height: 0.85;
        z-index: 2;
        background: transparent;
        padding: 0;
        text-shadow: 0 3px 10px rgba(0, 0, 0, 0.22);
      }
      .flow-title-row {
        min-height: 0;
        justify-content: center;
      }
      .flow-title {
        font-size: 20px;
        text-align: center;
      }
      .flow-img {
        margin: 0 auto 10px;
      }
      .flow-note {
        font-size: 15px;
        text-align: left;
      }

      .reasons-list { grid-template-columns: 1fr; gap: 12px; }
      .reason-item { grid-template-columns: 1fr; gap: 12px; }
      .reason-num { width: 44px; height: 44px; font-size: 18px; }
      .billing-step-card {
        grid-template-columns: 1fr;
        gap: 6px;
        padding: 10px 12px;
      }
      .billing-step-amount {
        text-align: left;
        font-size: clamp(20px, 6.4vw, 28px);
        padding: 2px 0 0;
      }
      .billing-step-side {
        text-align: left;
      }
      .billing-panel {
        margin-top: 52px;
        padding: 26px 0 0;
      }
      .billing-panel::before {
        left: 0;
        right: 0;
      }
      .billing-panel-lead {
        padding: 10px 12px;
      }
      .billing-table-wrap {
        padding: 12px 12px 16px;
      }
      .billing-step {
        grid-template-columns: 32px 1fr;
        gap: 8px;
      }
      .billing-step-time {
        font-size: 17px;
        margin-bottom: 4px;
      }
      .billing-step-main {
        font-size: 15px;
        line-height: 1.65;
      }
      .billing-step-main small,
      .billing-step-amount span {
        font-size: 13px;
      }
      .billing-step-arrow {
        width: 82px;
        margin-top: 0;
      }
      .faq-q, .faq-a { grid-template-columns: 30px 1fr; gap: 10px; }
      #cta .nav-cta {
        min-width: min(100%, 320px);
        font-size: 16px;
        padding: 14px 24px 14px 26px;
      }
      .footer-inner { grid-template-columns: 1fr; gap: 14px; }
      .sticky-cta { display: flex; }
    }
