/* 大公プログラム事務所 — 共通スタイル (index.html / index.php) */

    *, *::before, *::after { box-sizing: border-box; }
    html {
      scroll-behavior: smooth;
      margin: 0;
      padding: 0;
      background: #eef3f6;
    }
    body {
      position: relative;
      margin: 0;
      padding: 0;
      font-family: 'Inter', 'Noto Sans JP', 'Hiragino Sans', 'Yu Gothic', sans-serif;
      font-weight: 400;
      line-height: 1.65;
      letter-spacing: 0.01em;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      background: #eef3f6;
      color: #111827;
      overflow-x: hidden;
    }

    /* ── B2B デザイントークン ── */
    :root {
      --surface: #f8f9fa;
      --surface-white: #ffffff;
      --border: #e5e7eb;
      --text: #111827;
      --text-muted: #6b7280;
      --color-cyan: #00a3c4;
      --color-navy: #0f2441;
      --color-text: #475569;
    }

    /* ── セクション共通（カードではなく余白で区切る） ── */
    .section-surface { background: var(--surface); color: var(--text); }
    .section-white { background: var(--surface-white); color: var(--text); }
    .section-wrap {
      padding-top: 3.75rem;
      padding-bottom: 3.75rem;
    }
    @media (min-width: 768px) {
      .section-wrap {
        padding-top: 7.5rem;
        padding-bottom: 7.5rem;
      }
    }
    .section-header { margin-bottom: 3rem; }
    @media (min-width: 768px) {
      .section-header { margin-bottom: 4.5rem; }
    }
    .section-title {
      font-size: clamp(1.875rem, 4.5vw, 3rem);
      font-weight: 600;
      color: var(--text);
      letter-spacing: -0.03em;
      line-height: 1.12;
    }
    .section-lead {
      font-size: 0.875rem;
      color: rgba(71, 85, 105, 0.82);
      line-height: 1.9;
      margin-top: 1.125rem;
      max-width: 40rem;
    }

    /* ── トップ主要セクション見出し（INDUSTRIES基準で統一） ── */
    .site-page .section-header > .section-title {
      position: relative;
      display: block;
      width: fit-content;
      max-width: 100%;
      margin: 0.875rem 0 0;
      padding: 0;
      font-size: clamp(1.875rem, 4.5vw, 3rem);
      font-weight: 800;
      color: #0f172a;
      letter-spacing: -0.04em;
      line-height: 1.1;
    }

    .site-page .section-header > .section-title + .section-lead,
    .site-page .section-header > .section-lead {
      margin-top: 1.5rem;
      font-size: 0.875rem;
      color: rgba(71, 85, 105, 0.82);
      line-height: 1.9;
      max-width: 40rem;
    }

    .site-page .section-header .sec-eye {
      display: inline-flex;
      align-items: center;
      gap: 0.625rem;
      margin: 0;
      font-size: 0.6875rem;
      font-weight: 700;
      letter-spacing: 0.18em;
      color: rgba(71, 85, 105, 0.72);
      text-transform: uppercase;
    }

    @media (max-width: 768px) {
      .site-page .section-header > .section-title {
        font-size: clamp(1.875rem, 8vw, 2.75rem);
      }

      .site-page .section-header > .section-title + .section-lead,
      .site-page .section-header > .section-lead {
        margin-top: 1.375rem;
      }

      .site-page .section-header .sec-eye::before {
        width: 1.375rem;
      }
    }

    .section-surface h2,
    .section-white h2 { color: var(--text); }
    .section-surface h3,
    .section-white h3 { color: var(--text); }

    /* ── Typography: 見出しのみ太字、本文は 400〜500 ── */
    h1, h2, h3, h4, h5, h6 {
      font-family: 'Inter', 'Noto Sans JP', sans-serif;
      font-weight: 600;
      letter-spacing: -0.02em;
    }
    h1 { font-weight: 700; letter-spacing: -0.03em; }
    p, li, dd, dt, blockquote, input, textarea, select {
      font-weight: 400;
    }
    label { font-weight: 500; }
    strong, b { font-weight: 500; }

    /* Tailwind ユーティリティの過剰な太字を抑制 */
    .font-black { font-weight: 600 !important; }
    h1.font-black { font-weight: 700 !important; }
    .font-bold { font-weight: 500 !important; }
    h2.font-bold, h3.font-bold, h4.font-bold,
    h2.font-black, h3.font-black, h4.font-black { font-weight: 600 !important; }
    .font-semibold { font-weight: 500 !important; }
    h2.font-semibold, h3.font-semibold { font-weight: 600 !important; }

    /* ── カーテン風背景（全ページ共通） ── */
    .site-bg-motion {
      position: fixed;
      inset: 0;
      z-index: 0;
      pointer-events: none;
      overflow: hidden;
      background:
        radial-gradient(circle at 18% 14%, rgba(0, 105, 130, 0.16), transparent 34%),
        radial-gradient(circle at 82% 22%, rgba(15, 36, 65, 0.14), transparent 36%),
        linear-gradient(120deg, #eef3f6 0%, #f6f8fa 48%, #e7eef3 100%);
    }

    .site-bg-motion::before,
    .site-bg-motion::after {
      content: "";
      position: absolute;
      top: -28%;
      bottom: -28%;
      width: 64vw;
      min-width: 620px;
      opacity: 0.52;
      filter: blur(22px);
      transform-origin: center;
      will-change: transform;
    }

    .site-bg-motion::before {
      left: -24vw;
      background:
        linear-gradient(
          100deg,
          transparent 0%,
          rgba(150, 165, 175, 0.28) 16%,
          rgba(90, 120, 140, 0.24) 34%,
          rgba(190, 202, 210, 0.26) 52%,
          rgba(15, 36, 65, 0.13) 72%,
          transparent 100%
        );
      animation: curtainWaveLeft 8s ease-in-out infinite alternate;
    }

    .site-bg-motion::after {
      right: -24vw;
      background:
        linear-gradient(
          80deg,
          transparent 0%,
          rgba(15, 36, 65, 0.13) 18%,
          rgba(170, 185, 196, 0.25) 42%,
          rgba(0, 105, 130, 0.2) 64%,
          transparent 100%
        );
      animation: curtainWaveRight 9s ease-in-out infinite alternate;
    }

    @keyframes curtainWaveLeft {
      0% {
        transform: translate3d(-4%, 0, 0) skewX(-8deg) scaleX(1);
      }
      50% {
        transform: translate3d(7%, 1.8%, 0) skewX(-3deg) scaleX(1.08);
      }
      100% {
        transform: translate3d(2%, -1.2%, 0) skewX(-10deg) scaleX(1.03);
      }
    }

    @keyframes curtainWaveRight {
      0% {
        transform: translate3d(4%, -1%, 0) skewX(8deg) scaleX(1.02);
      }
      50% {
        transform: translate3d(-7%, 1.5%, 0) skewX(3deg) scaleX(1.1);
      }
      100% {
        transform: translate3d(-2%, 0, 0) skewX(10deg) scaleX(1);
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .site-bg-motion::before,
      .site-bg-motion::after {
        animation: none;
        transform: none;
      }
    }

    @media (max-width: 767px) {
      .site-bg-motion::before,
      .site-bg-motion::after {
        opacity: 0.4;
        filter: blur(24px);
      }
    }

    /* ── トップ専用：シルバーオーロラ背景（#aurora-bg） ── */
    #aurora-bg {
      position: fixed;
      inset: 0;
      z-index: 0;
      pointer-events: none;
      overflow: hidden;
      background:
        radial-gradient(ellipse 80% 55% at 20% 18%, rgba(210, 218, 228, 0.45), transparent 58%),
        radial-gradient(ellipse 70% 50% at 78% 28%, rgba(195, 205, 218, 0.38), transparent 55%),
        linear-gradient(125deg, #eef3f6 0%, #f5f7f9 46%, #e8edf2 100%);
      background-size: 120% 120%, 120% 120%, 100% 100%;
      animation: auroraBgPulse 18s ease-in-out infinite;
    }

    #aurora-bg::before,
    #aurora-bg::after {
      content: "";
      position: absolute;
      top: -22%;
      bottom: -22%;
      width: 58vw;
      min-width: 560px;
      max-width: 920px;
      opacity: 0.5;
      filter: blur(28px);
      transform-origin: center center;
      will-change: transform;
    }

    #aurora-bg::before {
      left: -18vw;
      background: linear-gradient(
        105deg,
        transparent 0%,
        rgba(220, 228, 236, 0.35) 14%,
        rgba(175, 188, 202, 0.32) 32%,
        rgba(235, 240, 245, 0.38) 50%,
        rgba(140, 158, 178, 0.22) 68%,
        transparent 100%
      );
      animation: auroraSilverLeft 11s ease-in-out infinite alternate;
    }

    #aurora-bg::after {
      right: -18vw;
      background: linear-gradient(
        75deg,
        transparent 0%,
        rgba(160, 172, 188, 0.2) 16%,
        rgba(205, 214, 224, 0.34) 38%,
        rgba(185, 198, 212, 0.3) 58%,
        rgba(210, 220, 230, 0.28) 78%,
        transparent 100%
      );
      animation: auroraSilverRight 13s ease-in-out infinite alternate;
    }

    @keyframes auroraSilverLeft {
      0% {
        transform: translate3d(-6%, 0, 0) skewX(-7deg) scaleX(0.96);
      }
      50% {
        transform: translate3d(8%, 2%, 0) skewX(-2deg) scaleX(1.06);
      }
      100% {
        transform: translate3d(2%, -1.5%, 0) skewX(-9deg) scaleX(1.02);
      }
    }

    @keyframes auroraSilverRight {
      0% {
        transform: translate3d(5%, -1.5%, 0) skewX(6deg) scaleX(1.02);
      }
      50% {
        transform: translate3d(-9%, 1.8%, 0) skewX(2deg) scaleX(1.08);
      }
      100% {
        transform: translate3d(-3%, 0.5%, 0) skewX(8deg) scaleX(0.98);
      }
    }

    @keyframes auroraBgPulse {
      0%, 100% {
        background-position: 0% 40%, 100% 30%, 0% 0%;
      }
      50% {
        background-position: 8% 48%, 92% 36%, 0% 0%;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      #aurora-bg {
        animation: none;
      }
      #aurora-bg::before,
      #aurora-bg::after {
        animation: none;
        transform: none;
      }
    }

    @media (max-width: 767px) {
      #aurora-bg::before,
      #aurora-bg::after {
        opacity: 0.38;
        filter: blur(32px);
      }
    }

    .site-page,
    .site-footer,
    footer {
      position: relative;
      z-index: 1;
    }

    /* 背景が少し見えるセクション */
    .hero,
    .industries,
    .works,
    #portfolio,
    .office,
    .case-hero {
      position: relative;
      z-index: 1;
      background: rgba(238, 243, 246, 0.62);
      -webkit-backdrop-filter: blur(2px);
      backdrop-filter: blur(2px);
    }

    .section-visual.section-white {
      background: rgba(255, 255, 255, 0.82);
    }

    .section-visual.section-surface {
      background: rgba(248, 249, 250, 0.82);
    }

    /* テキスト量の多いセクションは不透過背景を維持 */
    #news.section-white,
    #features.section-white,
    .news-page-section.section-white,
    .application-page .section-white,
    .case-study-page .case-section.section-white {
      background-color: var(--surface-white);
    }

    .case-study-page .case-section.section-surface {
      background-color: var(--surface);
    }

    .case-study-page main {
      position: relative;
      z-index: 1;
    }

    .case-study-page .case-breadcrumb,
    .case-study-page .case-section,
    .case-study-page .case-cta-block {
      position: relative;
      z-index: 1;
    }

    /* 実績詳細：旧 reveal-section のみ常時表示（reveal-up アニメーションとは別） */
    .case-study-page .reveal-section {
      opacity: 1;
      visibility: visible;
      transform: none;
    }

    /* 事例詳細：パンくず → ヒーロー → 概要の余白（巨大空白にしない） */
    .case-study-page .case-breadcrumb {
      padding-top: 1.25rem;
      padding-bottom: 0.375rem;
      margin-bottom: 1.75rem;
    }

    @media (min-width: 768px) {
      .case-study-page .case-breadcrumb {
        padding-top: 1.5rem;
        margin-bottom: 2.5rem;
      }
    }

    .case-study-page .case-hero.section-wrap {
      padding-top: 0;
      padding-bottom: 2.5rem;
    }

    @media (min-width: 768px) {
      .case-study-page .case-hero.section-wrap {
        padding-bottom: 3rem;
      }
    }

    .case-study-page .case-hero__title {
      margin-top: 0.5rem;
    }

    .case-study-page .case-hero__lead {
      margin-top: 1.25rem;
    }

    .case-study-page .case-hero__cta {
      margin-top: 2rem;
    }

    @media (min-width: 768px) {
      .case-study-page .case-hero__lead {
        margin-top: 1.5rem;
      }

      .case-study-page .case-hero__cta {
        margin-top: 2.25rem;
      }
    }

    .case-study-page main > .case-section:first-of-type.section-wrap {
      padding-top: 1.25rem;
    }

    @media (min-width: 768px) {
      .case-study-page main > .case-section:first-of-type.section-wrap {
        padding-top: 1.5rem;
      }
    }

    .case-study-page .case-section.section-wrap {
      padding-top: 2rem;
      padding-bottom: 2.5rem;
    }

    @media (min-width: 768px) {
      .case-study-page .case-section.section-wrap {
        padding-top: 2.5rem;
        padding-bottom: 3rem;
      }
    }

    #price.section-surface {
      background-color: var(--surface);
    }

    #contact.section-surface,
    .application-page .section-surface {
      background-color: var(--surface);
    }

    /* 料金：バンドルボックス */
    #price .price-bundle-box {
      background: rgba(255, 255, 255, 0.96);
    }

    /* ── ヘッダー（全ページ共通 / parts/header.php） ── */
    .site-header {
      width: 100%;
      background: #f1f3f5;
      border-bottom: 1px solid rgba(15, 23, 42, 0.06);
      position: sticky;
      top: 0;
      z-index: 100;
    }

    .site-header__inner {
      max-width: 1120px;
      margin: 0 auto;
      padding: 0 clamp(20px, 5vw, 48px);
      height: 88px;
      display: flex;
      align-items: center;
      justify-content: flex-start;
      flex-wrap: nowrap;
      gap: 1.25rem;
    }

    .site-header__brand {
      display: inline-flex;
      align-items: center;
      gap: 0.875rem;
      text-decoration: none;
      color: var(--color-navy, #0f172a);
      flex-shrink: 0;
      min-width: 0;
      margin-right: 1.5rem;
    }

    .site-header__logo {
      width: 48px;
      height: 48px;
      object-fit: contain;
      display: block;
      flex-shrink: 0;
    }

    .site-header__name {
      font-size: 0.9375rem;
      font-weight: 700;
      letter-spacing: -0.02em;
      white-space: nowrap;
      color: var(--color-navy, #0f172a);
      line-height: 1.3;
    }

    .site-header__nav {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: clamp(1.25rem, 2vw, 2.5rem);
      margin-left: 0;
      margin-right: 0;
      min-width: 0;
      flex: 1 1 auto;
    }

    .site-header__nav a {
      color: rgba(15, 23, 42, 0.72);
      text-decoration: none;
      font-size: 0.875rem;
      font-weight: 600;
      white-space: nowrap;
      transition: color 0.2s ease;
    }

    .site-header__nav a:hover,
    .site-header__nav a[aria-current="page"] {
      color: var(--color-cyan, #00a3c4);
    }

    .site-header__cta {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 42px;
      padding: 0 1.5rem;
      border-radius: 8px;
      background: var(--color-navy, #0f172a);
      color: #fff;
      font-size: 0.875rem;
      font-weight: 700;
      text-decoration: none;
      white-space: nowrap;
      flex-shrink: 0;
      transition: background 0.2s ease, transform 0.2s ease;
    }

    .site-header__cta:hover {
      background: #111827;
      transform: translateY(-1px);
    }

    .site-header__actions {
      display: flex;
      align-items: center;
      align-self: center;
      flex-wrap: nowrap;
      gap: 0.75rem;
      flex-shrink: 0;
      margin-left: auto;
    }

    .site-header__actions .site-header__cta {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      box-sizing: border-box;
      min-height: 42px;
      height: 42px;
      padding: 0 1.1rem;
      font-size: 0.8125rem;
      line-height: 1.25;
      margin: 0;
    }

    .site-header__cta--apply {
      background: var(--color-cyan, #00a3c4);
      color: #fff;
    }

    .site-header__cta--apply:hover {
      background: #0094b3;
      filter: brightness(0.96);
      transform: translateY(-1px);
    }

    .site-header__menu-button {
      display: none;
      flex-shrink: 0;
      cursor: pointer;
    }

    .site-header__mobile-menu {
      display: none;
    }

    .site-header__mobile-nav {
      display: none;
      max-width: 1120px;
      margin: 0 auto;
      padding: 1rem clamp(20px, 5vw, 48px) 1.25rem;
      gap: 0.25rem;
    }

    .site-header__mobile-nav a {
      display: block;
      padding: 0.875rem 0;
      color: var(--color-navy, #0f172a);
      text-decoration: none;
      font-size: 0.875rem;
      font-weight: 700;
      border-bottom: 1px solid rgba(15, 23, 42, 0.08);
      transition: color 0.2s ease;
    }

    .site-header__mobile-nav a:hover,
    .site-header__mobile-nav a[aria-current="page"] {
      color: var(--color-cyan, #00a3c4);
    }

    .site-header__mobile-cta {
      margin-top: 0.75rem;
      text-align: center;
      background: var(--color-navy, #0f172a);
      color: #fff !important;
      border-radius: 8px;
      border-bottom: none !important;
      padding: 0.875rem 1rem !important;
    }

    .site-header__mobile-cta:hover {
      background: #111827;
    }

    .site-header__mobile-cta--apply {
      margin-top: 0.5rem;
      background: var(--color-cyan, #00a3c4) !important;
      color: #fff !important;
    }

    .site-header__mobile-cta--apply:hover {
      background: #0094b3 !important;
    }

    @media (max-width: 900px) {
      .site-header__inner {
        height: 72px;
        gap: 1rem;
        display: flex;
        justify-content: space-between;
      }

      .site-header__brand {
        margin-right: 0;
      }

      .site-header__nav,
      .site-header__actions {
        display: none;
      }

      .site-header__logo {
        width: 42px;
        height: 42px;
      }

      .site-header__name {
        font-size: 0.875rem;
      }

      .site-header__menu-button {
        display: inline-flex;
        margin-left: auto;
        width: 42px;
        height: 42px;
        border: 1px solid rgba(15, 23, 42, 0.12);
        background: #fff;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 5px;
        border-radius: 8px;
        padding: 0;
      }

      .site-header__menu-button span {
        display: block;
        width: 18px;
        height: 2px;
        background: var(--color-navy, #0f172a);
        border-radius: 999px;
      }

      .site-header__mobile-menu.is-open {
        display: block;
        background: #fff;
        border-top: 1px solid rgba(15, 23, 42, 0.08);
      }

      .site-header__mobile-menu.is-open .site-header__mobile-nav {
        display: grid;
      }
    }

    @media (min-width: 901px) {
      .site-header__inner {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        align-items: center;
        column-gap: clamp(1.25rem, 2vw, 2rem);
        row-gap: 0;
      }

      .site-header__brand {
        grid-column: 1;
        margin-right: 1.5rem;
      }

      .site-header__nav {
        grid-column: 2;
        justify-self: center;
        width: 100%;
        max-width: 100%;
        flex: none;
      }

      .site-header__actions {
        grid-column: 3;
        justify-self: end;
        margin-left: 0;
      }

      .site-header__menu-button,
      .site-header__mobile-menu,
      .site-header__mobile-menu.is-open,
      .site-header__mobile-nav {
        display: none !important;
      }
    }

    @media (min-width: 901px) and (max-width: 1180px) {
      .site-header__nav {
        gap: 1.125rem;
      }

      .site-header__actions .site-header__cta {
        padding: 0 0.95rem;
        font-size: 0.75rem;
      }
    }

    @media (max-width: 480px) {
      .site-header__name {
        max-width: 9.5rem;
        overflow: hidden;
        text-overflow: ellipsis;
      }
    }

    /* ── フッター ── */
    footer,
    .site-footer {
      margin: 0;
      margin-bottom: 0;
      padding: 0;
      background: #e5e9ee;
      overflow: hidden;
      border-top: 1px solid var(--border);
      color: var(--text-muted);
    }
    main {
      margin-bottom: 0;
    }
    #contact,
    .contact-section {
      margin-bottom: 0;
    }
    .footer-inner {
      position: relative;
      max-width: 72rem;
      margin: 0 auto;
      padding: 1.25rem 1.5rem;
    }
    .footer-grid {
      display: block;
    }
    .footer-content {
      position: relative;
      z-index: 2;
      min-width: 0;
      text-align: left;
    }
    .footer-brand {
      display: flex;
      justify-content: center;
      align-items: center;
    }
    .footer-brand img,
    .footer-logo {
      display: block;
      width: auto;
      height: auto;
      object-fit: contain;
    }
    @media (min-width: 768px) {
      .footer-brand {
        position: absolute;
        right: 4rem;
        top: 50%;
        transform: translateY(-50%);
        width: 360px;
        display: flex;
        justify-content: center;
        align-items: center;
        pointer-events: none;
      }
      .footer-brand img,
      .footer-logo {
        max-width: 320px;
        max-height: 150px;
        opacity: 0.55;
        filter: brightness(1.02);
        transform: scale(1.35);
        transform-origin: center center;
      }
    }
    @media (max-width: 767px) {
      .footer-grid {
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 1.25rem;
        text-align: center;
      }
      .footer-content {
        text-align: center;
      }
      .footer-brand {
        position: static;
        width: 100%;
      }
      .footer-brand img,
      .footer-logo {
        max-width: 220px;
        max-height: 120px;
        opacity: 0.55;
        filter: brightness(1.02);
        transform: none;
      }
    }
    .footer-name {
      font-size: 0.875rem;
      font-weight: 600;
      color: var(--text);
      letter-spacing: 0.02em;
      margin: 0 0 0.75rem;
    }
    .footer-tagline {
      margin: 0 0 1rem;
      max-width: 22rem;
      font-size: 0.8125rem;
      line-height: 1.65;
      color: var(--text-muted);
    }
    .footer-services {
      list-style: none;
      margin: 0 0 1rem;
      padding: 0;
    }
    .footer-services li {
      font-size: 0.8125rem;
      font-weight: 400;
      color: var(--text-muted);
      line-height: 1.7;
      padding: 0;
    }
    .footer-email {
      display: inline-block;
      font-size: 0.8125rem;
      font-weight: 400;
      color: var(--text);
      text-decoration: none;
      margin-bottom: 0.375rem;
      transition: color 0.2s ease;
    }
    .footer-email:hover { color: #374151; }
    .footer-hours {
      font-size: 0.75rem;
      font-weight: 400;
      color: var(--text-muted);
      line-height: 1.6;
      margin: 0 0 1rem;
    }
    .footer-copy {
      font-size: 0.6875rem;
      font-weight: 400;
      color: #9ca3af;
      letter-spacing: 0.04em;
      margin: 0;
    }

    /* ── モバイルメニュー（後方互換） ── */
    #mobile-menu { overflow: hidden; max-height: 0; transition: max-height .32s ease; }
    #mobile-menu.open { max-height: 420px; }

    /* ── セクションアンカーオフセット ── */
    section[id] { scroll-margin-top: 4.75rem; }
    @media (min-width: 768px) {
      section[id] { scroll-margin-top: 5.5rem; }
    }

    /* ── アイブロウラベル共通（新ブランドカラー: slate-500） ── */
    .sec-eye {
      display: inline-block;
      font-size: .65rem;
      font-weight: 500;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--text-muted);
      margin-bottom: 1rem;
    }
    .sec-eye::before {
      content: '';
      display: inline-block;
      width: 20px;
      height: 1px;
      background: var(--border);
      vertical-align: middle;
      margin-right: 8px;
    }

    .site-page .section-header .sec-eye::before {
      content: "";
      display: inline-block;
      width: 1.75rem;
      height: 1px;
      margin-right: 0;
      background: rgba(0, 163, 196, 0.45);
      vertical-align: middle;
      flex-shrink: 0;
    }

    /* ── Feature list（ミニマル・強みセクション） ── */
    .features-ai-policy {
      max-width: 40rem;
    }
    .feature-list {
      border-top: 1px solid rgba(15, 23, 42, 0.08);
    }
    .feature-item {
      padding: 3.5rem 0;
      border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    }
    .feature-item:last-child {
      border-bottom: none;
    }
    .feature-num {
      display: block;
      font-family: 'Inter', 'Noto Sans JP', sans-serif;
      font-size: clamp(3rem, 8vw, 5rem);
      font-weight: 700;
      letter-spacing: -0.04em;
      line-height: 1;
      color: rgba(15, 23, 42, 0.07);
      margin: 0 0 1.25rem;
      user-select: none;
    }
    .feature-label {
      display: block;
      font-family: 'Inter', sans-serif;
      font-size: 0.6875rem;
      font-weight: 700;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: rgba(15, 23, 42, 0.55);
      margin: 0 0 1rem;
    }
    .feature-title {
      font-size: clamp(1.25rem, 2.5vw, 1.625rem);
      font-weight: 700;
      line-height: 1.5;
      color: #0f172a;
      margin: 0 0 1.25rem;
      max-width: 36rem;
    }
    .feature-body {
      font-size: 0.9375rem;
      line-height: 2;
      color: rgba(15, 23, 42, 0.62);
      margin: 0;
      max-width: 40rem;
    }
    .feature-note {
      font-size: 0.75rem;
      line-height: 1.75;
      color: rgba(15, 23, 42, 0.45);
      margin: 1.25rem 0 0;
      max-width: 40rem;
    }
    .feature-footer {
      margin-top: 0;
      padding-top: 3.5rem;
      border-top: 1px solid rgba(15, 23, 42, 0.08);
    }
    .feature-footer-text {
      font-size: 0.875rem;
      line-height: 2;
      color: rgba(15, 23, 42, 0.62);
      max-width: 36rem;
      margin: 0;
    }
    @media (max-width: 768px) {
      .feature-item {
        padding: 2.625rem 0;
      }
      .feature-num {
        font-size: clamp(2.75rem, 12vw, 3.5rem);
        margin-bottom: 1rem;
      }
      .feature-footer {
        padding-top: 2.625rem;
      }
    }

    /* ── Capability list（サービス一覧・ミニマル） ── */
    .capability-list {
      list-style: none;
      margin: 0;
      padding: 0;
      border-top: 1px solid rgba(15, 23, 42, 0.08);
    }
    .capability-item {
      padding: 1.375rem 0;
      border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    }
    .capability-item:first-child {
      padding-top: 0;
    }
    .capability-item:last-child {
      border-bottom: none;
      padding-bottom: 0;
    }
    .capability-label {
      display: block;
      font-family: 'Inter', sans-serif;
      font-size: 0.6875rem;
      font-weight: 700;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: rgba(15, 23, 42, 0.5);
      margin: 0 0 0.5rem;
    }
    .capability-name {
      font-size: 0.9375rem;
      font-weight: 600;
      line-height: 1.5;
      color: #0f172a;
      margin: 0;
    }

    /* 旧カードホバー — 無効化 */
    .card-premium {
      transition: border-color 0.2s ease;
    }
    .card-premium:hover {
      transform: none;
      box-shadow: none;
    }

    /* ── 料金プラン：向いている方（枠なし・区切り線のみ） ── */
    .plan-audience {
      background: transparent;
      border: none;
      border-top: 1px solid var(--border);
      border-bottom: 1px solid var(--border);
      border-radius: 0;
      padding: 1rem 0;
      margin-bottom: 1.5rem;
    }
    .plan-audience--dark {
      background: transparent;
      border-color: var(--border);
      border-left: none;
    }
    .plan-audience-label {
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--text-muted);
      margin-bottom: 0.5rem;
    }
    .plan-audience--dark .plan-audience-label {
      color: var(--text-muted);
    }
    .plan-audience ul { color: var(--text); }

    /* ── 料金：セクション型グリッド ── */
    .pricing-grid {
      display: grid;
      grid-template-columns: 1fr;
      border-top: 1px solid var(--border);
    }
    @media (min-width: 640px) {
      .pricing-grid { grid-template-columns: repeat(2, 1fr); }
    }
    @media (min-width: 1280px) {
      .pricing-grid { grid-template-columns: repeat(4, 1fr); }
    }
    .plan-block {
      display: flex;
      flex-direction: column;
      padding: 2rem 1.5rem;
      background: transparent;
      border-bottom: 1px solid var(--border);
      height: 100%;
    }
    @media (min-width: 640px) {
      .plan-block {
        padding: 2.25rem 1.75rem;
        border-right: 1px solid var(--border);
      }
      .pricing-grid .plan-block:nth-child(2n) { border-right: none; }
    }
    @media (min-width: 1280px) {
      .pricing-grid .plan-block:nth-child(2n) { border-right: 1px solid var(--border); }
      .pricing-grid .plan-block:nth-child(4n) { border-right: none; }
    }
    .plan-block--featured {
      border-top: 2px solid var(--text);
    }
    .plan-badge {
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--text-muted);
      margin-bottom: 0.875rem;
    }

    /* ── 料金：利益ベースカード（色分け・比較しやすく） ── */
    .pricing-grid--benefit {
      border-top: none;
      gap: 1rem;
      margin-top: 0.25rem;
    }
    @media (min-width: 1280px) {
      .pricing-grid--benefit {
        gap: 1.125rem;
      }
    }
    .pricing-grid--benefit .plan-block {
      --plan-accent: #8fa3b5;
      padding: 1.75rem 1.5rem 2rem;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 4px;
      border-top: 3px solid var(--plan-accent);
      box-shadow: 0 1px 3px rgba(15, 36, 65, 0.05);
    }
    @media (min-width: 640px) {
      .pricing-grid--benefit .plan-block {
        padding: 2rem 1.625rem 2.25rem;
        border-right: 1px solid var(--border);
        border-bottom: 1px solid var(--border);
      }
      .pricing-grid--benefit .plan-block:nth-child(2n),
      .pricing-grid--benefit .plan-block:nth-child(4n) {
        border-right: 1px solid var(--border);
      }
    }
    .pricing-grid--benefit .plan-block__head {
      margin: -0.25rem 0 1.25rem;
      padding-bottom: 1rem;
      border-bottom: 1px solid var(--border);
    }
    .pricing-grid--benefit .plan-benefit-lead {
      font-size: 1rem;
      font-weight: 600;
      line-height: 1.5;
      color: var(--text);
      margin: 0 0 0.5rem;
      letter-spacing: 0.01em;
      text-transform: none;
    }
    .pricing-grid--benefit .plan-subcopy {
      font-size: 0.8125rem;
      font-weight: 400;
      line-height: 1.45;
      color: var(--text-muted);
      margin-bottom: 0;
      min-height: 0;
    }
    .pricing-grid--benefit .plan-price {
      font-size: 2rem;
      font-weight: 700;
      letter-spacing: -0.02em;
      margin-bottom: 1.375rem;
    }
    .pricing-grid--benefit .plan-price--consult {
      font-size: 1.75rem;
    }
    .pricing-grid--benefit .plan-audience--compact {
      padding: 0.875rem 0;
      margin-bottom: 1.25rem;
    }
    .pricing-grid--benefit .plan-audience--compact ul {
      list-style: none;
      margin: 0;
      padding: 0;
      font-size: 0.8125rem;
      line-height: 1.65;
      color: var(--text);
    }
    .pricing-grid--benefit .plan-audience--compact li {
      position: relative;
      padding-left: 0.875rem;
      margin-bottom: 0.25rem;
    }
    .pricing-grid--benefit .plan-audience--compact li::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0.55em;
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: var(--plan-accent);
    }
    .plan-benefits {
      margin-bottom: 1.375rem;
      padding: 1rem 1rem 1rem 0.875rem;
      background: rgba(248, 250, 252, 0.9);
      border-left: 3px solid var(--plan-accent);
      border-radius: 0 2px 2px 0;
    }
    .plan-benefits__title,
    .plan-features__title {
      font-size: 0.6875rem;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--text-muted);
      margin: 0 0 0.625rem;
    }
    .plan-benefits__list {
      list-style: none;
      margin: 0;
      padding: 0;
    }
    .plan-benefits__list li {
      font-size: 0.8125rem;
      font-weight: 500;
      line-height: 1.6;
      color: var(--text);
      padding: 0.3rem 0;
    }
    .plan-features-wrap {
      padding-top: 1.125rem;
      margin-bottom: 1.25rem;
      border-top: 1px solid var(--border);
      flex: 1;
    }
    .pricing-grid--benefit .plan-features {
      margin-bottom: 0;
    }
    .pricing-grid--benefit .plan-features li {
      font-size: 0.8125rem;
      line-height: 1.65;
      padding: 0.4rem 0;
      color: var(--color-text);
    }
    .pricing-grid--benefit .plan-features__icon {
      flex-shrink: 0;
      margin-top: 0.2rem;
      color: var(--plan-accent);
      stroke: var(--plan-accent);
    }
    .plan-block__cta {
      margin-top: auto;
      padding-top: 0.25rem;
      font-size: 0.8125rem;
    }
    .plan-block__badges {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.5rem;
      margin-bottom: 0.875rem;
    }
    .plan-badge--popular {
      display: inline-block;
      margin: 0;
      padding: 0.3rem 0.55rem;
      font-size: 0.625rem;
      font-weight: 600;
      letter-spacing: 0.06em;
      color: var(--color-cyan);
      background: rgba(0, 163, 196, 0.08);
      border: 1px solid rgba(0, 163, 196, 0.28);
      border-radius: 2px;
    }
    .plan-badge--sub {
      display: inline-block;
      margin: 0;
      padding: 0;
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.02em;
      text-transform: none;
      color: var(--text-muted);
      background: transparent;
      border: none;
    }
    /* スターター：淡いブルーグレー */
    .plan-block--starter {
      --plan-accent: #8fa3b5;
      background: linear-gradient(180deg, #f4f7fa 0%, #fff 14%);
    }
    .plan-block--starter .plan-block__head {
      border-bottom-color: rgba(143, 163, 181, 0.35);
    }
    .plan-block--starter .plan-name {
      color: #5a6d7d;
    }
    /* ビジネス：ネイビー */
    .plan-block--business {
      --plan-accent: var(--color-navy);
      background: linear-gradient(180deg, rgba(15, 36, 65, 0.05) 0%, #fff 16%);
    }
    .plan-block--business .plan-name,
    .plan-block--business .plan-benefit-lead {
      color: var(--color-navy);
    }
    .plan-block--business .plan-block__head {
      border-bottom-color: rgba(15, 36, 65, 0.12);
    }
    .plan-block__cta--business {
      border-color: rgba(15, 36, 65, 0.35);
      color: var(--color-navy);
    }
    .plan-block__cta--business:hover {
      border-color: var(--color-navy);
      color: var(--color-navy);
    }
    /* AI導入：シアン強調 */
    .plan-block--ai.plan-block--featured {
      --plan-accent: var(--color-cyan);
      border-top-width: 3px;
      border-top-color: var(--color-cyan);
      background: linear-gradient(
        180deg,
        rgba(0, 163, 196, 0.07) 0%,
        #fff 22%
      );
      box-shadow:
        0 1px 3px rgba(15, 36, 65, 0.05),
        0 6px 24px rgba(0, 163, 196, 0.09);
    }
    .plan-block--ai .plan-name {
      color: #0a7a94;
    }
    .plan-block--ai .plan-benefit-lead {
      color: var(--text);
    }
    .plan-block--ai .plan-block__head {
      border-bottom-color: rgba(0, 163, 196, 0.2);
    }
    .plan-block__cta--ai.btn-primary {
      background: var(--color-cyan);
    }
    .plan-block__cta--ai.btn-primary:hover {
      background: #0891b2;
    }
    /* フルオーダー：グレー／ブラック */
    .plan-block--custom {
      --plan-accent: #374151;
      background: linear-gradient(180deg, #f3f4f6 0%, #fff 14%);
    }
    .plan-block--custom .plan-name,
    .plan-block--custom .plan-benefit-lead {
      color: #1f2937;
    }
    .plan-block--custom .plan-block__head {
      border-bottom-color: rgba(55, 65, 81, 0.15);
    }
    .plan-block__cta--custom {
      border-color: #9ca3af;
      color: #374151;
    }
    .plan-block__cta--custom:hover {
      border-color: #374151;
      color: #111827;
    }

    /* 後方互換: plan-card → plan-block */
    .plan-card {
      display: flex;
      flex-direction: column;
      padding: 2rem 1.5rem;
      border-radius: 0;
      height: 100%;
      background: transparent;
      border: none;
      border-bottom: 1px solid var(--border);
    }
    .plan-card--featured {
      background: transparent;
      border: none;
      border-top: 2px solid var(--text);
      border-bottom: 1px solid var(--border);
      box-shadow: none;
    }
    .plan-card--standard {
      background: transparent;
      border: none;
      border-bottom: 1px solid var(--border);
    }
    .plan-name {
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--text-muted);
      margin-bottom: 0.5rem;
    }
    .plan-card--featured .plan-name { color: var(--text-muted); }
    .plan-subcopy {
      font-size: 1.0625rem;
      font-weight: 600;
      line-height: 1.4;
      color: var(--text);
      margin-bottom: 1.125rem;
      min-height: auto;
    }
    .plan-card--featured .plan-subcopy { color: var(--text); }
    .plan-price {
      font-size: 1.75rem;
      font-weight: 600;
      font-family: 'Inter', 'Noto Sans JP', sans-serif;
      line-height: 1;
      color: var(--text);
      margin-bottom: 1.125rem;
    }
    .plan-card--featured .plan-price { color: var(--text); }
    .plan-price-note {
      font-size: 0.75rem;
      font-weight: 400;
      color: var(--text-muted);
      margin-left: 0.125rem;
    }
    .plan-features {
      list-style: none;
      margin: 0 0 1rem;
      padding: 0;
      flex: 1;
    }
    .plan-features li {
      display: flex;
      align-items: flex-start;
      gap: 0.5rem;
      font-size: 0.75rem;
      line-height: 1.55;
      color: var(--text-muted);
      padding: 0.35rem 0;
    }
    .plan-card--featured .plan-features li { color: var(--text-muted); }
    .plan-features svg { flex-shrink: 0; margin-top: 0.15rem; }
    .plan-card .btn-primary,
    .plan-card .btn-secondary {
      font-size: 0.8125rem;
      padding: 0.65rem 0.875rem;
    }

    /* ── 保守：3カラムカード ── */
    .maint-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 1.5rem;
      align-items: stretch;
    }
    @media (min-width: 768px) {
      .maint-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 2rem;
      }
    }
    .maint-block,
    .maint-card {
      display: flex;
      flex-direction: column;
      height: 100%;
      padding: 2rem;
      border: 1px solid var(--border);
      border-radius: 0;
      background: #fff;
      box-shadow: none;
    }
    .maint-block--featured {
      border-color: #9ca3af;
      border-top: 2px solid var(--text);
    }
    .maint-block .plan-badge {
      margin-bottom: 0.875rem;
    }
    .maint-block .plan-features {
      flex: 1;
      margin-bottom: 1.25rem;
    }
    .maint-block > a {
      margin-top: auto;
      width: 100%;
    }
    .maint-term-intro {
      margin-bottom: 2.5rem;
      padding: 1.75rem 1.5rem;
      border: 1px solid var(--border);
      background: #fff;
    }
    @media (min-width: 768px) {
      .maint-term-intro {
        margin-bottom: 3rem;
        padding: 2rem;
      }
    }
    .maint-term-intro-title {
      font-size: clamp(1.0625rem, 2.2vw, 1.25rem);
      font-weight: 600;
      color: var(--text);
      letter-spacing: -0.02em;
      line-height: 1.4;
      margin: 0 0 0.875rem;
    }
    .maint-term-intro-lead {
      font-size: 0.8125rem;
      line-height: 1.75;
      color: var(--text-muted);
      margin: 0 0 1rem;
      max-width: 48rem;
    }
    .maint-term-hints {
      list-style: none;
      margin: 0;
      padding: 0;
      display: grid;
      gap: 0.5rem;
    }
    @media (min-width: 640px) {
      .maint-term-hints {
        grid-template-columns: repeat(3, 1fr);
        gap: 0.75rem 1.25rem;
      }
    }
    .maint-term-hints li {
      font-size: 0.75rem;
      line-height: 1.6;
      color: var(--text-muted);
    }
    .maint-term-hints strong {
      font-weight: 600;
      color: var(--text);
    }
    .maint-base-price {
      font-size: 1.5rem;
      font-weight: 800;
      color: var(--text);
      line-height: 1.2;
      margin: 0 0 1rem;
    }
    .maint-term-table {
      margin: 0 0 1.25rem;
      padding: 0;
      border: 1px solid var(--border);
      background: var(--surface);
    }
    .maint-term-row {
      display: grid;
      grid-template-columns: 1fr;
      gap: 0.35rem;
      padding: 0.75rem 0.875rem;
      border-bottom: 1px solid var(--border);
    }
    .maint-term-row:last-child {
      border-bottom: none;
    }
    @media (min-width: 480px) {
      .maint-term-row {
        grid-template-columns: 6.5rem 1fr;
        align-items: baseline;
        gap: 0.75rem;
      }
    }
    .maint-term-row dt {
      font-size: 0.6875rem;
      font-weight: 600;
      letter-spacing: 0.04em;
      color: var(--text-muted);
      margin: 0;
    }
    .maint-term-row dd {
      display: flex;
      flex-direction: column;
      gap: 0.15rem;
      margin: 0;
    }
    .maint-term-monthly {
      font-size: 0.8125rem;
      font-weight: 700;
      color: var(--text);
      line-height: 1.4;
    }
    .maint-term-total {
      font-size: 0.6875rem;
      font-weight: 500;
      color: var(--text-muted);
      line-height: 1.4;
    }

    /* ── 事務所概要（枠なし・区切り線） ── */
    .profile-section {
      color: var(--text);
    }
    .profile-grid {
      gap: 0;
      margin-top: 0;
    }
    @media (min-width: 1024px) {
      .profile-grid .profile-block:first-child {
        padding-right: 3.75rem;
        border-right: 1px solid var(--border);
      }
      .profile-grid .profile-block:nth-child(2) {
        padding-left: 3.75rem;
      }
    }
    .profile-panel,
    .profile-block {
      background: transparent;
      border: none;
      border-radius: 0;
      box-shadow: none;
      padding: 0 0 3rem;
    }
    @media (min-width: 768px) {
      .profile-panel,
      .profile-block { padding-bottom: 0; }
    }
    .profile-panel-title {
      font-size: clamp(1.25rem, 2.5vw, 1.5rem);
      font-weight: 600;
      letter-spacing: -0.02em;
      color: var(--text);
      margin-bottom: 2rem;
    }
    .profile-info-table {
      margin: 0;
      padding: 0;
    }
    .profile-info-row {
      display: grid;
      grid-template-columns: 7rem 1fr;
      gap: 1.25rem;
      padding: 1rem 0;
      border-bottom: 1px solid var(--border);
    }
    .profile-info-row:first-child { padding-top: 0; }
    .profile-info-row:last-child {
      border-bottom: none;
      padding-bottom: 0;
    }
    .profile-info-row dt {
      font-size: 0.75rem;
      font-weight: 500;
      color: var(--text-muted);
      margin: 0;
    }
    .profile-info-row dd {
      font-size: 0.8125rem;
      font-weight: 400;
      color: var(--text);
      margin: 0;
      line-height: 1.5;
    }
    .profile-info-row a {
      color: #374151;
      text-decoration: none;
      transition: color 0.2s;
    }
    .profile-info-row a:hover { color: #111827; }
    .profile-service-list {
      list-style: none;
      margin: 0;
      padding: 0;
    }
    .profile-service-list li {
      font-size: 0.8125rem;
      font-weight: 400;
      color: var(--text);
      padding: 1rem 0;
      border-bottom: 1px solid var(--border);
      line-height: 1.5;
    }
    .profile-service-list li:first-child { padding-top: 0; }
    .profile-service-list li:last-child {
      border-bottom: none;
      padding-bottom: 0;
    }
    .profile-founder {
      margin-top: 0;
      padding-top: 3.75rem;
      border-top: 1px solid rgba(15, 23, 42, 0.08);
    }
    .profile-founder .feature-label {
      margin-bottom: 1.25rem;
    }
    .profile-founder-name {
      font-size: clamp(1.125rem, 2vw, 1.375rem);
      font-weight: 600;
      color: var(--text);
      letter-spacing: -0.01em;
      margin-bottom: 0.25rem;
    }
    .profile-founder-role {
      font-size: 0.75rem;
      font-weight: 500;
      color: var(--text-muted);
      margin-bottom: 1.5rem;
    }
    .profile-founder-bio {
      font-size: 0.9375rem;
      line-height: 2;
      color: rgba(15, 23, 42, 0.62);
      max-width: 42rem;
      margin: 0;
    }

    /* ── 料金下：安心エリア ── */
    #price-bundle {
      scroll-margin-top: 4.75rem;
    }
    @media (min-width: 768px) {
      #price-bundle { scroll-margin-top: 5.5rem; }
    }
    .price-bundle-box {
      margin-bottom: 3rem;
      padding: 2rem 1.5rem;
      border: 1px solid var(--border);
      background: #fff;
    }
    @media (min-width: 768px) {
      .price-bundle-box {
        margin-bottom: 3.5rem;
        padding: 2.25rem 2rem;
      }
    }
    .price-bundle-eyebrow {
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--text-muted);
      margin: 0 0 0.75rem;
    }
    .price-bundle-title {
      font-size: clamp(1.125rem, 2.5vw, 1.375rem);
      font-weight: 600;
      color: var(--text);
      letter-spacing: -0.02em;
      line-height: 1.35;
      margin: 0 0 1rem;
    }
    .price-bundle-lead {
      font-size: 0.8125rem;
      line-height: 1.75;
      color: var(--text-muted);
      margin: 0 0 1.25rem;
      max-width: 48rem;
    }
    .price-bundle-lead--sub {
      margin-top: -0.75rem;
      margin-bottom: 1.25rem;
    }
    .price-bundle-perks {
      flex: 0 0 auto;
      margin-bottom: 0;
    }
    .price-reassurance {
      max-width: 70rem;
      margin: 3.5rem auto 0;
      padding: 2rem 2.5rem 2.25rem;
      background: rgba(255, 255, 255, 0.94);
      border: 1px solid rgba(15, 36, 65, 0.1);
    }

    .price-reassurance__title {
      margin: 0 0 1.5rem;
      text-align: center;
      color: var(--color-navy, var(--text));
      font-size: 1rem;
      font-weight: 800;
      line-height: 1.4;
    }

    .price-reassurance__list {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      align-items: center;
      gap: 1rem 2.5rem;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .price-reassurance-item {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      color: var(--color-text, var(--text-muted));
      font-size: 0.95rem;
      line-height: 1.7;
    }

    .price-reassurance-item svg {
      flex-shrink: 0;
    }

    @media (max-width: 767px) {
      .price-reassurance {
        margin-top: 2.5rem;
        padding: 1.5rem 1.25rem 1.75rem;
      }

      .price-reassurance__list {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.875rem 1rem;
      }
    }

    /* ── 申し込みページ ── */
    .application-page {
      background: #fff;
      position: relative;
      z-index: 1;
    }
    .app-notice {
      margin-bottom: 1.25rem;
      padding: 1rem 0 1rem 1rem;
      border: none;
      border-left: 2px solid rgba(8, 145, 178, 0.35);
      background: transparent;
      font-size: 0.8125rem;
      line-height: 1.75;
      color: var(--text-muted);
    }
    .app-notice p {
      margin: 0;
    }
    .application-form-shell {
      margin-bottom: 2.5rem;
      padding-top: 0;
      border-top: none;
    }
    .app-confirm-fieldset {
      border: none;
      margin: 0;
      padding: 0;
    }
    .app-confirm-list {
      list-style: none;
      margin: 0;
      padding: 0;
    }
    .app-confirm-label {
      display: flex;
      align-items: flex-start;
      gap: 0.625rem;
      font-size: 0.8125rem;
      line-height: 1.6;
      color: var(--text-muted);
      cursor: pointer;
    }
    .app-confirm-check {
      flex-shrink: 0;
      margin-top: 0.2rem;
      width: 1rem;
      height: 1rem;
      accent-color: var(--text);
    }
    .app-contract {
      margin-bottom: 2.5rem;
      padding: 2rem 1.5rem;
      border: 1px solid var(--border);
      background: #fff;
    }
    .app-contract-title {
      font-size: clamp(1.0625rem, 2.2vw, 1.25rem);
      font-weight: 600;
      color: var(--text);
      letter-spacing: -0.02em;
      margin: 0 0 0.875rem;
    }
    .app-contract-lead {
      font-size: 0.8125rem;
      line-height: 1.75;
      color: var(--text-muted);
      margin: 0 0 1rem;
    }
    .app-contract-list {
      margin: 0 0 1.25rem;
      padding-left: 1.25rem;
      font-size: 0.8125rem;
      line-height: 1.85;
      color: var(--text);
    }
    .app-contract-note {
      font-size: 0.8125rem;
      line-height: 1.75;
      color: var(--text-muted);
      margin: 0;
    }
    .app-back-link {
      text-align: center;
      margin: 0;
    }
    .app-back-link a {
      font-size: 0.875rem;
      color: var(--text-muted);
      text-decoration: underline;
      text-underline-offset: 2px;
      transition: color 0.2s;
    }
    .app-back-link a:hover {
      color: var(--text);
    }

    /* ── お問い合わせフォーム ── */
    /* honeypot（ボット向け・画面外・scrollWidth に影響しない） */
    .hp-field {
      position: fixed;
      inset: auto;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip-path: inset(50%);
      white-space: nowrap;
      opacity: 0;
      pointer-events: none;
    }

    .contact-form-shell {
      background: transparent;
      border: none;
      border-top: 1px solid var(--border);
      border-radius: 0;
      box-shadow: none;
      padding-top: 3rem;
    }

    /* ── スピナー ── */
    @keyframes spin { to { transform: rotate(360deg); } }
    .spinner {
      display: inline-block;
      width: 17px; height: 17px;
      border: 2px solid rgba(255,255,255,.35);
      border-top-color: #fff;
      border-radius: 50%;
      animation: spin .7s linear infinite;
      vertical-align: middle;
    }

    /* ── セクション表示アニメーション（スクロール） ── */
    .reveal-section {
      opacity: 0;
      transform: translateY(10px);
      transition: opacity 0.85s ease, transform 0.85s ease;
      will-change: opacity, transform;
    }
    .reveal-section.is-visible {
      opacity: 1;
      transform: translateY(0);
    }

    .hero-pitch.reveal-section {
      transition: opacity 0.65s ease, transform 0.65s ease;
    }

    /* ── ヒーロー見出し（ページ読み込み時） — 削除済み、reveal-section に統一 ── */

    /* ── CTA ホバー（控えめ） ── */
    .btn-primary,
    .hero-cta-dark,
    .header-cta {
      transition: background 0.2s ease, transform 0.25s ease, box-shadow 0.25s ease;
      box-shadow: 0 1px 2px rgba(17, 24, 39, 0.06);
    }
    .btn-primary:hover,
    .hero-cta-dark:hover,
    .header-cta:hover {
      transform: scale(1.02);
      box-shadow: 0 4px 14px rgba(17, 24, 39, 0.12);
    }

    @media (prefers-reduced-motion: reduce) {
      .reveal-section {
        opacity: 1;
        transform: none;
        transition: none;
      }
      .hero-pitch.reveal-section {
        opacity: 1;
        transform: none;
        transition: none;
      }
      .btn-primary,
      .hero-cta-dark,
      .header-cta {
        transition: background 0.2s ease;
        box-shadow: none;
      }
      .btn-primary:hover,
      .hero-cta-dark:hover,
      .header-cta:hover {
        transform: none;
        box-shadow: none;
      }
    }

    /* ── 送信完了フェードイン ── */
    @keyframes fadeInUp {
      from { opacity: 0; transform: translateY(18px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    .fade-in-up { animation: fadeInUp .65s ease-out forwards; }

    /* ── モーダル ── */
    .modal-backdrop {
      position: fixed; inset: 0; z-index: 9999;
      background: rgba(0,0,0,.5);
      backdrop-filter: blur(4px);
      display: flex; align-items: center; justify-content: center;
      padding: 1rem;
    }
    .modal-backdrop.hidden { display: none; }
    .modal-box {
      background: #fff;
      border-radius: 1.5rem;
      box-shadow: 0 32px 64px rgba(0,0,0,.18);
      max-width: 36rem; width: 100%;
      max-height: 82vh;
      display: flex; flex-direction: column;
    }

    /* ── フォームインプット ── */
    .f-input {
      width: 100%;
      font-size: .8125rem;
      font-weight: 400;
      color: var(--text);
      background: var(--surface-white);
      border: 1px solid var(--border);
      border-radius: 0.5rem;
      padding: .875rem 1rem;
      outline: none;
      transition: border-color .2s;
    }
    .f-input::placeholder { color: #9ca3af; }
    .f-input:hover { border-color: #d1d5db; }
    .f-input:focus { border-color: var(--text); box-shadow: none; }
    .f-input.err { border-color: #f87171; background: #fff1f2; }

    /* ── Stat カード ── */
    .stat-card {
      background: #fff;
      border: 1px solid #e2e8f0;
      border-radius: 1rem;
      padding: 1.5rem;
      transition: transform .5s ease-in-out, box-shadow .5s ease-in-out;
    }
    .stat-card:hover {
      transform: translateY(-3px) scale(1.01);
      box-shadow: 0 16px 32px rgba(0,0,0,.07);
    }

    /* ── 業種リスト（カードなし・線と余白で整理） ── */
    #industries.section-wrap {
      padding-bottom: 3rem;
    }
    @media (min-width: 768px) {
      #industries.section-wrap {
        padding-bottom: 6rem;
      }
    }
    .industries-grid,
    .industry-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 0;
    }
    @media (min-width: 769px) {
      .industries-grid,
      .industry-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 4rem;
      }
    }
    .industry-card {
      background: transparent;
      box-shadow: none;
      border-radius: 0;
      border: none;
      border-top: 1px solid rgba(15, 23, 42, 0.10);
      padding: 2rem 0;
      overflow: visible;
    }
    @media (min-width: 769px) {
      .industry-card {
        padding: 2.5rem 0;
      }
    }
    .industry-image {
      position: relative;
      width: 100%;
      height: auto;
      aspect-ratio: 16 / 10;
      min-height: 0;
      overflow: hidden;
      border-radius: 14px;
      margin-bottom: 1.375rem;
      background: #eef1f4;
      border: 1px solid rgba(15, 23, 42, 0.08);
      transition: transform 0.35s ease, border-color 0.35s ease;
    }
    @media (min-width: 769px) {
      .industry-image {
        aspect-ratio: 5 / 3;
        min-height: 200px;
        margin-bottom: 1.75rem;
      }
    }
    .industry-image::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 1;
      pointer-events: none;
      border-radius: inherit;
      background:
        linear-gradient(
          180deg,
          rgba(255, 255, 255, 0.05),
          rgba(255, 255, 255, 0.16)
        ),
        radial-gradient(
          ellipse at 20% 15%,
          rgba(255, 255, 255, 0.18),
          transparent 55%
        );
    }
    .industry-image img {
      width: 100%;
      height: 100%;
      max-width: none;
      display: block;
      object-fit: cover;
      object-position: center;
      transform: none;
      opacity: 1;
      filter: grayscale(8%) saturate(82%) contrast(96%) brightness(1.03);
      transition: transform 0.45s ease, filter 0.35s ease;
    }
    @media (hover: hover) and (min-width: 769px) {
      .industry-card:hover .industry-image {
        transform: translateY(-3px);
        border-color: rgba(0, 163, 196, 0.18);
      }
      .industry-card:hover .industry-image img {
        transform: scale(1.025);
        filter: grayscale(6%) saturate(86%) contrast(97%) brightness(1.04);
      }
    }
    .industry-content,
    .industry-body {
      padding: 0;
    }
    .industry-number {
      display: block;
      font-family: 'Inter', sans-serif;
      font-size: 2.625rem;
      font-weight: 700;
      letter-spacing: -0.05em;
      color: rgba(15, 23, 42, 0.06);
      line-height: 1;
      margin: 0 0 0.625rem;
    }
    .industry-tag,
    .industry-label {
      display: block;
      margin: 0 0 0.875rem;
      font-family: 'Inter', sans-serif;
      font-size: 0.6875rem;
      font-weight: 700;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: rgba(15, 23, 42, 0.46);
    }
    .industry-title,
    .industry-content h3 {
      margin: 0 0 0.875rem;
      font-size: 1.25rem;
      font-weight: 700;
      line-height: 1.6;
      color: #0f172a;
    }
    .industry-text,
    .industry-content p {
      margin: 0;
      font-size: 0.875rem;
      line-height: 2;
      color: rgba(15, 23, 42, 0.62);
    }
    #industries .industry-image img {
      width: 100%;
      height: 100%;
    }

    /* 業種ごとのトリミング位置（HTML変更なし） */
    .industry-card:nth-child(1) .industry-image img {
      object-position: center 58%;
    }
    .industry-card:nth-child(2) .industry-image img {
      object-position: center center;
    }
    .industry-card:nth-child(3) .industry-image img {
      object-position: center 42%;
    }
    .industry-card:nth-child(4) .industry-image img {
      object-position: center center;
    }

    @media (max-width: 768px) {
      .industry-card {
        padding: 2rem 0;
      }
      .industry-image {
        aspect-ratio: 16 / 10;
        margin-bottom: 1.375rem;
      }
      .industry-number {
        font-size: 2.625rem;
      }
      .industry-title,
      .industry-content h3 {
        font-size: 1.125rem;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .industry-image {
        transition: none;
      }
      .industry-image img {
        transition: none;
      }
      .industry-card:hover .industry-image,
      .industry-card:hover .industry-image img {
        transform: none;
      }
    }

    /* ── ボタン共通（新ブランドカラー: slate-900） ── */
    .btn-primary {
      display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
      background: var(--text); color: #fff;
      font-weight: 500; font-size: .8125rem;
      padding: 0.875rem 1.75rem;
      border-radius: .5rem;
      border: none; cursor: pointer;
      transition: background .2s ease;
      text-decoration: none;
    }
    .btn-primary:hover { background: #374151; }
    .btn-secondary {
      display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
      background: transparent; color: var(--text);
      font-weight: 500; font-size: .8125rem;
      padding: 0.875rem 1.75rem;
      border-radius: .5rem;
      border: 1px solid var(--border); cursor: pointer;
      transition: border-color .2s ease, color .2s ease;
      text-decoration: none;
    }
    .btn-secondary:hover { border-color: var(--text); color: var(--text); transform: none; }

    /* ── Hero セクション ── */
    .hero-section {
      position: relative;
      isolation: isolate;
    }
    .hero-bg-logo {
      position: absolute;
      top: 50%;
      right: clamp(3rem, 7vw, 7.5rem);
      left: auto;
      transform: translateY(-50%);
      width: clamp(15rem, 40vw, 37rem);
      max-width: 40vw;
      height: auto;
      opacity: 1;
      filter: drop-shadow(0 18px 28px rgba(15, 23, 42, 0.18));
      mix-blend-mode: normal;
      pointer-events: none;
      user-select: none;
      z-index: 0;
    }
    @media (min-width: 1024px) {
      .hero-bg-logo {
        right: clamp(4.5rem, 9vw, 9.5rem);
        width: clamp(17rem, 43vw, 42rem);
        max-width: 36vw;
      }
    }
    .hero-inner {
      position: relative;
      z-index: 1;
    }

    /* ── Hero ピッチ（単語中心・コンサル調） ── */
    .hero-pitch {
      margin-top: 0;
      max-width: 42rem;
      position: relative;
      z-index: 1;
    }
    .hero-pitch-label {
      font-family: 'Inter', sans-serif;
      font-size: clamp(1.25rem, 3.1vw, 2.0625rem);
      font-weight: 700;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: #4b5563;
      margin: 0 0 1.125rem;
    }
    @media (max-width: 768px) {
      .hero-pitch-label {
        font-size: clamp(1.5rem, 4.5vw, 1.6875rem);
      }
    }
    .hero-pitch-outcomes {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 0.375rem 1.125rem;
      margin: 0 0 1.375rem;
      padding: 0;
      font-weight: 600;
      letter-spacing: -0.035em;
      line-height: 1.02;
    }
    .hero-pitch-outcomes span {
      font-size: clamp(2.25rem, 8vw, 4.625rem);
      font-weight: 600;
      color: var(--text);
      letter-spacing: -0.04em;
      line-height: 1.02;
    }
    @media (min-width: 768px) {
      .hero-pitch-outcomes {
        gap: 0.5rem 1.625rem;
        margin-bottom: 1.5rem;
      }
      .hero-pitch-outcomes span {
        font-size: clamp(2.875rem, 6vw, 4.875rem);
      }
    }
    .hero-pitch-services {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.25rem 0;
      list-style: none;
      margin: 0 0 1.375rem;
      padding: 0;
      border: none;
    }
    .hero-pitch-services li {
      font-size: 0.8125rem;
      font-weight: 500;
      color: var(--text-muted);
      letter-spacing: 0.02em;
    }
    .hero-pitch-services li + li::before {
      content: '·';
      margin: 0 0.5rem;
      color: #d1d5db;
      font-weight: 400;
    }

    /* ── Hero 対応業種タグ ── */
    .hero-industry-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin: 18px 0 22px;
      padding: 0;
      list-style: none;
      max-width: 36rem;
    }
    .hero-industry-tag {
      display: inline-flex;
      align-items: center;
      padding: 6px 12px;
      border-radius: 999px;
      border: 1px solid rgba(15, 23, 42, 0.10);
      background: rgba(255, 255, 255, 0.42);
      color: rgba(15, 23, 42, 0.66);
      font-size: 12px;
      font-weight: 500;
      letter-spacing: 0.03em;
      line-height: 1.4;
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
    }
    @media (max-width: 639px) {
      .hero-industry-tags {
        margin-top: 16px;
        margin-bottom: 20px;
        gap: 7px;
      }
      .hero-industry-tag {
        font-size: 13px;
        padding: 7px 13px;
      }
    }

    /* ── Hero SCROLL 誘導（PCのみ・クリックで #stats へ） ── */
    .hero-scroll-indicator {
      position: absolute;
      left: 50%;
      bottom: 24px;
      z-index: 2;
      transform: translateX(-50%);
      display: inline-flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      font-family: 'Inter', sans-serif;
      font-size: 13px;
      font-weight: 600;
      letter-spacing: 0.22em;
      color: rgba(15, 23, 42, 0.38);
      text-transform: uppercase;
      text-decoration: none;
      cursor: pointer;
      pointer-events: auto;
      transition: color 0.2s ease, opacity 0.2s ease;
      animation: heroScrollFloat 2.4s ease-in-out infinite;
    }
    .hero-scroll-indicator:hover {
      color: rgba(15, 23, 42, 0.58);
    }
    .hero-scroll-indicator:hover .hero-scroll-arrow {
      opacity: 0.9;
    }
    .hero-scroll-indicator:focus-visible {
      outline: 2px solid rgba(15, 23, 42, 0.2);
      outline-offset: 4px;
      border-radius: 4px;
    }
    .hero-scroll-indicator > span:first-child {
      display: block;
    }
    .hero-scroll-arrow {
      display: block;
      font-size: 18px;
      line-height: 1;
      opacity: 0.7;
      transition: opacity 0.2s ease;
    }
    @keyframes heroScrollFloat {
      0%, 100% {
        transform: translateX(-50%) translateY(0);
      }
      50% {
        transform: translateX(-50%) translateY(6px);
      }
    }
    @media (max-width: 768px) {
      .hero-scroll-indicator {
        display: none;
      }
    }

    .hero-pitch-hook {
      margin: 0 0 1.375rem;
      max-width: 28rem;
    }
    .hero-pitch-hook-lead {
      display: block;
      font-size: 0.75rem;
      font-weight: 500;
      color: var(--text-muted);
      letter-spacing: 0.06em;
      margin-bottom: 0.375rem;
    }
    .hero-pitch-hook-main {
      display: block;
      font-size: clamp(1.125rem, 2.2vw, 1.5rem);
      font-weight: 600;
      color: var(--text);
      letter-spacing: -0.02em;
      line-height: 1.35;
    }
    .hero-pitch-support {
      margin: 0 0 1.25rem;
      max-width: 32rem;
      font-size: 0.8125rem;
      line-height: 1.75;
      color: var(--text-muted);
    }
    .hero-pitch-ai-note {
      margin: 1rem 0 0;
      max-width: 28rem;
      font-size: 0.75rem;
      line-height: 1.7;
      color: #9ca3af;
      border-left: 2px solid #e5e7eb;
      padding-left: 1rem;
    }
    .hero-pitch-cta-wrap {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 1rem;
      margin-top: 1.5rem;
    }
    @media (min-width: 640px) {
      .hero-pitch-cta-wrap {
        gap: 1.125rem;
        margin-top: 2rem;
      }
    }
    .hero-pitch-cta-row {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 0.875rem;
      width: 100%;
    }
    @media (min-width: 640px) {
      .hero-pitch-cta-row {
        flex-direction: row;
        align-items: center;
        flex-wrap: wrap;
        gap: 1rem 1.5rem;
        width: auto;
      }
    }
    @media (max-width: 639px) {
      .hero-pitch-cta-row .hero-cta-dark {
        width: 100%;
        justify-content: center;
      }
    }
    .hero-pitch-trust {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.25rem 0;
      list-style: none;
      margin: 0;
      padding: 0;
      width: 100%;
    }
    @media (min-width: 640px) {
      .hero-pitch-trust {
        width: auto;
      }
    }
    .hero-pitch-trust li {
      font-size: 0.6875rem;
      font-weight: 400;
      color: #9ca3af;
      letter-spacing: 0.02em;
      line-height: 1.5;
    }
    .hero-pitch-trust li + li::before {
      content: '·';
      margin: 0 0.625rem;
      color: #d1d5db;
    }

    /* ── Hero 縦書きテキスト ── */
    .hero-vertical {
      writing-mode: vertical-rl;
      text-orientation: mixed;
      letter-spacing: 0.28em;
      font-size: 0.65rem;
      font-weight: 500;
      color: #94a3b8;
      position: absolute;
      left: 1.5rem;
      top: 50%;
      transform: translateY(-50%);
      line-height: 1;
      user-select: none;
    }

    /* ── Hero アウトラインテキスト（2行目） ── */
    .hero-outline {
      -webkit-text-stroke: 2px #0f172a;
      color: transparent;
    }
    @media (max-width: 639px) {
      .hero-outline { -webkit-text-stroke: 1.5px #0f172a; }
    }

    /* ── Hero ダークCTA ── */
    .hero-cta-dark {
      display: inline-flex;
      align-items: center;
      gap: 0.75rem;
      background: var(--text);
      color: #fff;
      font-weight: 500;
      font-size: 0.8125rem;
      letter-spacing: 0.02em;
      padding: 0.875rem 1.75rem;
      border-radius: 0.5rem;
      text-decoration: none;
      transition: background 0.2s ease;
      white-space: nowrap;
    }
    .hero-cta-dark:hover {
      background: #374151;
    }
    .hero-cta-dark .cta-arrow {
      display: inline-block;
      transition: transform 0.5s ease-in-out;
    }
    .hero-cta-dark:hover .cta-arrow { transform: translateX(5px); }

    /* ── Hero テキストリンクCTA ── */
    .hero-cta-ghost {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      color: #475569;
      font-size: 0.8125rem;
      font-weight: 500;
      text-decoration: none;
      border-bottom: 1px solid #94a3b8;
      padding-bottom: 3px;
      transition: color 0.3s ease, border-color 0.3s ease, gap 0.3s ease;
      flex-shrink: 0;
    }
    .hero-cta-ghost-arrow {
      display: inline-block;
      flex-shrink: 0;
      transition: transform 0.3s ease;
    }
    .hero-cta-ghost:hover {
      color: #0f172a;
      border-color: #0f172a;
      gap: 0.65rem;
    }
    .hero-cta-ghost:hover .hero-cta-ghost-arrow {
      transform: translateX(4px);
    }

    /* ── Stats Bar ── */
    .stats-inner {
      display: contents;
    }
    .stats-bar {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      min-height: 96px;
      align-items: stretch;
    }
    .stat-item {
      position: relative;
      width: 100%;
      height: 100%;
      min-height: 96px;
      padding: 2rem clamp(1.5rem, 3vw, 3rem);
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      background: transparent;
      border-left: 1px solid rgba(51, 65, 85, 0.6);
      transition: background-color 0.25s ease;
    }
    .stat-item:first-child {
      border-left: none;
    }
    .stat-item:hover {
      background-color: rgba(255, 255, 255, 0.04);
    }
    .stat-value {
      display: flex;
      align-items: baseline;
      gap: 0.125rem;
      min-height: 2rem;
      font-family: 'Inter', sans-serif;
      font-size: 1.5rem;
      font-weight: 700;
      line-height: 1;
      color: #fff;
    }
    .stat-value-main {
      font-weight: 700;
      line-height: 1;
    }
    .stat-value-unit {
      font-size: 0.875rem;
      font-weight: 500;
      line-height: 1;
      color: #64748b;
    }
    .stat-label {
      margin-top: 0.5rem;
      min-height: 1.05rem;
      font-size: 0.75rem;
      font-weight: 500;
      line-height: 1.4;
      letter-spacing: 0.025em;
      color: #475569;
    }
    .stat-left {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      width: fit-content;
      min-width: 8rem;
      text-align: left;
    }
    .stat-note {
      display: none;
      margin: 0;
    }
    @media (min-width: 640px) {
      .stat-value {
        min-height: 2.25rem;
        font-size: 1.875rem;
      }
      .stat-value-unit {
        font-size: 1.125rem;
      }
    }
    @media (max-width: 768px) {
      .stats-strip.bg-slate-900 {
        background-color: transparent !important;
      }
      .stats-bar {
        display: block;
        grid-template-columns: 1fr;
        min-height: auto;
        background: transparent;
        border: none;
        box-shadow: none;
        border-radius: 0;
        padding: 1.25rem 0 2.5rem;
      }
      .stats-inner {
        display: flex;
        flex-direction: column;
        gap: 0;
        font-family: 'Inter', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', sans-serif;
        background: transparent;
        border: none;
        border-radius: 0;
        box-shadow: none;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        overflow: visible;
      }
      .stat-item {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: 1.5rem;
        align-items: center;
        padding: 1.5rem 0;
        min-height: auto;
        background: transparent;
        border: none;
        border-radius: 0;
        box-shadow: none;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        border-bottom: 1px solid rgba(15, 23, 42, 0.1);
        transition: none;
      }
      .stat-item:last-child {
        border-bottom: none;
      }
      .stat-item:hover {
        background-color: transparent;
      }
      .stat-left {
        width: auto;
        min-width: 5.75rem;
        text-align: left;
      }
      .stat-value {
        display: flex;
        align-items: baseline;
        min-width: auto;
        min-height: auto;
        margin-bottom: 0;
        line-height: 1;
        color: #0f172a;
      }
      .stat-value-main,
      .stat-value-main.stat-free {
        font-size: 2.125rem;
        line-height: 1;
        font-weight: 700;
        letter-spacing: -0.04em;
        color: #0f172a;
      }
      .stat-value-unit {
        font-size: 0.9375rem;
        margin-left: 0.25rem;
        font-weight: 600;
        color: rgba(15, 23, 42, 0.62);
      }
      .stat-label {
        margin-top: 0.5rem;
        min-height: auto;
        font-size: 0.8125rem;
        font-weight: 500;
        color: rgba(15, 23, 42, 0.52);
        line-height: 1.5;
        text-align: left;
      }
      .stat-note {
        display: block;
        font-size: 0.75rem;
        line-height: 1.7;
        color: rgba(15, 23, 42, 0.48);
        text-align: right;
      }
    }

    /* ─────────────────────────────────────────────────────
       WORKS LIST — GP Online スタイル（カード枠線なし・タイポグラフィ主体）
       ───────────────────────────────────────────────────── */
    #portfolio .section-header {
      margin-bottom: 3rem;
    }
    @media (min-width: 768px) {
      #portfolio .section-header {
        margin-bottom: 4.5rem;
      }
    }

    /* 料金〜制作実績：過剰な section-wrap 余白を抑える */
    #price.pricing.section-wrap,
    .pricing.section-wrap {
      padding-bottom: 4rem;
      margin-bottom: 0;
    }

    #price .price-reassurance {
      margin-bottom: 0;
    }
    #portfolio.works-section.section-wrap,
    #portfolio.works.section-wrap {
      padding-top: 3.5rem;
      margin-top: 0;
    }
    @media (min-width: 768px) {
      #price.pricing.section-wrap,
      .pricing.section-wrap {
        padding-bottom: 5rem;
      }
      #portfolio.works-section.section-wrap,
      #portfolio.works.section-wrap {
        padding-top: 5rem;
      }
    }
    @media (min-width: 1024px) {
      #price.pricing.section-wrap,
      .pricing.section-wrap {
        padding-bottom: 6rem;
      }
      #portfolio.works-section.section-wrap,
      #portfolio.works.section-wrap {
        padding-top: 6rem;
      }
    }
    .works-list { border-top: none; }
    .work-item {
      display: block;
      text-decoration: none;
      padding: 3.75rem 0;
      border-bottom: 1px solid var(--border);
      cursor: pointer;
      position: relative;
    }
    .work-item::before { display: none; }
    .work-meta { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
    .work-meta-left { display: flex; align-items: center; gap: 1.25rem; }
    .work-num {
      font-family: 'Inter','Helvetica Neue',monospace;
      font-size: 10px; font-weight: 400; letter-spacing: 0.2em;
      color: #c4c7cf; transition: color 0.5s ease-in-out;
    }
    .work-item:hover .work-num { color: #64748b; }
    .work-category {
      font-family: 'Inter','Helvetica Neue',sans-serif;
      font-size: 10px; font-weight: 500; letter-spacing: 0.22em;
      text-transform: uppercase; color: #9da3ae;
    }
    .work-cta {
      display: flex; align-items: center; gap: 5px;
      font-family: 'Inter', sans-serif;
      font-size: 9.5px; font-weight: 500; letter-spacing: 0.22em;
      text-transform: uppercase; color: #9da3ae;
      transition: color 0.5s ease-in-out;
    }
    .work-item:hover .work-cta { color: #0f172a; }
    .work-cta-arrow { display: inline-block; flex-shrink: 0; transition: transform 0.5s ease-in-out; }
    .work-item:hover .work-cta-arrow { transform: translateX(7px); }
    .work-title {
      font-family: 'Inter', 'Noto Sans JP', sans-serif;
      font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 600; color: var(--text);
      letter-spacing: -0.025em; line-height: 1.1;
      margin: 0 0 0.8rem; transition: color 0.5s ease-in-out;
    }
    @media (min-width: 768px) { .work-title { font-size: 2.5rem; } }
    .work-item:hover .work-title { color: #374151; }
    .work-desc {
      font-family: 'Inter', 'Noto Sans JP', sans-serif;
      font-size: 0.8125rem; font-weight: 400; color: var(--text-muted); line-height: 1.8;
      max-width: 52ch; transition: color 0.5s ease-in-out;
    }
    .work-item:hover .work-desc { color: #4b5563; }
    .works-list--single,
    .works-list--multi {
      padding-top: 1.25rem;
    }
    @media (min-width: 768px) {
      .works-list--single,
      .works-list--multi {
        padding-top: 1.5rem;
      }
    }
    .works-list--multi {
      border-top: 1px solid var(--border);
    }
    .works-list--multi .work-card {
      max-width: none;
      margin: 0;
      border-radius: 0;
      border: none;
      border-bottom: 1px solid var(--border);
      box-shadow: none;
      background: transparent;
    }
    .works-list--multi .work-card:last-child {
      border-bottom: none;
    }
    .works-list--multi .work-card:hover {
      box-shadow: none;
      transform: none;
    }
    .works-list--multi .work-card:hover .work-card__title {
      color: #0e7490;
    }
    .works-list--multi .work-image {
      height: 200px;
      max-height: 220px;
    }
    @media (min-width: 769px) {
      .works-list--multi .work-image {
        height: 260px;
        max-height: 280px;
      }
    }
    .works-container {
      max-width: 1080px;
      margin: 0 auto;
      padding: 0 1.25rem;
    }
    @media (min-width: 640px) {
      .works-container {
        padding: 0 2rem;
      }
    }
    @media (min-width: 1024px) {
      .works-container {
        padding: 0 2rem 0 5rem;
      }
    }
    #portfolio .works-list--single .work-card,
    .works-list--single .work-card {
      display: block;
      width: 100%;
      max-width: 720px;
      margin: 0 auto;
      border-radius: 20px;
      overflow: hidden;
      background: #fff;
      border: 1px solid rgba(15, 23, 42, 0.08);
      box-shadow: 0 20px 50px rgba(15, 23, 42, 0.06);
      text-decoration: none;
      color: inherit;
      cursor: pointer;
      transition: box-shadow 0.35s ease, transform 0.35s ease;
    }
    #portfolio .works-list--single .work-card:hover,
    .works-list--single .work-card:hover {
      box-shadow: 0 24px 56px rgba(15, 23, 42, 0.1);
      transform: translateY(-2px);
    }
    #portfolio .works-list--single .work-card:hover .work-card__cta,
    .works-list--single .work-card:hover .work-card__cta {
      color: #0f172a;
    }
    #portfolio .works-list--single .work-card:hover .work-cta-arrow,
    .works-list--single .work-card:hover .work-cta-arrow {
      transform: translateX(7px);
    }
    #portfolio .work-image,
    .work-image {
      width: 100%;
      height: 220px;
      max-height: 240px;
      overflow: hidden;
      background: #f3f4f6;
      flex-shrink: 0;
    }
    @media (min-width: 769px) {
      #portfolio .work-image,
      .work-image {
        height: 320px;
        max-height: 360px;
      }
    }
    #portfolio .work-image img,
    .work-image img {
      width: 100%;
      height: 100%;
      max-width: 100%;
      max-height: 100%;
      display: block;
      object-fit: cover;
      object-position: center;
      filter: grayscale(5%) saturate(90%) contrast(98%);
    }
    .work-card__body {
      padding: 1.5rem 1.75rem 1.75rem;
    }
    @media (min-width: 769px) {
      .work-card__body {
        padding: 1.75rem 2rem 2rem;
      }
    }
    .work-card__type {
      margin: 0 0 0.5rem;
      font-size: 0.6875rem;
      font-weight: 600;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: #0891b2;
    }
    .work-card__desc {
      margin: 0 0 1.25rem;
      font-size: 0.875rem;
      line-height: 1.75;
      color: rgba(15, 23, 42, 0.62);
    }
    .work-card__tags {
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem;
      margin: 0 0 1.25rem;
      padding: 0;
      list-style: none;
    }
    .work-card__tags li {
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.04em;
      padding: 0.25rem 0.625rem;
      border-radius: 9999px;
      color: #475569;
      background: rgba(15, 23, 42, 0.04);
      border: 1px solid rgba(15, 23, 42, 0.08);
    }
    .work-card__title {
      margin: 0 0 0.75rem;
      font-size: 1.125rem;
      font-weight: 700;
      color: #111827;
      line-height: 1.45;
      transition: color 0.3s ease;
    }
    @media (min-width: 769px) {
      .work-card__title {
        font-size: 1.25rem;
      }
    }
    .work-card__meta {
      margin: 0 0 1.5rem;
    }
    .work-card__meta div {
      margin-bottom: 1rem;
    }
    .work-card__meta div:last-child {
      margin-bottom: 0;
    }
    .work-card__meta dt {
      margin: 0 0 0.375rem;
      font-size: 0.6875rem;
      font-weight: 600;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: #94a3b8;
    }
    .work-card__meta dd {
      margin: 0;
      font-size: 0.8125rem;
      font-weight: 400;
      line-height: 1.75;
      color: #6b7280;
    }
    .work-card__cta {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      font-size: 0.8125rem;
      font-weight: 600;
      color: #475569;
      transition: color 0.3s ease;
    }

    /* application page footer fix */
    .application-page footer,
    .application-page .site-footer {
      min-height: auto;
      padding-bottom: 48px;
    }

    .application-page footer .footer-inner,
    .application-page footer .footer-grid {
      align-items: flex-start;
    }

    .application-page footer .footer-brand img,
    .application-page footer .footer-logo,
    .application-page footer .footer-logo img {
      max-width: 420px;
      width: 100%;
      height: auto;
      max-height: 150px;
      object-fit: contain;
      display: block;
    }

    @media (max-width: 767px) {
      .application-page footer,
      .application-page .site-footer {
        padding-bottom: 32px;
      }

      .application-page footer .footer-brand img,
      .application-page footer .footer-logo,
      .application-page footer .footer-logo img {
        max-width: 300px;
        max-height: 120px;
      }
    }

    /* ── NEWS（お知らせ・リスト型） ── */
    #news {
      scroll-margin-top: 5.5rem;
      position: relative;
      z-index: 1;
      background-color: var(--surface-white);
    }

    #news.section-wrap {
      padding-top: 4rem;
      padding-bottom: 5rem;
    }

    @media (min-width: 768px) {
      #news.section-wrap {
        padding-top: 5.5rem;
        padding-bottom: 6rem;
      }
    }

    .news-section-inner {
      width: 100%;
      max-width: 60rem;
      margin: 0 auto;
    }

    .news-list {
      width: 100%;
      margin: 0 auto;
      border-top: 1px solid rgba(15, 36, 65, 0.12);
      background: transparent;
    }

    .news-item {
      border-bottom: 1px solid var(--border);
    }

    .news-list-link,
    .news-item-link,
    .news-item-static {
      display: block;
      padding: 1.75rem 0;
      text-decoration: none;
      color: inherit;
    }

    @media (min-width: 768px) {
      .news-list-link,
      .news-item-link,
      .news-item-static {
        padding: 1.75rem 0;
      }
    }

    .news-list-link:not(.news-list-link--static),
    .news-item-link {
      cursor: pointer;
    }

    .news-list-link--static,
    .news-item-static {
      cursor: default;
    }

    .news-meta {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 0.5rem 0.75rem;
      margin-bottom: 0.625rem;
      font-size: 0.8125rem;
      line-height: 1.5;
      color: var(--text-muted);
    }

    .news-date {
      font-weight: 500;
      letter-spacing: 0.04em;
      font-family: Inter, 'Noto Sans JP', sans-serif;
    }

    .news-category {
      font-size: 0.75rem;
      font-weight: 500;
      letter-spacing: 0.06em;
      color: #64748b;
    }

    .news-title {
      font-size: 1.0625rem;
      font-weight: 700;
      line-height: 1.55;
      color: #0f172a;
      margin: 0 0 0.5rem;
      transition: color 0.2s ease;
    }

    @media (min-width: 768px) {
      .news-title {
        font-size: 1.125rem;
      }
    }

    .news-list-link:not(.news-list-link--static):hover .news-title,
    .news-item-link:hover .news-title {
      color: #0e7490;
    }

    .news-arrow {
      margin-left: 0.25rem;
      font-size: 0.9375rem;
      font-weight: 500;
      color: #0891b2;
    }

    .news-description {
      font-size: 0.875rem;
      line-height: 1.75;
      color: rgba(15, 23, 42, 0.58);
      margin: 0;
    }

    .news-section-cta,
    .news-page-back {
      margin-top: 2.5rem;
      padding-top: 0;
      text-align: center;
      background: transparent;
    }

    @media (min-width: 768px) {
      .news-section-cta,
      .news-page-back {
        margin-top: 2.5rem;
      }
    }

    .news-list-btn,
    .news-back-btn {
      display: inline-flex;
      justify-content: center;
      min-width: 14rem;
    }

    .news-empty {
      text-align: center;
      font-size: 0.875rem;
      color: var(--text-muted);
      padding: 2rem 0;
      border-top: 1px solid var(--border);
    }

    .news-page {
      position: relative;
      z-index: 1;
    }

    .news-page-inner {
      width: 100%;
      max-width: 60rem;
      margin: 0 auto;
    }

    .news-page-section {
      padding-top: 3.5rem;
      padding-bottom: 4.5rem;
    }

    @media (min-width: 768px) {
      .news-page-section {
        padding-top: 5rem;
        padding-bottom: 6rem;
      }
    }

    .news-page-header {
      margin-bottom: 2.75rem;
    }

    @media (min-width: 768px) {
      .news-page-header {
        margin-bottom: 3.5rem;
      }
    }

    .news-page .section-header > .section-title {
      margin-top: 0.875rem;
    }

    /* ── 制作事例詳細（case study） ── */
    .case-study-page .case-sec-eye::before {
      background: #0891b2;
    }

    .case-breadcrumb__list {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem 0.5rem;
      margin: 0;
      padding: 0;
      list-style: none;
      font-size: 0.75rem;
      color: var(--text-muted);
    }

    .case-breadcrumb__list li:not(:last-child)::after {
      content: '›';
      margin-left: 0.5rem;
      color: #cbd5e1;
    }

    .case-breadcrumb__list a {
      color: var(--text-muted);
      text-decoration: none;
    }

    .case-breadcrumb__list a:hover {
      color: #0e7490;
    }

    .case-breadcrumb__list [aria-current='page'] {
      color: var(--text);
      font-weight: 500;
    }

    .case-study-page .case-breadcrumb__list {
      font-size: 0.8125rem;
      line-height: 1.65;
      color: #94a3b8;
    }

    .case-study-page .case-breadcrumb__list a {
      color: #94a3b8;
    }

    .case-study-page .case-breadcrumb__list a:hover {
      color: #0e7490;
    }

    .case-study-page .case-breadcrumb__list [aria-current='page'] {
      color: #475569;
      font-weight: 500;
    }

    .case-study-page .case-breadcrumb__list li:not(:last-child)::after {
      color: #d1d5db;
    }

    .case-hero {
      padding-top: 1.5rem;
      padding-bottom: 2.5rem;
    }

    @media (min-width: 768px) {
      .case-hero {
        padding-bottom: 3rem;
      }
    }

    .case-hero__title {
      margin: 0.75rem 0 0;
      font-size: clamp(1.5rem, 4vw, 2rem);
      font-weight: 700;
      line-height: 1.35;
      letter-spacing: -0.02em;
      color: var(--text);
    }

    .case-hero__lead {
      margin: 1rem 0 0;
      font-size: 0.9375rem;
      line-height: 1.85;
      color: var(--text-muted);
    }

    .case-hero__cta {
      display: flex;
      flex-wrap: wrap;
      gap: 0.75rem;
      margin-top: 1.75rem;
    }

    .case-hero__cta--center {
      justify-content: center;
    }

    .case-section {
      padding-top: 2.5rem;
      padding-bottom: 2.5rem;
      border-top: 1px solid var(--border);
    }

    @media (min-width: 768px) {
      .case-section {
        padding-top: 3rem;
        padding-bottom: 3rem;
      }
    }

    .case-section__title {
      margin: 0;
      font-size: 1.25rem;
      font-weight: 700;
      line-height: 1.4;
      letter-spacing: -0.02em;
      color: var(--text);
    }

    @media (min-width: 768px) {
      .case-section__title {
        font-size: 1.375rem;
      }
    }

    .case-section__lead {
      margin: 0.5rem 0 1.25rem;
      font-size: 0.8125rem;
      font-weight: 500;
      letter-spacing: 0.08em;
      color: #0891b2;
      text-transform: uppercase;
    }

    .case-section__text {
      margin: 1.25rem 0 0;
      font-size: 0.9375rem;
      line-height: 1.9;
      color: var(--text-muted);
    }

    .case-overview {
      margin: 1.25rem 0 0;
      padding: 0;
      border: 1px solid var(--border);
      border-radius: 4px;
      overflow: hidden;
    }

    .case-overview > div {
      display: grid;
      grid-template-columns: minmax(7rem, 9rem) 1fr;
      gap: 0.75rem 1rem;
      padding: 0.875rem 1rem;
      border-bottom: 1px solid var(--border);
      font-size: 0.875rem;
      line-height: 1.7;
    }

    .case-overview > div:last-child {
      border-bottom: none;
    }

    .case-overview dt {
      margin: 0;
      font-weight: 600;
      color: var(--text);
    }

    .case-overview dd {
      margin: 0;
      color: var(--text-muted);
    }

    .case-point-list {
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .case-point {
      padding: 1.25rem 0;
      border-bottom: 1px solid var(--border);
    }

    .case-point:first-child {
      padding-top: 0;
    }

    .case-point:last-child {
      border-bottom: none;
      padding-bottom: 0;
    }

    .case-point__title {
      margin: 0 0 0.5rem;
      font-size: 1rem;
      font-weight: 600;
      color: var(--text);
    }

    .case-point p {
      margin: 0;
      font-size: 0.9375rem;
      line-height: 1.85;
      color: var(--text-muted);
    }

    .case-keyword-list {
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem;
      margin: 1.25rem 0 0;
      padding: 0;
      list-style: none;
    }

    .case-keyword-list li {
      font-size: 0.75rem;
      font-weight: 500;
      padding: 0.35rem 0.65rem;
      border: 1px solid var(--border);
      border-radius: 2px;
      color: #475569;
      background: #fff;
    }

    .case-screenshot {
      margin: 0;
    }

    .case-screenshot img {
      width: 100%;
      height: auto;
      display: block;
      border: 1px solid var(--border);
      border-radius: 4px;
    }

    .case-screenshot__caption {
      margin-top: 0.75rem;
      font-size: 0.8125rem;
      color: var(--text-muted);
      text-align: center;
    }

    .case-screenshot__cta-wrap {
      margin: 1.5rem 0 0;
      text-align: center;
    }

    .case-future-list {
      margin: 1rem 0 0;
      padding-left: 1.25rem;
      font-size: 0.9375rem;
      line-height: 1.9;
      color: var(--text-muted);
    }

    .case-future-list li {
      margin-bottom: 0.35rem;
    }

    .case-cta-block {
      padding-top: 3rem;
      padding-bottom: 4rem;
      border-top: 1px solid var(--border);
      background: var(--surface);
    }

    @media (min-width: 768px) {
      .case-cta-block {
        padding-top: 4rem;
        padding-bottom: 5rem;
      }
    }

    .case-cta-block__title {
      margin: 0;
      font-size: clamp(1.25rem, 3.5vw, 1.5rem);
      font-weight: 700;
      line-height: 1.45;
      color: var(--text);
    }

    .case-cta-block__text {
      margin: 1rem auto 0;
      max-width: 36rem;
      font-size: 0.9375rem;
      line-height: 1.9;
      color: var(--text-muted);
    }

    .case-back {
      margin: 2rem 0 0;
      font-size: 0.875rem;
    }

    .case-back a {
      color: #0891b2;
      text-decoration: none;
    }

    .case-back a:hover {
      text-decoration: underline;
    }

    .case-section--wide {
      max-width: 56rem;
      margin-left: auto;
      margin-right: auto;
    }

    .case-prose-card {
      margin-top: 1.25rem;
      padding: 1.375rem 1.5rem;
      background: #fff;
      border: 1px solid var(--border);
      border-left: 3px solid var(--color-cyan);
      border-radius: 4px;
    }

    .case-prose-card p {
      margin: 0;
      font-size: 0.9375rem;
      line-height: 1.9;
      color: var(--text-muted);
    }

    .case-prose-card p + p {
      margin-top: 1rem;
    }

    .case-plan-card {
      margin-top: 1.25rem;
      padding: 1.25rem 1.5rem;
      background: linear-gradient(
        90deg,
        rgba(0, 163, 196, 0.06),
        rgba(255, 255, 255, 0.95) 48%
      );
      border: 1px solid rgba(0, 163, 196, 0.22);
      border-radius: 4px;
    }

    .case-plan-card__label {
      margin: 0 0 0.35rem;
      font-size: 0.6875rem;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: #0891b2;
    }

    .case-plan-card__name {
      margin: 0;
      font-size: 1.125rem;
      font-weight: 700;
      color: var(--color-navy);
    }

    .case-plan-card__reason {
      margin: 0.5rem 0 0;
      font-size: 0.8125rem;
      line-height: 1.65;
      color: var(--text-muted);
    }

    .case-plan-card__text {
      margin: 0.875rem 0 0;
      font-size: 0.9375rem;
      line-height: 1.85;
      color: var(--text-muted);
    }

    .case-plan-card__text a {
      color: #0e7490;
      font-weight: 500;
      text-decoration: none;
    }

    .case-plan-card__text a:hover {
      text-decoration: underline;
    }

    .case-nav-links--center {
      justify-content: center;
      border-top: none;
      padding-top: 1.5rem;
    }

    .case-points-grid {
      display: grid;
      gap: 1rem;
      margin-top: 1.5rem;
      padding: 0;
      list-style: none;
    }

    @media (min-width: 768px) {
      .case-points-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.125rem;
      }
      .case-points-grid .case-point-card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        max-width: calc(50% - 0.5625rem);
      }
    }

    .case-study-page .text-accent {
      color: #00a3c4;
      font-weight: 500;
    }

    .case-study-page .text-accent-navy {
      color: #0f2441;
      font-weight: 500;
    }

    .case-focus-box {
      margin-bottom: 2rem;
      padding: 1.375rem 1.5rem;
      background: #f0fbfd;
      border: 1px solid rgba(0, 163, 196, 0.18);
      border-left: 3px solid #00a3c4;
      border-radius: 4px;
    }

    .case-focus-box__title {
      margin: 0 0 1rem;
      font-size: 1.0625rem;
      font-weight: 700;
      color: #0f172a;
      letter-spacing: -0.02em;
    }

    .case-focus-box__list {
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .case-focus-box__list li {
      position: relative;
      padding-left: 1rem;
      margin-bottom: 0.625rem;
      font-size: 0.9375rem;
      line-height: 1.75;
      color: #5f7185;
    }

    .case-focus-box__list li:last-child {
      margin-bottom: 0;
    }

    .case-focus-box__list li::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0.65em;
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: #00a3c4;
    }

    .case-overview dt {
      color: #0f172a;
      font-weight: 600;
    }

    .case-overview__row--highlight {
      background: #f4f7fb;
    }

    .case-overview__row--highlight dt {
      color: #0f2441;
    }

    .case-overview__row--highlight dd {
      color: #111827;
      font-weight: 500;
    }

    .case-overview-note {
      margin: 1.25rem 0 0;
      padding: 1rem 1.125rem;
      font-size: 0.9375rem;
      line-height: 1.8;
      color: #5f7185;
      background: #f4f7fb;
      border-left: 3px solid #5f7185;
      border-radius: 0 4px 4px 0;
    }

    .case-plan-card--enhanced {
      border-left-width: 3px;
      border-left-color: #00a3c4;
    }

    .case-plan-card__value {
      margin: 0.625rem 0 0;
      font-size: 0.9375rem;
      font-weight: 500;
      line-height: 1.7;
      color: #0f2441;
    }

    .case-plan-card__tags {
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem;
      margin: 1rem 0 0;
      padding: 0;
      list-style: none;
    }

    .case-plan-tag {
      font-size: 0.6875rem;
      font-weight: 600;
      letter-spacing: 0.04em;
      padding: 0.35rem 0.6rem;
      color: #0f2441;
      background: #e8f8fb;
      border: 1px solid rgba(0, 163, 196, 0.22);
      border-radius: 2px;
    }

    .case-point-card {
      padding: 1.375rem 1.5rem;
      background: #fff;
      border: 1px solid var(--border);
      border-top: 2px solid rgba(0, 163, 196, 0.35);
      border-radius: 4px;
    }

    .case-point-card__category {
      display: inline-block;
      margin-bottom: 0.5rem;
      font-size: 0.625rem;
      font-weight: 600;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: #00a3c4;
    }

    .case-point-card__num {
      display: block;
      margin-bottom: 0.35rem;
      font-size: 0.6875rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      color: #94a3b8;
    }

    .case-point-card__title {
      margin: 0 0 0.5rem;
      font-size: 1.0625rem;
      font-weight: 600;
      line-height: 1.45;
      color: #0f172a;
    }

    .case-point-card__kicker {
      margin: 0 0 0.875rem;
      font-size: 0.8125rem;
      font-weight: 600;
      line-height: 1.55;
      color: #0f2441;
    }

    .case-point-card__body p {
      margin: 0;
      font-size: 0.875rem;
      line-height: 1.85;
      color: var(--text-muted);
    }

    .case-point-card__body p + p {
      margin-top: 0.75rem;
    }

    .case-section--effects {
      background: #f0fbfd;
      border-top: 1px solid rgba(0, 163, 196, 0.12);
      border-bottom: 1px solid rgba(0, 163, 196, 0.12);
    }

    .case-study-page .case-section--effects.section-white,
    .case-study-page .case-section--effects {
      background-color: #f0fbfd;
    }

    .case-section__lead-text {
      margin: 0.75rem 0 0;
      font-size: 0.9375rem;
      line-height: 1.85;
      color: #5f7185;
    }

    .case-effects-grid {
      display: grid;
      gap: 0.875rem;
      margin: 1.5rem 0 0;
      padding: 0;
      list-style: none;
    }

    @media (min-width: 640px) {
      .case-effects-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
      }
    }

    .case-effect-card {
      display: flex;
      align-items: flex-start;
      gap: 0.625rem;
      padding: 1rem 1.125rem;
      background: #fff;
      border: 1px solid rgba(0, 163, 196, 0.15);
      border-radius: 4px;
      font-size: 0.875rem;
      line-height: 1.65;
      color: #475569;
    }

    .case-effect-card--highlight {
      border-color: rgba(0, 163, 196, 0.35);
      background: #fff;
      box-shadow: 0 1px 4px rgba(15, 36, 65, 0.05);
    }

    .case-effect-card--highlight .case-effect-card__text {
      color: #0f172a;
      font-weight: 500;
    }

    .case-effect-card__icon {
      flex-shrink: 0;
      margin-top: 0.15rem;
      color: #00a3c4;
    }

    .case-section--peer {
      background: #f4f7fb;
      border-top: 1px solid var(--border);
    }

    .case-study-page .case-section--peer.section-surface,
    .case-study-page .case-section--peer {
      background-color: #f4f7fb;
    }

    .case-peer-cta {
      padding: 1.75rem 1.625rem;
      background: linear-gradient(
        135deg,
        #f0fbfd 0%,
        #fff 55%,
        #f4f7fb 100%
      );
      border: 1px solid rgba(15, 36, 65, 0.1);
      border-left: 3px solid #0f2441;
      border-radius: 4px;
    }

    .case-peer-cta__label {
      margin: 0 0 0.75rem;
      font-size: 0.625rem;
      font-weight: 600;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: #00a3c4;
    }

    .case-peer-cta__title {
      margin: 0 0 1.25rem;
      font-size: clamp(1.25rem, 3.5vw, 1.5rem);
      font-weight: 700;
      line-height: 1.4;
      letter-spacing: -0.02em;
      color: #0f172a;
    }

    .case-peer-cta__body p {
      margin: 0;
      font-size: 0.9375rem;
      line-height: 1.9;
      color: #5f7185;
    }

    .case-peer-cta__body p + p {
      margin-top: 1rem;
    }

    .case-peer-cta__foot {
      margin: 1.25rem 0 0;
      padding-top: 1.125rem;
      border-top: 1px solid var(--border);
      font-size: 0.9375rem;
      font-weight: 500;
      line-height: 1.7;
      color: #0f2441;
    }

    .case-peer-cta__foot a {
      color: #00a3c4;
      text-decoration: none;
    }

    .case-peer-cta__foot a:hover {
      text-decoration: underline;
    }

    .case-check-list {
      margin: 1.25rem 0 0;
      padding: 0;
      list-style: none;
    }

    .case-check-list li {
      display: flex;
      align-items: flex-start;
      gap: 0.625rem;
      padding: 0.5rem 0;
      font-size: 0.9375rem;
      line-height: 1.7;
      color: var(--text-muted);
      border-bottom: 1px solid var(--border);
    }

    .case-check-list li:last-child {
      border-bottom: none;
    }

    .case-check-list__icon {
      flex-shrink: 0;
      margin-top: 0.2rem;
      color: var(--color-cyan);
    }

    .case-peer-box,
    .case-region-box {
      margin-top: 1.25rem;
      padding: 1.5rem;
      border-radius: 4px;
      border: 1px solid var(--border);
    }

    .case-peer-box {
      background: linear-gradient(
        180deg,
        rgba(15, 36, 65, 0.04) 0%,
        #fff 100%
      );
      border-left: 3px solid var(--color-navy);
    }

    .case-region-box {
      background: #fff;
      border-left: 3px solid var(--color-cyan);
    }

    .case-peer-box p,
    .case-region-box p {
      margin: 0;
      font-size: 0.9375rem;
      line-height: 1.9;
      color: var(--text-muted);
    }

    .case-peer-box p + p,
    .case-region-box p + p {
      margin-top: 1rem;
    }

    .case-nav-links {
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem 1rem;
      margin-top: 1.5rem;
      padding-top: 1.25rem;
      border-top: 1px solid var(--border);
    }

    .case-nav-links a {
      font-size: 0.875rem;
      font-weight: 500;
      color: #0e7490;
      text-decoration: none;
    }

    .case-nav-links a:hover {
      text-decoration: underline;
    }

    .case-cta-block--final {
      background: linear-gradient(
        180deg,
        var(--surface) 0%,
        rgba(238, 242, 246, 0.6) 100%
      );
    }

    .works-list--multi .work-card--split {
      display: block;
      color: inherit;
      cursor: default;
    }

    .works-list--multi .work-card--split:hover .work-card__title {
      color: inherit;
    }

    .work-card__actions {
      display: flex;
      flex-wrap: wrap;
      gap: 0.75rem;
      margin-top: 1.25rem;
    }

    .work-card__btn {
      font-size: 0.8125rem;
      padding: 0.55rem 1.1rem;
    }

    /* ── 保守・運用プラン（PC: 3カラム比較カード） ── */
    .maintenance-section {
      position: relative;
      z-index: 1;
      padding: 5rem 0;
      background: rgba(255, 255, 255, 0.9);
    }

    @media (min-width: 768px) {
      .maintenance-section {
        padding: 7.5rem 0;
      }
    }

    .maintenance-section .section-header > .section-lead,
    .maintenance-section .section-header > .maintenance-section__lead {
      max-width: 57.5rem;
    }

    .maintenance-list,
    .maintenance-plans {
      display: grid;
      grid-template-columns: 1fr;
      gap: 1.25rem;
      margin-top: 3rem;
      align-items: stretch;
    }

    .maintenance-row {
      --maint-accent: rgba(0, 163, 196, 0.55);
      display: flex;
      flex-direction: column;
      height: 100%;
      min-width: 0;
      padding: 1.75rem 1.5rem 2rem;
      border: 1px solid rgba(15, 23, 42, 0.1);
      border-top: 3px solid var(--maint-accent);
      border-radius: 4px;
      background: rgba(255, 255, 255, 0.72);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      box-shadow: 0 1px 3px rgba(15, 36, 65, 0.04);
    }

    .maintenance-row--recommended {
      --maint-accent: var(--color-cyan);
      background: rgba(255, 255, 255, 0.88);
      box-shadow:
        0 1px 3px rgba(15, 36, 65, 0.06),
        0 0 0 1px rgba(0, 163, 196, 0.08);
    }

    .maintenance-number {
      display: block;
      margin-bottom: 0.875rem;
      color: var(--color-cyan);
      font-size: 0.75rem;
      font-weight: 800;
      letter-spacing: 0.14em;
      font-family: 'Inter', sans-serif;
    }

    .maintenance-badge {
      display: inline-block;
      margin: 0 0 0.75rem;
      padding: 0.3rem 0.6rem;
      background: var(--color-cyan);
      color: #fff;
      font-size: 0.6875rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      border-radius: 2px;
    }

    .maintenance-head {
      margin-bottom: 1.125rem;
      padding-bottom: 1rem;
      border-bottom: 1px solid rgba(15, 36, 65, 0.1);
    }

    .maintenance-head__title {
      margin: 0 0 0.75rem;
      color: var(--color-navy);
      font-size: 1.2rem;
      line-height: 1.4;
      font-weight: 600;
    }

    .maintenance-catch {
      margin: 0;
      color: var(--text-muted);
      font-size: 0.8125rem;
      line-height: 1.65;
      max-width: none;
    }

    .maintenance-body {
      display: flex;
      flex-direction: column;
      flex: 1;
      min-width: 0;
    }

    .maintenance-desc {
      margin: 0 0 1.25rem;
      color: var(--color-text);
      font-size: 0.875rem;
      line-height: 1.85;
    }

    .maintenance-detail {
      display: grid;
      grid-template-columns: 1fr;
      gap: 1.25rem;
      margin-top: 0.25rem;
    }

    .maintenance-detail h4 {
      margin: 0 0 0.625rem;
      color: var(--color-navy);
      font-size: 0.6875rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .maintenance-detail ul {
      margin: 0;
      padding-left: 1.1em;
    }

    .maintenance-detail li {
      margin-bottom: 0.5rem;
      color: var(--color-text);
      font-size: 0.8125rem;
      line-height: 1.65;
    }

    .maintenance-detail li:last-child {
      margin-bottom: 0;
    }

    .maintenance-price-area {
      margin-top: auto;
      padding-top: 1.375rem;
      border-top: 1px solid rgba(15, 36, 65, 0.08);
      text-align: left;
    }

    .maintenance-price {
      margin: 0 0 1.25rem;
      color: var(--color-navy);
      font-size: 1.625rem;
      font-weight: 700;
      line-height: 1.2;
      font-family: 'Inter', 'Noto Sans JP', sans-serif;
      letter-spacing: -0.02em;
    }

    .maintenance-price span {
      display: inline;
      margin-top: 0;
      margin-left: 0.25rem;
      font-size: 0.75rem;
      font-weight: 600;
      color: rgba(15, 36, 65, 0.62);
      letter-spacing: 0;
    }

    .maintenance-row__cta {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      min-width: 0;
      margin: 0;
      padding: 0.8125rem 1.25rem;
      font-size: 0.8125rem;
      font-weight: 600;
      border-radius: 0.5rem;
      line-height: 1.4;
    }

    .maintenance-note {
      margin-top: 2.5rem;
      padding-top: 1.75rem;
      border-top: 1px solid rgba(15, 36, 65, 0.12);
      max-width: 52rem;
    }

    .maintenance-note p {
      margin: 0;
      color: var(--color-text);
      font-size: 0.9375rem;
      line-height: 1.95;
    }

    .maintenance-cta {
      margin-top: 3rem;
      padding-top: 2.25rem;
      border-top: 1px solid rgba(15, 36, 65, 0.12);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 2.5rem;
    }

    .maintenance-cta__title {
      margin: 0 0 0.75rem;
      color: var(--color-navy);
      font-size: 1.125rem;
      font-weight: 600;
      line-height: 1.4;
    }

    .maintenance-cta__lead {
      margin: 0;
      color: var(--color-text);
      font-size: 0.9375rem;
      line-height: 1.95;
      max-width: 40rem;
    }

    .maintenance-cta__btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 15rem;
      padding: 0.875rem 1.5rem;
      font-size: 0.875rem;
      font-weight: 600;
      border-radius: 0.5rem;
      white-space: nowrap;
    }

    @media (min-width: 769px) {
      .maintenance-list,
      .maintenance-plans {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.5rem;
        margin-top: 4rem;
      }

      .maintenance-row {
        padding: 2rem 1.625rem 2.25rem;
      }

      .maintenance-head__title {
        font-size: 1.125rem;
      }

      .maintenance-desc {
        font-size: 0.8125rem;
        line-height: 1.8;
        margin-bottom: 1.125rem;
      }

      .maintenance-price {
        font-size: 1.75rem;
        margin-bottom: 1.375rem;
      }

      .maintenance-price-area {
        padding-top: 1.5rem;
      }
    }

    @media (max-width: 768px) {
      .maintenance-list,
      .maintenance-plans {
        gap: 1.25rem;
        margin-top: 2.5rem;
      }

      .maintenance-row {
        padding: 1.625rem 1.375rem 1.75rem;
      }

      .maintenance-head__title {
        font-size: 1.2rem;
      }

      .maintenance-cta {
        flex-direction: column;
        align-items: flex-start;
        gap: 1.5rem;
      }

      .maintenance-cta__btn {
        width: 100%;
        min-width: 0;
      }
    }

    @media (max-width: 767px) {
      .maintenance-section {
        padding: 5rem 0;
      }

      .maintenance-list,
      .maintenance-plans {
        gap: 1.25rem;
      }

      .maintenance-head__title {
        font-size: 1.15rem;
      }

      .maintenance-catch,
      .maintenance-desc,
      .maintenance-detail li,
      .maintenance-note p,
      .maintenance-cta__lead {
        line-height: 1.85;
      }

      .maintenance-desc {
        font-size: 0.875rem;
      }

      .maintenance-price {
        font-size: 1.45rem;
      }

      .maintenance-note {
        margin-top: 2rem;
      }

      .maintenance-cta {
        margin-top: 2.5rem;
        padding-top: 1.75rem;
      }
    }

    /* =====================================================
       SEO landing: chusho-kigyo-homepage.php
    ===================================================== */
    .seo-landing-page.chusho-homepage main {
      position: relative;
      z-index: 1;
    }

    .chusho-breadcrumb {
      padding: 1.25rem 0 0;
      position: relative;
      z-index: 1;
    }

    .chusho-breadcrumb .case-breadcrumb__list {
      font-size: 0.8125rem;
    }

    .chusho-hero {
      padding: 2.5rem 0 4rem;
      background: #fff;
      border-bottom: 1px solid #e2e8f0;
    }

    @media (min-width: 768px) {
      .chusho-hero {
        padding: 3rem 0 5rem;
      }
    }

    .chusho-hero__body {
      max-width: 42rem;
      font-size: 0.9375rem;
      line-height: 1.9;
      color: #475569;
      margin-bottom: 2rem;
    }

    .chusho-hero__cta,
    .chusho-section-cta,
    .chusho-final__cta {
      display: flex;
      flex-wrap: wrap;
      gap: 0.875rem 1rem;
      align-items: center;
    }

    .chusho-section {
      padding: 4rem 0;
      border-bottom: 1px solid #e2e8f0;
    }

    @media (min-width: 768px) {
      .chusho-section {
        padding: 5rem 0;
      }
    }

    .chusho-intro,
    .chusho-body-text {
      font-size: 0.9375rem;
      line-height: 1.9;
      color: #475569;
      max-width: 42rem;
      margin-bottom: 2rem;
    }

    .chusho-list {
      list-style: none;
      padding: 0;
      margin: 0;
      max-width: 36rem;
    }

    .chusho-list li {
      padding: 0.875rem 0;
      border-top: 1px solid #e2e8f0;
      font-size: 0.9375rem;
      line-height: 1.75;
      color: #334155;
    }

    .chusho-list li:last-child {
      border-bottom: 1px solid #e2e8f0;
    }

    .chusho-list--grid {
      max-width: none;
      display: grid;
      gap: 0;
    }

    @media (min-width: 640px) {
      .chusho-list--grid {
        grid-template-columns: repeat(2, 1fr);
      }

      .chusho-list--grid li:nth-child(odd) {
        padding-right: 1.5rem;
      }
    }

    .chusho-industry-list {
      margin: 0;
      padding: 0;
    }

    .chusho-industry-item {
      padding: 1.5rem 0;
      border-top: 1px solid #e2e8f0;
    }

    .chusho-industry-item:last-child {
      border-bottom: 1px solid #e2e8f0;
    }

    .chusho-industry-item dt {
      font-size: 1.0625rem;
      font-weight: 600;
      color: #0f172a;
      margin-bottom: 0.5rem;
    }

    .chusho-industry-item dd {
      margin: 0;
      font-size: 0.9375rem;
      line-height: 1.85;
      color: #475569;
    }

    .chusho-industry-link {
      margin: 0.75rem 0 0;
      font-size: 0.875rem;
    }

    .chusho-industry-link a {
      color: #0891b2;
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .chusho-industry-link a:hover {
      color: #0e7490;
    }

    .chusho-plan-table {
      display: grid;
      gap: 0;
      border-top: 1px solid #e2e8f0;
      margin-bottom: 1.5rem;
    }

    @media (min-width: 768px) {
      .chusho-plan-table {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    .chusho-plan-row {
      padding: 1.5rem 0;
      border-bottom: 1px solid #e2e8f0;
    }

    @media (min-width: 768px) {
      .chusho-plan-row:nth-child(odd) {
        padding-right: 2rem;
        border-right: 1px solid #e2e8f0;
      }

      .chusho-plan-row:nth-child(even) {
        padding-left: 2rem;
      }
    }

    .chusho-plan-row--featured .chusho-plan-name::after {
      content: '人気';
      display: inline-block;
      margin-left: 0.5rem;
      font-size: 0.6875rem;
      font-weight: 600;
      letter-spacing: 0.05em;
      color: #0891b2;
      border: 1px solid #67e8f9;
      padding: 0.125rem 0.5rem;
      border-radius: 999px;
      vertical-align: middle;
    }

    .chusho-plan-name {
      font-size: 1.0625rem;
      font-weight: 600;
      color: #0f172a;
      margin: 0 0 0.375rem;
    }

    .chusho-plan-price {
      font-size: 1.375rem;
      font-weight: 700;
      color: #0f172a;
      margin: 0 0 0.625rem;
    }

    .chusho-plan-price span {
      font-size: 0.8125rem;
      font-weight: 500;
      color: #64748b;
    }

    .chusho-plan-price--consult {
      font-size: 1.25rem;
    }

    .chusho-plan-desc {
      margin: 0;
      font-size: 0.875rem;
      line-height: 1.8;
      color: #64748b;
    }

    .chusho-plan-note {
      font-size: 0.875rem;
      margin-bottom: 1.75rem;
    }

    .chusho-plan-note a {
      color: #0891b2;
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .chusho-maint-list {
      list-style: none;
      padding: 0;
      margin: 0 0 1.5rem;
    }

    .chusho-maint-list > li {
      padding: 1.5rem 0;
      border-top: 1px solid #e2e8f0;
    }

    .chusho-maint-list > li:last-child {
      border-bottom: 1px solid #e2e8f0;
    }

    .chusho-maint-list h3 {
      font-size: 1.0625rem;
      font-weight: 600;
      color: #0f172a;
      margin: 0 0 0.375rem;
    }

    .chusho-maint-price {
      font-size: 1.125rem;
      font-weight: 600;
      color: #0f172a;
      margin: 0 0 0.5rem;
    }

    .chusho-maint-list p {
      font-size: 0.9375rem;
      line-height: 1.85;
      color: #475569;
      margin: 0 0 0.625rem;
    }

    .chusho-maint-list a {
      font-size: 0.875rem;
      color: #0891b2;
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .chusho-work {
      padding: 1.5rem 0;
      border-top: 1px solid #e2e8f0;
    }

    .chusho-work:last-of-type {
      border-bottom: 1px solid #e2e8f0;
    }

    .chusho-work__title {
      font-size: 1.0625rem;
      font-weight: 600;
      color: #0f172a;
      margin: 0 0 1rem;
    }

    .chusho-work__links {
      display: flex;
      flex-wrap: wrap;
      gap: 0.75rem 1.25rem;
      align-items: center;
    }

    .chusho-text-link {
      font-size: 0.875rem;
      color: #0891b2;
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .chusho-text-link:hover {
      color: #0e7490;
    }

    .chusho-faq {
      margin: 0;
      padding: 0;
    }

    .chusho-faq__item {
      padding: 1.25rem 0;
      border-top: 1px solid #e2e8f0;
    }

    .chusho-faq__item:last-child {
      border-bottom: 1px solid #e2e8f0;
    }

    .chusho-faq__item dt {
      font-size: 1rem;
      font-weight: 600;
      color: #0f172a;
      margin-bottom: 0.625rem;
      line-height: 1.6;
    }

    .chusho-faq__item dd {
      margin: 0;
      font-size: 0.9375rem;
      line-height: 1.9;
      color: #475569;
    }

    .chusho-final {
      padding: 4rem 0 5rem;
      background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
    }

    .chusho-final__box {
      max-width: 40rem;
      padding: 2rem 0;
      border-top: 2px solid #0f172a;
    }

    .chusho-final__title {
      font-size: clamp(1.25rem, 3vw, 1.5rem);
      font-weight: 700;
      color: #0f172a;
      line-height: 1.5;
      margin: 0 0 1rem;
    }

    .chusho-final__box > p {
      font-size: 0.9375rem;
      line-height: 1.9;
      color: #475569;
      margin-bottom: 1.75rem;
    }

    .seo-inbound-link-wrap {
      text-align: center;
      margin-top: 2rem;
      padding-top: 1.5rem;
      border-top: 1px solid #e2e8f0;
    }

    .seo-inbound-link {
      display: inline-block;
      font-size: 0.875rem;
      color: #0891b2;
      text-decoration: underline;
      text-underline-offset: 3px;
      transition: color 0.2s;
    }

    .seo-inbound-link:hover {
      color: #0e7490;
    }

    .footer-seo-link {
      margin-top: 0.75rem;
      font-size: 0.8125rem;
    }

    .footer-seo-link a {
      color: #94a3b8;
      text-decoration: underline;
      text-underline-offset: 2px;
    }

    .footer-seo-link a:hover {
      color: #cbd5e1;
    }

    .seo-inbound-links {
      margin-top: 2rem;
      padding-top: 1.5rem;
      border-top: 1px solid #e2e8f0;
    }

    .seo-inbound-links .seo-inbound-link-wrap {
      margin-top: 0;
      padding-top: 0;
      border-top: none;
      text-align: center;
    }

    .seo-inbound-links .seo-inbound-link-wrap + .seo-inbound-link-wrap {
      margin-top: 0.625rem;
    }

    .footer-seo-links .footer-seo-link + .footer-seo-link {
      margin-top: 0.35rem;
    }

    .chusho-related-links {
      list-style: none;
      margin: 0;
      padding: 0;
      max-width: 36rem;
    }

    .chusho-related-links li {
      padding: 0.75rem 0;
      border-top: 1px solid #e2e8f0;
      font-size: 0.9375rem;
    }

    .chusho-related-links li:last-child {
      border-bottom: 1px solid #e2e8f0;
    }

    .chusho-related-links a {
      color: #0891b2;
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .chusho-related-links a:hover {
      color: #0e7490;
    }

    .chusho-timeline {
      margin: 0;
      padding: 0;
      max-width: 28rem;
    }

    .chusho-timeline__item {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      gap: 0.5rem 1rem;
      padding: 0.875rem 0;
      border-top: 1px solid #e2e8f0;
    }

    .chusho-timeline__item:last-child {
      border-bottom: 1px solid #e2e8f0;
    }

    .chusho-timeline__item dt {
      font-weight: 600;
      color: #0f172a;
      font-size: 0.9375rem;
    }

    .chusho-timeline__item dd {
      margin: 0;
      font-size: 0.9375rem;
      color: #475569;
      font-weight: 500;
    }

    .chusho-notice {
      margin-top: 1.25rem;
      font-size: 0.875rem;
      line-height: 1.85;
      color: #64748b;
      max-width: 42rem;
    }

    /* ── SEOサービス下層ページ（予算・短納期） ── */
    .seo-service-page .site-bg-motion {
      display: none;
    }

    .seo-service-main {
      position: relative;
      z-index: 1;
      background: #fff;
    }

    .seo-service-breadcrumb {
      padding: 1rem 0 0;
      background: #fff;
      border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    }

    .seo-service-breadcrumb .case-breadcrumb__list {
      font-size: 0.8125rem;
    }

    .seo-service-page .section-wrap {
      padding-top: 0;
      padding-bottom: 0;
    }

    .seo-service-inner {
      max-width: 1120px;
      margin: 0 auto;
      padding: 0 clamp(20px, 5vw, 48px);
    }

    .seo-service-hero {
      position: relative;
      overflow: hidden;
      padding: clamp(72px, 9vw, 120px) 0;
      background:
        radial-gradient(circle at 82% 18%, rgba(0, 163, 196, 0.1), transparent 34%),
        linear-gradient(135deg, #f8fafc 0%, #eef6f9 52%, #ffffff 100%);
      border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    }

    .seo-service-hero .sec-eye {
      display: block;
      margin-bottom: 1rem;
    }

    .seo-service-hero__title {
      font-size: clamp(1.75rem, 4.5vw, 2.75rem);
      font-weight: 700;
      line-height: 1.3;
      letter-spacing: -0.03em;
      color: var(--color-navy);
      max-width: 760px;
      margin: 0;
    }

    .seo-service-hero__lead {
      margin-top: 1.75rem;
      max-width: 720px;
      font-size: clamp(1rem, 1.4vw, 1.125rem);
      line-height: 1.9;
      color: rgba(15, 23, 42, 0.72);
    }

    .seo-service-hero__body {
      margin-top: 1.25rem;
      max-width: 720px;
      font-size: 0.9375rem;
      line-height: 1.95;
      color: rgba(15, 23, 42, 0.62);
    }

    .seo-service-hero__actions {
      margin-top: 2.25rem;
      display: flex;
      flex-wrap: wrap;
      gap: 0.875rem;
    }

    .seo-service-hero__note {
      margin-top: 1.5rem;
      max-width: 720px;
      font-size: 0.875rem;
      line-height: 1.8;
      color: rgba(15, 23, 42, 0.55);
      padding-top: 1.25rem;
      border-top: 1px solid rgba(15, 23, 42, 0.08);
    }

    .seo-service-section {
      padding: clamp(72px, 8vw, 110px) 0;
      border-top: 1px solid rgba(15, 23, 42, 0.08);
      background: #fff;
    }

    .seo-service-section--surface {
      background: #f8fafc;
    }

    .seo-service-section-head {
      margin-bottom: clamp(1.5rem, 3vw, 2rem);
      max-width: 880px;
    }

    .seo-service-section-head .sec-eye {
      display: block;
      margin-bottom: 0.75rem;
    }

    .seo-service-section__title {
      font-size: clamp(1.375rem, 3vw, 1.875rem);
      font-weight: 700;
      line-height: 1.35;
      letter-spacing: -0.03em;
      color: var(--color-navy);
      margin: 0;
    }

    .seo-service-section__lead {
      margin-top: 1rem;
      max-width: 760px;
      font-size: 0.9375rem;
      line-height: 1.9;
      color: rgba(15, 23, 42, 0.66);
    }

    .seo-service-body {
      max-width: 760px;
      font-size: 0.9375rem;
      line-height: 1.95;
      color: rgba(15, 23, 42, 0.66);
      margin: 0;
    }

    .seo-service-body--spaced {
      margin-top: 1.75rem;
    }

    .seo-service-hero__note a {
      color: var(--color-cyan);
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .seo-service-hero__note a:hover {
      color: #0e7490;
    }

    .seo-service-body + .seo-service-body,
    .seo-service-body + .seo-service-list,
    .seo-service-section__lead + .seo-service-list {
      margin-top: 0;
    }

    .seo-service-body p,
    .seo-service-prose p {
      margin: 0 0 1.25rem;
    }

    .seo-service-prose p:last-child {
      margin-bottom: 0;
    }

    .seo-service-emphasis {
      margin-top: 1.5rem;
      max-width: 760px;
      font-size: 0.875rem;
      line-height: 1.85;
      color: rgba(15, 23, 42, 0.55);
    }

    .seo-service-emphasis strong {
      color: var(--color-navy);
      font-weight: 600;
    }

    .seo-service-list {
      display: grid;
      gap: 0;
      max-width: 880px;
      margin: 2rem 0 0;
      padding: 0;
      list-style: none;
      border-top: 1px solid rgba(15, 23, 42, 0.08);
    }

    .seo-service-list li {
      padding: 1rem 0;
      border-bottom: 1px solid rgba(15, 23, 42, 0.08);
      font-size: 0.9375rem;
      line-height: 1.75;
      color: rgba(15, 23, 42, 0.72);
    }

    .seo-service-list--grid {
      grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
      gap: 0 1.5rem;
      border-top: none;
    }

    .seo-service-list--grid li {
      border-bottom: 1px solid rgba(15, 23, 42, 0.08);
      padding-left: 0;
    }

    .seo-service-body + .seo-service-list--grid {
      margin-top: 1.5rem;
    }

    .seo-service-compare {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 0;
      max-width: 1000px;
      margin-top: 2rem;
      border-top: 1px solid rgba(15, 23, 42, 0.08);
      border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    }

    .seo-service-compare__col {
      padding: 2rem;
    }

    .seo-service-compare__col + .seo-service-compare__col {
      border-left: 1px solid rgba(15, 23, 42, 0.08);
    }

    .seo-service-compare__heading {
      font-size: 1rem;
      font-weight: 700;
      color: var(--color-navy);
      margin: 0 0 1.25rem;
    }

    .seo-service-compare__col ul {
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .seo-service-compare__col li {
      position: relative;
      padding: 0.5rem 0 0.5rem 1rem;
      font-size: 0.875rem;
      line-height: 1.75;
      color: rgba(15, 23, 42, 0.66);
    }

    .seo-service-compare__col li::before {
      content: "·";
      position: absolute;
      left: 0;
      color: rgba(15, 23, 42, 0.35);
    }

    .seo-service-plan-box {
      max-width: 760px;
      margin-top: 2rem;
      padding: 2rem;
      background: #fff;
      border: 1px solid rgba(15, 23, 42, 0.08);
      border-left: 3px solid var(--color-cyan);
      border-radius: 6px;
    }

    .seo-service-section--surface .seo-service-plan-box {
      background: #fff;
    }

    .seo-service-plan-box__name {
      font-size: 1.125rem;
      font-weight: 700;
      color: var(--color-navy);
      margin: 0 0 0.5rem;
    }

    .seo-service-plan-box__price {
      font-size: 1.375rem;
      font-weight: 700;
      color: var(--color-navy);
      margin: 0 0 1rem;
    }

    .seo-service-plan-box__tax {
      font-size: 0.875rem;
      font-weight: 500;
      color: #64748b;
    }

    .seo-service-plan-box__desc {
      font-size: 0.9375rem;
      line-height: 1.9;
      color: rgba(15, 23, 42, 0.66);
      margin: 0 0 1.5rem;
    }

    .seo-service-plan-box__actions {
      display: flex;
      flex-wrap: wrap;
      gap: 0.875rem;
    }

    .seo-service-related {
      margin: 2rem 0 0;
      padding: 0;
      list-style: none;
      max-width: 760px;
      border-top: 1px solid rgba(15, 23, 42, 0.08);
    }

    .seo-service-related li {
      padding: 0.875rem 0;
      border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    }

    .seo-service-related a {
      color: #0891b2;
      font-size: 0.9375rem;
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .seo-service-related a:hover {
      color: #0e7490;
    }

    .seo-service-faq {
      padding: clamp(72px, 8vw, 110px) 0;
      background: #fff;
      border-top: 1px solid rgba(15, 23, 42, 0.08);
    }

    .seo-service-faq .chusho-faq {
      max-width: 760px;
      margin-top: 2rem;
    }

    .seo-service-final-cta {
      padding: clamp(80px, 9vw, 120px) 0;
      background: var(--color-navy);
      color: #fff;
    }

    .seo-service-final-cta__inner {
      max-width: 40rem;
    }

    .seo-service-final-cta__title {
      font-size: clamp(1.375rem, 3vw, 1.75rem);
      font-weight: 700;
      line-height: 1.45;
      color: #fff;
      margin: 0 0 1.25rem;
    }

    .seo-service-final-cta__body {
      font-size: 0.9375rem;
      line-height: 1.9;
      color: rgba(248, 250, 252, 0.82);
      margin: 0 0 2rem;
    }

    .seo-service-final-cta__actions {
      display: flex;
      flex-wrap: wrap;
      gap: 0.875rem;
    }

    .seo-service-final-cta .btn-primary {
      background: #0891b2;
    }

    .seo-service-final-cta .btn-primary:hover {
      background: #0e7490;
    }

    .seo-service-final-cta .btn-secondary {
      background: transparent;
      color: #fff;
      border-color: rgba(255, 255, 255, 0.45);
    }

    .seo-service-final-cta .btn-secondary:hover {
      border-color: #22d3ee;
      color: #22d3ee;
      background: rgba(255, 255, 255, 0.06);
    }

    @media (max-width: 768px) {
      .seo-service-compare {
        grid-template-columns: 1fr;
      }

      .seo-service-compare__col + .seo-service-compare__col {
        border-left: none;
        border-top: 1px solid rgba(15, 23, 42, 0.08);
      }

      .seo-service-hero__actions,
      .seo-service-plan-box__actions,
      .seo-service-final-cta__actions {
        flex-direction: column;
      }

      .seo-service-hero__actions .btn-primary,
      .seo-service-hero__actions .btn-secondary,
      .seo-service-plan-box__actions .btn-primary,
      .seo-service-plan-box__actions .btn-secondary,
      .seo-service-final-cta__actions .btn-primary,
      .seo-service-final-cta__actions .btn-secondary {
        width: 100%;
        justify-content: center;
      }
    }

    /* ── 強調ユーティリティ（クラス指定時のみ） ── */
    .text-accent {
      color: var(--color-cyan);
      font-weight: 700;
    }

    .text-navy-strong {
      color: var(--color-navy);
      font-weight: 700;
    }

    .marker-accent {
      background: linear-gradient(
        transparent 62%,
        rgba(0, 163, 196, 0.18) 62%
      );
      padding: 0 0.08em;
    }

    .price-emphasis {
      color: var(--color-navy);
      font-weight: 800;
      letter-spacing: -0.03em;
    }

    .keyword-row {
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem 1rem;
      align-items: center;
      margin-top: clamp(32px, 5vw, 56px);
    }

    .keyword-row span {
      position: relative;
      color: var(--color-navy);
      font-weight: 700;
    }

    .keyword-row span::after {
      content: "";
      display: inline-block;
      width: 0.35em;
      height: 0.35em;
      margin-left: 0.75rem;
      border-radius: 999px;
      background: rgba(0, 163, 196, 0.6);
      vertical-align: middle;
    }

    .keyword-row span:last-child::after {
      display: none;
    }

    /* =====================================================
       トップページ：Apple風・広い余白・薄い区切り
    ===================================================== */
    .site-page {
      background: #fff;
    }

    body:has(.site-page) {
      background: #fff;
    }

    .site-page .section-inner,
    .site-page .section-wide,
    .site-page main > section > .max-w-6xl,
    .site-page main > section > .max-w-7xl,
    .site-page main > section > div > .max-w-6xl {
      max-width: 1120px;
      margin-left: auto;
      margin-right: auto;
      padding-left: clamp(20px, 5vw, 48px);
      padding-right: clamp(20px, 5vw, 48px);
    }

    .site-page .section-narrow {
      max-width: 760px;
      margin-left: auto;
      margin-right: auto;
    }

    .site-page .section-medium {
      max-width: 880px;
      margin-left: auto;
      margin-right: auto;
    }

    .site-page .section-wide {
      max-width: 1120px;
    }

    .site-page #industries.section-wrap {
      padding-bottom: clamp(80px, 10vw, 150px);
    }

    .site-page .section-wrap {
      padding-top: clamp(64px, 8vw, 120px);
      padding-bottom: clamp(64px, 8vw, 120px);
    }

    .site-page .section-surface {
      background: #f6f8fa;
    }

    .site-page .section-header {
      margin-bottom: clamp(28px, 4vw, 48px);
    }

    .site-page .section-header > .section-title {
      font-weight: 700;
      line-height: 1.35;
      letter-spacing: -0.04em;
    }

    .site-page .section-header > .section-title + .section-lead,
    .site-page .section-header > .section-lead {
      margin-top: clamp(1rem, 2.5vw, 1.5rem);
      font-size: clamp(0.9375rem, 1.6vw, 1.0625rem);
      line-height: 1.85;
      max-width: none;
    }

    .site-page .text-link-inline {
      color: var(--color-navy);
      font-weight: 600;
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .site-page .text-link-inline:hover {
      color: var(--color-cyan);
    }

    .site-page .section-header .sec-eye::before {
      background: rgba(15, 23, 42, 0.12);
    }

    .site-page .section-header .sec-eye {
      color: rgba(71, 85, 105, 0.65);
    }

    /* Hero */
    .site-page #hero.hero-section,
    .site-page #hero.hero {
      min-height: calc(100vh - 90px);
      display: flex;
      align-items: center;
      padding-top: clamp(100px, 14vh, 160px);
      padding-bottom: clamp(80px, 12vh, 120px);
      background: #fff;
    }

    .site-page #hero .hero-inner {
      width: 100%;
    }

    .site-page .hero-bg-logo {
      opacity: 1;
      filter: drop-shadow(0 18px 28px rgba(15, 23, 42, 0.18));
      mix-blend-mode: normal;
      top: 50%;
      left: auto;
      right: clamp(4rem, 9vw, 9rem);
      transform: translateY(-50%);
      width: clamp(16rem, 40vw, 38rem);
      max-width: 38vw;
    }

    @media (min-width: 1024px) {
      .site-page .hero-bg-logo {
        right: clamp(5rem, 10vw, 10rem);
        width: clamp(17.5rem, 43vw, 42rem);
        max-width: 34vw;
      }
    }

    .site-page .hero-pitch {
      max-width: 760px;
    }

    .site-page .hero-eyebrow {
      margin-bottom: clamp(1.25rem, 3vw, 2rem);
    }

    .site-page .hero-title {
      margin: 0;
      max-width: 760px;
      font-family: "Noto Serif JP", serif;
      font-size: clamp(2.8rem, 5.4vw, 4.9rem);
      font-weight: 600;
      line-height: 1.18;
      letter-spacing: -0.03em;
      color: var(--color-navy);
    }

    .site-page .hero-title .hero-line {
      display: block;
      white-space: nowrap;
    }

    .site-page .hero-title .hero-line--1 {
      margin-left: 0;
    }

    .site-page .hero-title .hero-line--2 {
      margin-left: clamp(28px, 6vw, 110px);
    }

    .site-page .hero-title .text-navy-strong,
    .site-page .hero-title .hero-line--2 {
      font-weight: 600;
      color: var(--color-navy);
    }

    .site-page .hero-keywords.keyword-row {
      margin-top: clamp(32px, 4vw, 52px);
      margin-bottom: 0;
      font-size: clamp(0.95rem, 1.3vw, 1.15rem);
      font-weight: 700;
    }

    .site-page .hero-subcopy {
      margin-top: clamp(24px, 3vw, 36px);
      margin-bottom: 0;
      max-width: 36rem;
      font-size: clamp(1.1rem, 1.6vw, 1.35rem);
      line-height: 1.8;
      color: rgba(71, 85, 105, 0.88);
    }

    .site-page .hero-actions {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 1rem 1.5rem;
      margin-top: clamp(36px, 4vw, 56px);
    }

    .site-page .hero-cta-dark {
      background: #0f172a;
      color: #fff;
      padding: 1rem 1.75rem;
      font-size: 0.875rem;
      border-radius: 999px;
      box-shadow: none;
    }

    .site-page .hero-cta-dark:hover {
      background: #1e293b;
      transform: none;
      box-shadow: none;
    }

    .site-page .hero-cta-ghost {
      color: #0f172a;
      font-size: 0.875rem;
      font-weight: 500;
      text-decoration: none;
      padding: 0.5rem 0;
      border-bottom: 1px solid rgba(15, 23, 42, 0.2);
      transition: border-color 0.2s ease;
    }

    .site-page .hero-cta-ghost:hover {
      border-color: #0f172a;
    }

    /* Stats */
    .site-page .stats-strip {
      background: #0f172a;
    }

    .site-page .stat-item {
      padding: clamp(28px, 4vw, 48px) clamp(1.5rem, 3vw, 3rem);
      justify-content: center;
      align-items: center;
    }

    @media (max-width: 768px) {
      .site-page .stat-item {
        justify-content: initial;
        align-items: center;
        padding: 1.5rem 0;
      }
    }

    /* Features */
    .site-page .feature-item {
      padding-top: clamp(20px, 3vw, 32px);
      padding-bottom: clamp(20px, 3vw, 32px);
    }

    .site-page .feature-footer {
      margin-top: clamp(2rem, 4vw, 3rem);
      padding-top: clamp(1.5rem, 3vw, 2rem);
      border-top: 1px solid rgba(15, 23, 42, 0.08);
    }

    /* Pricing — 概要表示 */
    .site-page .price-notice {
      margin: 0 0 clamp(2rem, 4vw, 2.75rem);
      padding: clamp(1rem, 2vw, 1.25rem) 0;
      font-size: 0.875rem;
      line-height: 1.85;
      color: #475569;
      border-top: 1px solid rgba(15, 23, 42, 0.08);
      border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    }

    .site-page .price-notice a {
      color: var(--color-navy);
      font-weight: 600;
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .site-page .price-notice a:hover {
      color: var(--color-cyan);
    }

    .site-page .pricing-block-title {
      margin: 0 0 clamp(1rem, 2vw, 1.25rem);
      font-size: 0.8125rem;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: rgba(71, 85, 105, 0.7);
    }

    .site-page .pricing-block-title--spaced {
      margin-top: clamp(2.5rem, 5vw, 3.5rem);
      padding-top: clamp(2rem, 4vw, 2.75rem);
      border-top: 1px solid rgba(15, 23, 42, 0.08);
    }

    .site-page .pricing-block-lead {
      margin: 0 0 clamp(1.25rem, 2.5vw, 1.75rem);
      font-size: 0.9375rem;
      line-height: 1.85;
      color: #475569;
    }

    .site-page .pricing-footnote {
      margin: clamp(0.75rem, 2vw, 1rem) 0 0;
      font-size: 0.6875rem;
      color: rgba(100, 116, 139, 0.9);
      text-align: center;
    }

    /* トップ：料金プラン概要（横並び） */
    .site-page .pricing-grid--overview,
    .site-page .maintenance-plans--overview {
      align-items: stretch;
    }

    .site-page .pricing-grid--overview {
      display: grid;
      grid-template-columns: 1fr;
      gap: 0;
      margin-top: clamp(2rem, 4vw, 3rem);
      border: 1px solid rgba(15, 23, 42, 0.08);
      border-radius: 6px;
      overflow: hidden;
    }

    @media (min-width: 640px) {
      .site-page .pricing-grid--overview {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (min-width: 1024px) {
      .site-page .pricing-grid--overview {
        grid-template-columns: repeat(4, minmax(0, 1fr));
      }
    }

    .site-page .pricing-grid--overview .plan-block,
    .site-page .maintenance-plans--overview .maintenance-row {
      display: flex;
      flex-direction: column;
      gap: 0;
      padding: clamp(1.25rem, 2.5vw, 1.75rem);
      background: #fff;
      border: none;
      border-bottom: 1px solid rgba(15, 23, 42, 0.08);
      border-right: 1px solid rgba(15, 23, 42, 0.08);
      border-radius: 0;
      box-shadow: none;
      border-top: none;
      height: 100%;
    }

    .site-page .top-plan-block {
      display: flex;
      flex-direction: column;
      height: 100%;
    }

    .site-page .top-plan-badge-slot {
      min-height: 28px;
      display: flex;
      align-items: flex-start;
      margin-bottom: 0.75rem;
      flex-shrink: 0;
    }

    .site-page .top-plan-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 24px;
      padding: 0.25rem 0.55rem;
      border: 1px solid rgba(0, 163, 196, 0.28);
      background: rgba(0, 163, 196, 0.08);
      color: var(--color-cyan);
      font-size: 0.6875rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      border-radius: 4px;
      line-height: 1;
    }

    .site-page .top-plan-name {
      min-height: 1.8em;
      margin: 0 0 0.875rem;
      flex-shrink: 0;
    }

    .site-page .top-plan-price {
      min-height: 2.4em;
      margin: 0 0 1rem;
      flex-shrink: 0;
      display: flex;
      align-items: flex-end;
      flex-wrap: wrap;
    }

    .site-page .top-plan-desc {
      min-height: 4.5em;
      margin: 0;
      flex: 1;
    }

    .site-page .maintenance-plans--overview .top-plan-name {
      min-height: 2.8em;
    }

    .site-page .maintenance-plans--overview .top-plan-price {
      min-height: 2.6em;
    }

    @media (min-width: 640px) {
      .site-page .pricing-grid--overview .plan-block:nth-child(2n) {
        border-right: none;
      }
      .site-page .pricing-grid--overview .plan-block:nth-last-child(-n + 2) {
        border-bottom: none;
      }
    }

    @media (min-width: 1024px) {
      .site-page .pricing-grid--overview .plan-block {
        border-bottom: none;
        border-right: 1px solid rgba(15, 23, 42, 0.08);
      }
      .site-page .pricing-grid--overview .plan-block:nth-child(2n) {
        border-right: 1px solid rgba(15, 23, 42, 0.08);
      }
      .site-page .pricing-grid--overview .plan-block:nth-child(4n) {
        border-right: none;
      }
      .site-page .pricing-grid--overview .plan-block:nth-last-child(-n + 2) {
        border-bottom: none;
      }
    }

    @media (max-width: 639px) {
      .site-page .pricing-grid--overview .plan-block:last-child {
        border-bottom: none;
      }
      .site-page .pricing-grid--overview .plan-block {
        border-right: none;
      }
    }

    .site-page .pricing-grid--overview .plan-block--featured {
      background: rgba(246, 248, 250, 0.6);
    }

    .site-page .pricing-grid--overview .plan-name,
    .site-page .maintenance-plans--overview .maintenance-head__title {
      font-size: 0.9375rem;
      font-weight: 700;
      color: var(--color-navy);
      line-height: 1.4;
    }

    .site-page .pricing-grid--overview .plan-price--consult {
      font-size: clamp(1.2rem, 2vw, 1.5rem);
    }

    .site-page .pricing-grid--overview .plan-price-note {
      font-size: 0.75rem;
      font-weight: 500;
      color: rgba(71, 85, 105, 0.75);
    }

    .site-page .plan-summary,
    .site-page .maintenance-summary {
      font-size: 0.8125rem;
      line-height: 1.75;
      color: #475569;
    }

    .site-page .pricing-grid--overview .plan-price,
    .site-page .maintenance-plans--overview .maintenance-price {
      font-size: clamp(1.35rem, 2.2vw, 1.625rem);
      font-weight: 700;
      line-height: 1.2;
      color: var(--color-navy);
    }

    .site-page .pricing-detail-cta {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.75rem;
      text-align: center;
      margin-top: clamp(2.5rem, 5vw, 3.5rem);
      padding-top: clamp(2rem, 4vw, 2.75rem);
      border-top: 1px solid rgba(15, 23, 42, 0.08);
    }

    .site-page .pricing-detail-cta__btn {
      min-width: min(100%, 18rem);
    }

    .site-page .pricing-detail-cta__note {
      margin: 1rem auto 0;
      max-width: 32rem;
      font-size: 0.875rem;
      line-height: 1.75;
      color: rgba(71, 85, 105, 0.8);
    }

    .site-page .plan-price .price-emphasis {
      font-size: inherit;
    }

    .site-page .maintenance-price .price-emphasis {
      font-size: 1.5rem;
    }

    .site-page .maintenance-plans--overview {
      display: grid;
      grid-template-columns: 1fr;
      gap: 0;
      align-items: stretch;
      margin-top: clamp(2rem, 4vw, 3rem);
      border: 1px solid rgba(15, 23, 42, 0.08);
      border-radius: 6px;
      overflow: hidden;
    }

    @media (min-width: 769px) {
      .site-page .maintenance-plans--overview {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0;
      }
    }

    .site-page .maintenance-plans--overview .maintenance-row {
      margin: 0;
      backdrop-filter: none;
    }

    @media (min-width: 769px) {
      .site-page .maintenance-plans--overview .maintenance-row {
        border-bottom: none;
      }
      .site-page .maintenance-plans--overview .maintenance-row:last-child {
        border-right: none;
      }
    }

    @media (max-width: 768px) {
      .site-page .maintenance-plans--overview .maintenance-row:last-child {
        border-bottom: none;
        border-right: none;
      }
      .site-page .maintenance-plans--overview .maintenance-row {
        border-right: none;
      }
    }

    .site-page .maintenance-plans--overview .maintenance-row--recommended {
      background: rgba(246, 248, 250, 0.6);
      box-shadow: none;
    }

    .site-page .maintenance-plans--overview .maintenance-head__title {
      padding: 0;
      border: none;
    }

    /* Works */
    .site-page .works-container {
      width: 100%;
    }

    .site-page .works-list--multi {
      border-top: 1px solid rgba(15, 23, 42, 0.08);
    }

    .site-page .works-list--multi .work-card {
      display: grid;
      grid-template-columns: 1fr;
      gap: clamp(1.5rem, 4vw, 2.5rem);
      padding: clamp(40px, 6vw, 72px) 0;
      border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    }

    @media (min-width: 900px) {
      .site-page .works-list--multi .work-card--split {
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
        align-items: start;
        gap: clamp(2rem, 5vw, 4rem);
      }
    }

    .site-page .works-list--multi .work-image {
      height: auto;
      max-height: none;
      aspect-ratio: 16 / 10;
      border-radius: 0;
      border: none;
      background: #f6f8fa;
    }

    @media (min-width: 900px) {
      .site-page .works-list--multi .work-image {
        min-height: 280px;
        aspect-ratio: 4 / 3;
      }
    }

    .site-page .work-card__title {
      font-size: clamp(1.375rem, 3vw, 2rem);
      font-weight: 700;
      line-height: 1.35;
      letter-spacing: -0.03em;
      color: var(--color-navy);
    }

    .site-page .work-card__desc {
      font-size: clamp(0.9375rem, 1.6vw, 1.0625rem);
      line-height: 2;
      max-width: 40rem;
      margin-top: 1rem;
    }

    .site-page .works-list--multi .work-card:hover .work-card__title,
    .site-page .work-row:hover .work-card__title {
      color: var(--color-cyan);
    }

    .site-page .work-card__tags {
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem;
      margin: 1.25rem 0 0;
      padding: 0;
      list-style: none;
    }

    .site-page .work-card__tags li {
      padding: 0.35rem 0.75rem;
      font-size: 0.75rem;
      font-weight: 600;
      letter-spacing: 0.04em;
      color: var(--color-navy);
      background: rgba(0, 163, 196, 0.1);
      border: 1px solid rgba(0, 163, 196, 0.18);
      border-radius: 999px;
    }

    .site-page .work-image img {
      transition: opacity 0.25s ease;
    }

    .site-page .work-card:hover .work-image img {
      opacity: 0.92;
    }

    /* Profile */
    .site-page .profile-block {
      padding-top: clamp(28px, 4vw, 40px);
      padding-bottom: clamp(28px, 4vw, 40px);
      border-top: 1px solid rgba(15, 23, 42, 0.08);
    }

    .site-page .profile-info-row,
    .site-page .capability-item {
      padding-top: clamp(1rem, 2vw, 1.25rem);
      padding-bottom: clamp(1rem, 2vw, 1.25rem);
    }

    /* Final CTA */
    .site-page .site-final-cta {
      background: #0f172a;
      color: #fff;
      padding-top: clamp(100px, 12vw, 160px);
      padding-bottom: clamp(100px, 12vw, 160px);
    }

    .site-page .site-final-cta__inner {
      max-width: 52rem;
      margin-left: auto;
      margin-right: auto;
      text-align: center;
    }

    .site-page .site-final-cta__title {
      margin: 0;
      max-width: none;
      font-size: clamp(2rem, 4.2vw, 3.75rem);
      font-weight: 700;
      line-height: 1.25;
      letter-spacing: -0.03em;
      color: #fff;
    }

    .final-cta-line {
      display: block;
    }

    .final-cta-line--nowrap {
      white-space: nowrap;
    }

    .final-cta-break-sm br {
      display: none;
    }

    .site-page .site-final-cta__highlight {
      color: #fff;
      font-weight: 700;
      background: none;
      box-shadow: inset 0 -0.12em 0 rgba(0, 163, 196, 0.75);
      padding: 0 0.02em;
    }

    .site-page .site-final-cta__lead {
      margin: clamp(1.5rem, 3vw, 2.25rem) auto 0;
      font-size: clamp(0.9375rem, 1.6vw, 1.0625rem);
      line-height: 1.85;
      color: rgba(255, 255, 255, 0.72);
      max-width: 32rem;
    }

    .site-page .site-final-cta__actions {
      margin-top: clamp(2.5rem, 5vw, 3.5rem);
      display: flex;
      justify-content: center;
    }

    .site-page .site-final-cta__btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 1.125rem 2.25rem;
      font-size: 0.9375rem;
      font-weight: 600;
      color: #0f172a;
      background: #00a3c4;
      border-radius: 999px;
      text-decoration: none;
      transition: background 0.2s ease, transform 0.2s ease;
      box-shadow: none;
    }

    .site-page .site-final-cta__btn:hover {
      background: #00b8dc;
      transform: none;
    }

    /* Contact */
    .site-page .contact-form-wrap {
      width: 100%;
      max-width: 100%;
    }

    .site-page #contact .contact-form-shell {
      padding-top: 0;
      border: 1px solid rgba(15, 23, 42, 0.08);
      border-radius: 6px;
      background: #fff;
      box-shadow: none;
    }

    .site-page #contact .contact-form-shell form {
      width: 100%;
    }

    .site-page .btn-primary:not(.site-final-cta__btn):not(.plan-block__cta--ai) {
      background: #0f172a;
    }

    .site-page .btn-primary:not(.site-final-cta__btn):not(.plan-block__cta--ai):hover {
      background: #1e293b;
    }

    .site-page #news .news-category {
      color: var(--color-cyan);
      font-weight: 700;
    }

    .site-page #news .news-title {
      color: var(--color-navy);
    }

    .site-page #news .news-list-link:not(.news-list-link--static):hover .news-title {
      color: var(--color-cyan);
    }

    .site-page #news .news-date {
      color: rgba(71, 85, 105, 0.55);
      font-weight: 500;
    }

    .site-page .news-list li,
    .site-page .news-list-link {
      padding-top: clamp(20px, 3vw, 32px);
      padding-bottom: clamp(20px, 3vw, 32px);
    }

    .site-page .news-section-cta {
      margin-top: clamp(1.5rem, 3vw, 2rem);
    }

    .site-page .seo-inbound-links.section-narrow {
      margin-top: clamp(2rem, 4vw, 3rem);
      padding-top: clamp(1.5rem, 3vw, 2rem);
      border-top: 1px solid rgba(15, 23, 42, 0.08);
    }

    .site-page .stats-strip .text-accent {
      color: #67e8f9;
    }

    .site-page .industry-card {
      padding-top: clamp(28px, 4vw, 48px);
      padding-bottom: clamp(28px, 4vw, 48px);
    }

    @media (max-width: 640px) {
      .site-page .hero-actions {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        max-width: 100%;
      }

      .site-page .hero-cta-dark,
      .site-page .hero-cta-ghost {
        justify-content: center;
        text-align: center;
      }

      .site-page .hero-cta-dark {
        width: 100%;
      }

      .site-page .pricing-detail-cta__btn {
        display: flex;
        width: 100%;
        justify-content: center;
      }

      .site-page .top-plan-badge-slot {
        min-height: 22px;
        margin-bottom: 0.5rem;
      }

      .site-page .top-plan-name,
      .site-page .maintenance-plans--overview .top-plan-name {
        min-height: 0;
      }

      .site-page .top-plan-price,
      .site-page .maintenance-plans--overview .top-plan-price {
        min-height: 0;
      }

      .site-page .top-plan-desc {
        min-height: 0;
      }

      .site-page .hero-title {
        font-size: clamp(2.2rem, 9vw, 3.2rem);
        line-height: 1.28;
        max-width: 100%;
      }

      .site-page .hero-title .hero-line {
        white-space: normal;
      }

      .site-page .hero-title .hero-line--2 {
        margin-left: clamp(12px, 4vw, 28px);
      }

      .site-page .hero-subcopy {
        font-size: 1rem;
        line-height: 1.8;
      }

      .final-cta-line--nowrap {
        white-space: normal;
      }

      .final-cta-break-sm br {
        display: block;
      }

      .site-page .site-final-cta__title {
        font-size: clamp(2rem, 9vw, 3rem);
        line-height: 1.35;
      }
    }

    @media (max-width: 768px) {
      .site-page .section-header > .section-title br {
        display: inline;
      }
    }

/* ============================================================
   料金専用ページ（pricing.php）
============================================================ */
.pricing-page {
  --pricing-border: rgba(15, 23, 42, 0.08);
}

.pricing-page .section-narrow {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}

.pricing-main {
  position: relative;
  z-index: 1;
}

.pricing-breadcrumb {
  padding-top: clamp(24px, 4vw, 40px);
  padding-bottom: 0;
}

/* ── ファーストビュー ── */
.pricing-hero {
  position: relative;
  overflow: hidden;
  padding-top: clamp(32px, 5vw, 56px);
  padding-bottom: clamp(48px, 6vw, 80px);
  background:
    radial-gradient(circle at 82% 20%, rgba(0, 163, 196, 0.12), transparent 32%),
    linear-gradient(135deg, #f8fafc 0%, #eef6f9 48%, #ffffff 100%);
}

.pricing-hero::before {
  content: "";
  position: absolute;
  inset: -30%;
  background: linear-gradient(120deg, transparent, rgba(0, 163, 196, 0.08), transparent);
  transform: translateX(-20%);
  animation: pricingHeroGlow 12s ease-in-out infinite alternate;
  pointer-events: none;
}

@keyframes pricingHeroGlow {
  from { transform: translateX(-18%) rotate(0deg); }
  to { transform: translateX(12%) rotate(4deg); }
}

.pricing-hero .section-inner {
  position: relative;
  z-index: 1;
}

.pricing-reveal {
  opacity: 0;
  transform: translateY(16px);
  animation: pricingFadeUp 0.8s ease forwards;
}

.pricing-hero__summary.pricing-reveal {
  animation-delay: 0.12s;
}

.pricing-hero__cta.pricing-reveal {
  animation-delay: 0.24s;
}

@keyframes pricingFadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .pricing-hero::before {
    animation: none;
  }
  .pricing-reveal {
    opacity: 1;
    transform: none;
    animation: none;
  }
  .pricing-summary-pop {
    animation: none !important;
  }
}

.pricing-hero__header {
  max-width: 52rem;
}

.pricing-hero__body {
  max-width: 48rem;
  margin-top: 1.25rem;
  font-size: 0.9375rem;
  line-height: 1.9;
  color: #475569;
}

.pricing-hero__summary {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-top: clamp(28px, 4vw, 40px);
  max-width: 52rem;
}

@media (min-width: 640px) {
  .pricing-hero__summary {
    grid-template-columns: repeat(3, 1fr);
  }
}

.pricing-summary-card {
  padding: 1.125rem 1.25rem;
  border: 1px solid var(--pricing-border);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.72);
}

.pricing-summary-card__label {
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #64748b;
  margin-bottom: 0.35rem;
}

.pricing-summary-card__price {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.4;
}

.pricing-summary-pop {
  display: inline-block;
  animation: pricingPricePop 0.9s ease 0.35s both;
}

@keyframes pricingPricePop {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.pricing-hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: clamp(28px, 4vw, 40px);
}

/* ── セクション共通 ── */
.pricing-section {
  padding-top: clamp(64px, 8vw, 120px);
  padding-bottom: clamp(64px, 8vw, 120px);
}

.pricing-section-intro {
  max-width: 48rem;
  font-size: 0.9375rem;
  line-height: 1.9;
  color: #475569;
  margin: 0 0 clamp(24px, 4vw, 32px);
}

.pricing-related-wrap {
  padding-top: clamp(32px, 5vw, 48px);
  padding-bottom: clamp(48px, 6vw, 64px);
}

/* ── 早見表 ── */
.pricing-table-wrap {
  margin-top: clamp(32px, 4vw, 48px);
}

.pricing-compare-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  line-height: 1.8;
}

.pricing-compare-table th,
.pricing-compare-table td {
  border: 1px solid var(--pricing-border);
  padding: clamp(12px, 2vw, 18px) clamp(14px, 2vw, 20px);
  vertical-align: top;
  text-align: left;
}

.pricing-compare-table th {
  background: #f8fafc;
  color: var(--color-navy);
  font-weight: 700;
  white-space: nowrap;
}

.pricing-compare-table tbody td:first-child {
  font-weight: 600;
  color: var(--color-navy);
}

.pricing-compare-table tbody tr {
  transition: background 0.2s ease;
}

.pricing-compare-table tbody tr:hover td {
  background: rgba(0, 163, 196, 0.035);
}

.pricing-compare-table__featured td:first-child strong {
  color: var(--color-navy);
}

.pricing-plan-label {
  display: inline-flex;
  padding: 0.25rem 0.55rem;
  margin-left: 0.35rem;
  background: rgba(0, 163, 196, 0.08);
  border: 1px solid rgba(0, 163, 196, 0.24);
  color: var(--color-cyan);
  font-weight: 700;
  font-size: 0.75rem;
  border-radius: 4px;
  vertical-align: middle;
}

.pricing-cell-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.pricing-cell-list li {
  position: relative;
  padding-left: 0.85rem;
  margin-bottom: 0.4rem;
}

.pricing-cell-list li::before {
  content: "·";
  position: absolute;
  left: 0;
  color: rgba(15, 23, 42, 0.35);
}

.pricing-table-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 0.85rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-navy);
  border: 1px solid var(--pricing-border);
  border-radius: 6px;
  text-decoration: none;
  white-space: nowrap;
  transition: border-color 0.2s, color 0.2s, background 0.2s;
}

.pricing-table-cta:hover {
  border-color: rgba(0, 163, 196, 0.35);
  color: var(--color-cyan);
  background: rgba(0, 163, 196, 0.04);
}

/* ── 目次 ── */
.pricing-toc {
  border-top: 1px solid var(--pricing-border);
  border-bottom: 1px solid var(--pricing-border);
  padding: clamp(48px, 6vw, 72px) 0;
  background: #fff;
}

.pricing-toc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: clamp(24px, 4vw, 40px);
}

.pricing-toc-grid a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 1.125rem;
  border: 1px solid var(--pricing-border);
  border-radius: 6px;
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-navy);
  transition: border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.pricing-toc-grid a:hover {
  border-color: rgba(0, 163, 196, 0.35);
  color: var(--color-cyan);
  transform: translateY(-2px);
}

.pricing-toc-grid a span {
  color: #94a3b8;
  font-weight: 400;
}

/* ── プラン選択ガイド ── */
.pricing-guide-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: 48rem;
}

.pricing-guide-list li {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  padding: clamp(16px, 2.5vw, 22px) 0;
  border-bottom: 1px solid var(--pricing-border);
  line-height: 1.75;
  font-size: 0.9375rem;
}

.pricing-guide-list__situation {
  flex: 1 1 14rem;
  color: #334155;
}

.pricing-guide-list__plan {
  font-weight: 700;
  color: var(--color-navy);
}

/* ── プラン詳細 ── */
.pricing-detail-section {
  padding: clamp(40px, 5vw, 56px) 0;
  border-top: 1px solid var(--pricing-border);
}

.pricing-detail-section:first-of-type {
  border-top: none;
  padding-top: clamp(24px, 4vw, 32px);
}

.pricing-detail-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.75rem 1.5rem;
  margin-bottom: 1rem;
}

.pricing-detail-head__title {
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  font-weight: 700;
  color: var(--color-navy);
  margin: 0;
}

.pricing-detail-price {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--color-navy);
}

.pricing-detail-lead {
  max-width: 48rem;
  font-size: 0.9375rem;
  line-height: 1.9;
  color: #475569;
  margin: 0 0 1.5rem;
}

.pricing-detail-audience {
  max-width: 48rem;
  font-size: 0.875rem;
  line-height: 1.85;
  color: #64748b;
  margin: 1.5rem 0 1.25rem;
}

.pricing-detail-note {
  max-width: 48rem;
  font-size: 0.8125rem;
  line-height: 1.85;
  color: #64748b;
  margin: 1.25rem 0 0;
  padding: 0.875rem 1rem;
  background: #f8fafc;
  border-left: 3px solid #06b6d4;
  border-radius: 0 0.375rem 0.375rem 0;
}

.pricing-detail-section .btn-primary,
.pricing-detail-section .btn-secondary {
  margin-top: 0.25rem;
}

.pricing-scope-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 0.5rem;
}

.pricing-scope-box {
  border: 1px solid var(--pricing-border);
  background: #fff;
  padding: 1.5rem;
  border-radius: 6px;
}

.pricing-scope-box h4 {
  color: var(--color-navy);
  font-weight: 700;
  font-size: 0.9375rem;
  margin: 0 0 1rem;
}

.pricing-scope-box ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.pricing-scope-box li {
  position: relative;
  padding-left: 0.9rem;
  margin-bottom: 0.5rem;
  font-size: 0.8125rem;
  line-height: 1.75;
  color: #475569;
}

.pricing-scope-box li::before {
  content: "·";
  position: absolute;
  left: 0;
  color: rgba(15, 23, 42, 0.3);
}

.pricing-scope-box--included {
  border-top: 3px solid var(--color-cyan);
}

.pricing-scope-box--excluded {
  border-top: 3px solid #94a3b8;
}

.pricing-scope-box--extra {
  border-top: 3px solid var(--color-navy);
}

/* ── 保守契約共通 ── */
.pricing-contract-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-top: 0.5rem;
}

.pricing-contract-block__title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-navy);
  margin: 0 0 1rem;
}

/* ── 含まれるものリスト ── */
.pricing-included-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
  gap: 0.75rem 1.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.pricing-included-list li {
  position: relative;
  padding-left: 1.1rem;
  color: #475569;
  line-height: 1.75;
  font-size: 0.9375rem;
}

.pricing-included-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--color-cyan);
}

.pricing-page .pricing-faq {
  margin-top: clamp(24px, 4vw, 40px);
}

/* ── 最終CTA ── */
.pricing-final-cta {
  background: var(--color-navy);
  color: #f8fafc;
  padding-top: clamp(72px, 10vw, 120px);
  padding-bottom: clamp(72px, 10vw, 120px);
}

.pricing-final-cta__inner {
  max-width: 40rem;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

.pricing-final-cta__title {
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.02em;
  margin-bottom: 1.25rem;
}

.pricing-final-cta__lead {
  font-size: 0.9375rem;
  line-height: 1.85;
  color: rgba(248, 250, 252, 0.82);
  margin-bottom: clamp(28px, 4vw, 40px);
}

.pricing-final-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}

.pricing-final-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.5rem;
  font-size: 0.9375rem;
  font-weight: 600;
  border-radius: 8px;
  text-decoration: none;
  background: #fff;
  color: var(--color-navy);
  transition: opacity 0.2s;
}

.pricing-final-cta__btn:hover {
  opacity: 0.92;
}

.pricing-final-cta__btn--ghost {
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.35);
}

.pricing-final-cta__btn--ghost:hover {
  border-color: var(--color-cyan);
  color: var(--color-cyan);
  opacity: 1;
}

.pricing-related-note {
  text-align: center;
  font-size: 0.875rem;
  color: #64748b;
}

.pricing-related-note a {
  color: var(--color-navy);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.pricing-related-note a:hover {
  color: var(--color-cyan);
}

/* ── レスポンシブ ── */
@media (max-width: 900px) {
  .pricing-toc-grid,
  .pricing-scope-grid {
    grid-template-columns: 1fr;
  }

  .pricing-contract-columns {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 899px) {
  .pricing-compare-table thead {
    display: none;
  }

  .pricing-compare-table,
  .pricing-compare-table tbody,
  .pricing-compare-table tr,
  .pricing-compare-table td {
    display: block;
    width: 100%;
  }

  .pricing-compare-table tr {
    padding: clamp(20px, 4vw, 28px) 0;
    border-bottom: 1px solid var(--pricing-border);
  }

  .pricing-compare-table tr:last-child {
    border-bottom: none;
  }

  .pricing-compare-table td {
    border: none;
    padding: 0.35rem 0;
  }

  .pricing-compare-table tbody tr:hover td {
    background: transparent;
  }

  .pricing-compare-table td::before {
    content: attr(data-label);
    display: block;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #94a3b8;
    margin-bottom: 0.25rem;
  }

  .pricing-compare-table td:first-child::before {
    display: none;
  }

  .pricing-compare-table td:first-child {
    font-size: 1.05rem;
    padding-bottom: 0.75rem;
    margin-bottom: 0.5rem;
    border-bottom: 1px solid var(--pricing-border);
  }
}

@media (max-width: 640px) {
  .pricing-toc-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   サービスページ（service.php）
============================================================ */
.service-page .site-bg-motion {
  display: none;
}

.service-main {
  position: relative;
  z-index: 1;
  background: #fff;
}

.service-breadcrumb {
  padding: 1rem 0 0;
  background: #fff;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.service-breadcrumb .case-breadcrumb__list {
  font-size: 0.8125rem;
}

.service-inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 48px);
}

.service-inner--narrow {
  max-width: 760px;
}

.service-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(80px, 9vw, 130px) 0;
  background:
    radial-gradient(circle at 82% 18%, rgba(0, 163, 196, 0.1), transparent 34%),
    linear-gradient(135deg, #f8fafc 0%, #eef6f9 52%, #ffffff 100%);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.service-hero .sec-eye {
  display: block;
  margin-bottom: 1rem;
}

.service-hero__title {
  font-size: clamp(2rem, 5.2vw, 3.25rem);
  line-height: 1.22;
  letter-spacing: -0.03em;
  color: var(--color-navy);
  max-width: 820px;
  margin: 0;
  font-weight: 700;
}

.service-hero__lead {
  margin-top: 1.75rem;
  max-width: 780px;
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.9;
  color: rgba(15, 23, 42, 0.68);
}

.service-hero__body {
  margin-top: 1.25rem;
  max-width: 760px;
  font-size: 0.9375rem;
  line-height: 1.95;
  color: rgba(15, 23, 42, 0.62);
}

.service-hero__body + .service-hero__body {
  margin-top: 1rem;
}

.service-hero__actions {
  margin-top: 2.25rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.875rem;
}

.service-hero__note {
  margin-top: 1.5rem;
  max-width: 760px;
  font-size: 0.875rem;
  line-height: 1.8;
  color: rgba(15, 23, 42, 0.55);
  padding-top: 1.25rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.service-section {
  padding: clamp(76px, 8vw, 116px) 0;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  background: #fff;
}

.service-section--surface {
  background: #f8fafc;
}

.service-section-head {
  margin-bottom: clamp(1.5rem, 3vw, 2rem);
  max-width: 880px;
}

.service-section-head .sec-eye {
  display: block;
  margin-bottom: 0.75rem;
}

.service-section__title {
  font-size: clamp(1.375rem, 3vw, 1.875rem);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.03em;
  color: var(--color-navy);
  margin: 0;
}

.service-lead,
.service-body {
  max-width: 760px;
  font-size: 0.9375rem;
  line-height: 1.95;
  color: rgba(15, 23, 42, 0.66);
  margin: 1rem 0 0;
}

.service-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin-top: 2.5rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  border-left: 1px solid rgba(15, 23, 42, 0.08);
}

.service-summary-item {
  padding: 2rem;
  border-right: 1px solid rgba(15, 23, 42, 0.08);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  background: #fff;
}

.service-section--surface .service-summary-item {
  background: #fff;
}

.service-summary-item h3 {
  color: var(--color-navy);
  font-weight: 700;
  font-size: 1.0625rem;
  margin: 0 0 0.875rem;
}

.service-summary-item > p {
  color: rgba(15, 23, 42, 0.64);
  line-height: 1.8;
  font-size: 0.875rem;
  margin: 0 0 1rem;
}

.service-summary-list {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.service-summary-list li {
  padding: 0.5rem 0;
  font-size: 0.8125rem;
  line-height: 1.7;
  color: rgba(15, 23, 42, 0.58);
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
}

.service-detail-item {
  padding: 3rem 0;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.service-detail-item:first-of-type {
  border-top: none;
  padding-top: 0;
}

.service-detail-item h3 {
  color: var(--color-navy);
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  font-weight: 700;
  margin: 0 0 1.25rem;
}

.service-detail-item p {
  max-width: 780px;
  line-height: 1.95;
  font-size: 0.9375rem;
  color: rgba(15, 23, 42, 0.66);
  margin: 0 0 1.25rem;
}

.service-detail-list {
  margin: 0 0 1.5rem;
  padding: 0;
  list-style: none;
  max-width: 780px;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.service-detail-list li {
  padding: 0.625rem 0 0.625rem 1rem;
  font-size: 0.875rem;
  line-height: 1.75;
  color: rgba(15, 23, 42, 0.62);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  position: relative;
}

.service-detail-list li::before {
  content: "·";
  position: absolute;
  left: 0;
  color: rgba(15, 23, 42, 0.35);
}

.service-related {
  margin: 0;
  padding: 0;
  list-style: none;
  max-width: 780px;
}

.service-related li {
  padding: 0.5rem 0;
}

.service-related a {
  color: #0891b2;
  font-size: 0.875rem;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.service-related a:hover {
  color: #0e7490;
}

.service-flow {
  display: grid;
  gap: 0;
  margin-top: 2.5rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  max-width: 880px;
}

.service-flow-item {
  padding: 1.5rem 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  list-style: none;
}

.service-flow-step {
  display: block;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--color-cyan);
  margin-bottom: 0.5rem;
}

.service-flow-item h3 {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--color-navy);
  margin: 0 0 0.5rem;
}

.service-flow-item p {
  margin: 0;
  max-width: 760px;
  font-size: 0.9375rem;
  line-height: 1.9;
  color: rgba(15, 23, 42, 0.64);
}

.service-industry-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
  gap: 0;
  margin: 2rem 0 0;
  padding: 0;
  list-style: none;
  max-width: 880px;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.service-industry-list li {
  padding: 0.875rem 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  font-size: 0.9375rem;
  color: rgba(15, 23, 42, 0.72);
}

.service-strength-list {
  display: grid;
  gap: 0;
  margin-top: 2rem;
  max-width: 880px;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.service-strength-item {
  padding: 2rem 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.service-strength-item h3 {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--color-navy);
  margin: 0 0 0.75rem;
}

.service-strength-item p {
  margin: 0;
  max-width: 760px;
  font-size: 0.9375rem;
  line-height: 1.95;
  color: rgba(15, 23, 42, 0.64);
}

.service-pricing-teaser .btn-primary {
  margin-top: 0.5rem;
}

.service-faq {
  padding: clamp(76px, 8vw, 116px) 0;
  background: #fff;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.service-faq-list {
  max-width: 760px;
  margin-top: 2rem;
}

.service-final-cta {
  padding: clamp(80px, 9vw, 120px) 0;
  background: var(--color-navy);
  color: #fff;
}

.service-final-cta__inner {
  max-width: 40rem;
  text-align: center;
}

.service-final-cta__title {
  font-size: clamp(1.375rem, 3vw, 1.75rem);
  font-weight: 700;
  line-height: 1.45;
  color: #fff;
  margin: 0 0 1.25rem;
}

.service-final-cta__body {
  font-size: 0.9375rem;
  line-height: 1.9;
  color: rgba(248, 250, 252, 0.82);
  margin: 0 0 2rem;
}

.service-final-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.875rem;
}

.service-final-cta .btn-primary {
  background: #0891b2;
}

.service-final-cta .btn-primary:hover {
  background: #0e7490;
}

.service-final-cta .btn-secondary {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.45);
}

.service-final-cta .btn-secondary:hover {
  border-color: #22d3ee;
  color: #22d3ee;
  background: rgba(255, 255, 255, 0.06);
}

.service-final-cta .site-final-cta__highlight {
  color: #fff;
  box-shadow: inset 0 -0.12em 0 rgba(0, 163, 196, 0.75);
}

@media (max-width: 900px) {
  .service-summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .service-summary-grid {
    grid-template-columns: 1fr;
  }

  .service-hero__actions,
  .service-final-cta__actions {
    flex-direction: column;
  }

  .service-hero__actions .btn-primary,
  .service-hero__actions .btn-secondary,
  .service-final-cta__actions .btn-primary,
  .service-final-cta__actions .btn-secondary {
    width: 100%;
    justify-content: center;
  }
}

/* ============================================================
   制作実績一覧（works.php）
============================================================ */
.works-archive-page .site-bg-motion {
  display: none;
}

.works-archive-main {
  position: relative;
  z-index: 1;
  background: #fff;
}

.works-archive-breadcrumb {
  padding: 1rem 0 0;
  background: #fff;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.works-archive-breadcrumb .case-breadcrumb__list {
  font-size: 0.8125rem;
}

.works-archive-inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 48px);
}

.works-archive-inner--narrow {
  max-width: 880px;
}

.works-archive-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(80px, 9vw, 130px) 0;
  background:
    radial-gradient(circle at 82% 18%, rgba(0, 163, 196, 0.1), transparent 34%),
    linear-gradient(135deg, #f8fafc 0%, #eef6f9 52%, #ffffff 100%);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.works-archive-hero .sec-eye {
  display: block;
  margin-bottom: 1rem;
}

.works-archive-hero__title {
  font-size: clamp(2rem, 5.2vw, 3.25rem);
  line-height: 1.22;
  letter-spacing: -0.03em;
  color: var(--color-navy);
  max-width: 820px;
  margin: 0;
  font-weight: 700;
}

.works-archive-hero__lead {
  margin-top: 1.75rem;
  max-width: 780px;
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.9;
  color: rgba(15, 23, 42, 0.68);
}

.works-archive-hero__body,
.works-archive-hero__note {
  margin-top: 1.25rem;
  max-width: 760px;
  font-size: 0.9375rem;
  line-height: 1.95;
  color: rgba(15, 23, 42, 0.62);
}

.works-archive-hero__note {
  padding-top: 1rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.works-archive-hero__actions {
  margin-top: 2.25rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.875rem;
}

.works-archive-section {
  padding: clamp(76px, 8vw, 116px) 0;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  background: #fff;
}

.works-archive-section--surface {
  background: #f8fafc;
}

.works-archive-section-head {
  margin-bottom: clamp(1.5rem, 3vw, 2rem);
  max-width: 880px;
}

.works-archive-section-head .sec-eye {
  display: block;
  margin-bottom: 0.75rem;
}

.works-archive-section__title {
  font-size: clamp(1.375rem, 3vw, 1.875rem);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.03em;
  color: var(--color-navy);
  margin: 0;
}

.works-archive-lead,
.works-archive-body {
  max-width: 760px;
  font-size: 0.9375rem;
  line-height: 1.95;
  color: rgba(15, 23, 42, 0.66);
  margin: 1rem 0 0;
}

.works-archive-body + .works-archive-body {
  margin-top: 1.25rem;
}

.works-archive-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
  margin-top: 2.5rem;
}

.works-archive-item {
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 8px;
  overflow: hidden;
}

.works-archive-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.works-archive-body {
  padding: 1.75rem;
}

.works-archive-category {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--color-cyan);
  letter-spacing: 0.08em;
  margin: 0;
}

.works-archive-title {
  margin-top: 0.75rem;
  color: var(--color-navy);
  font-size: clamp(1.125rem, 2vw, 1.375rem);
  font-weight: 700;
  line-height: 1.35;
}

.works-archive-desc {
  margin: 1rem 0 0;
  font-size: 0.875rem;
  line-height: 1.85;
  color: rgba(15, 23, 42, 0.64);
}

.works-archive-points-title {
  margin: 1.25rem 0 0.5rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--color-navy);
}

.works-archive-points {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.works-archive-points li {
  padding: 0.5rem 0 0.5rem 1rem;
  font-size: 0.8125rem;
  line-height: 1.7;
  color: rgba(15, 23, 42, 0.6);
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
  position: relative;
}

.works-archive-points li::before {
  content: "·";
  position: absolute;
  left: 0;
  color: rgba(15, 23, 42, 0.35);
}

.works-archive-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1.25rem;
  padding: 0;
  list-style: none;
}

.works-archive-tags li {
  padding: 0.35rem 0.65rem;
  font-size: 0.75rem;
  color: var(--color-cyan);
  background: rgba(0, 163, 196, 0.08);
  border: 1px solid rgba(0, 163, 196, 0.18);
  border-radius: 999px;
}

.works-archive-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.works-policy-list,
.works-industry-list {
  display: grid;
  gap: 0;
  margin-top: 2rem;
  max-width: 880px;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.works-policy-item,
.works-industry-item {
  padding: 2rem 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.works-policy-item h3,
.works-industry-item h3 {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--color-navy);
  margin: 0 0 0.75rem;
}

.works-policy-item p,
.works-industry-item p {
  margin: 0;
  max-width: 760px;
  font-size: 0.9375rem;
  line-height: 1.95;
  color: rgba(15, 23, 42, 0.64);
}

.works-related-links {
  margin: 2rem 0 0;
  padding: 0;
  list-style: none;
  max-width: 880px;
}

.works-related-links li {
  padding: 0.5rem 0;
}

.works-related-links a {
  color: #0891b2;
  font-size: 0.875rem;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.works-related-links a:hover {
  color: #0e7490;
}

.works-related-links--grid {
  display: grid;
  gap: 0.25rem;
}

.works-faq {
  padding: clamp(76px, 8vw, 116px) 0;
  background: #fff;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.works-faq-list {
  max-width: 760px;
  margin-top: 2rem;
}

.works-final-cta {
  padding: clamp(80px, 9vw, 120px) 0;
  background: var(--color-navy);
  color: #fff;
}

.works-final-cta__inner {
  max-width: 40rem;
  text-align: center;
}

.works-final-cta__title {
  font-size: clamp(1.375rem, 3vw, 1.75rem);
  font-weight: 700;
  line-height: 1.45;
  color: #fff;
  margin: 0 0 1.25rem;
}

.works-final-cta__body {
  font-size: 0.9375rem;
  line-height: 1.9;
  color: rgba(248, 250, 252, 0.82);
  margin: 0 0 2rem;
}

.works-final-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.875rem;
}

.works-final-cta .btn-primary {
  background: #0891b2;
}

.works-final-cta .btn-primary:hover {
  background: #0e7490;
}

.works-final-cta .btn-secondary {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.45);
}

.works-final-cta .btn-secondary:hover {
  border-color: #22d3ee;
  color: #22d3ee;
  background: rgba(255, 255, 255, 0.06);
}

.works-final-cta .site-final-cta__highlight {
  color: #fff;
  box-shadow: inset 0 -0.12em 0 rgba(0, 163, 196, 0.75);
}

@media (max-width: 768px) {
  .works-archive-list {
    grid-template-columns: 1fr;
  }

  .works-archive-hero__actions,
  .works-final-cta__actions {
    flex-direction: column;
  }

  .works-archive-hero__actions .btn-primary,
  .works-archive-hero__actions .btn-secondary,
  .works-final-cta__actions .btn-primary,
  .works-final-cta__actions .btn-secondary,
  .works-archive-actions .btn-primary,
  .works-archive-actions .btn-secondary {
    width: 100%;
    justify-content: center;
  }

  .works-archive-actions {
    flex-direction: column;
  }
}

/* ============================================================
   事務所概要ページ（about.php）
============================================================ */
.about-page .site-bg-motion {
  display: none;
}

.about-main {
  position: relative;
  z-index: 1;
  background: #fff;
}

.about-breadcrumb {
  padding: 1rem 0 0;
  background: #fff;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.about-breadcrumb .case-breadcrumb__list {
  font-size: 0.8125rem;
}

.about-inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 48px);
}

.about-inner--narrow {
  max-width: 880px;
}

.about-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(80px, 9vw, 130px) 0;
  background:
    radial-gradient(circle at 82% 18%, rgba(0, 163, 196, 0.1), transparent 34%),
    linear-gradient(135deg, #f8fafc 0%, #eef6f9 52%, #ffffff 100%);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.about-hero .sec-eye {
  display: block;
  margin-bottom: 1rem;
}

.about-hero__title {
  font-size: clamp(2rem, 5.2vw, 3.25rem);
  line-height: 1.22;
  letter-spacing: -0.03em;
  color: var(--color-navy);
  max-width: 820px;
  margin: 0;
  font-weight: 700;
}

.about-hero__lead {
  margin-top: 1.75rem;
  max-width: 780px;
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.9;
  color: rgba(15, 23, 42, 0.68);
}

.about-hero__body,
.about-hero__note {
  margin-top: 1.25rem;
  max-width: 760px;
  font-size: 0.9375rem;
  line-height: 1.95;
  color: rgba(15, 23, 42, 0.62);
}

.about-hero__note {
  padding-top: 1rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.about-hero__actions {
  margin-top: 2.25rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.875rem;
}

.about-section {
  padding: clamp(76px, 8vw, 116px) 0;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  background: #fff;
}

.about-section--surface {
  background: #f8fafc;
}

.about-section-head {
  margin-bottom: clamp(1.5rem, 3vw, 2rem);
  max-width: 880px;
}

.about-section-head .sec-eye {
  display: block;
  margin-bottom: 0.75rem;
}

.about-section__title {
  font-size: clamp(1.375rem, 3vw, 1.875rem);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.03em;
  color: var(--color-navy);
  margin: 0;
}

.about-lead,
.about-body {
  max-width: 780px;
  font-size: 0.9375rem;
  line-height: 1.95;
  color: rgba(15, 23, 42, 0.66);
  margin: 1rem 0 0;
}

.about-body + .about-body {
  margin-top: 1.25rem;
}

.about-overview-list {
  margin-top: 2.5rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  max-width: 900px;
}

.about-overview-list > div {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 2rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.about-overview-list dt {
  color: rgba(15, 23, 42, 0.52);
  font-weight: 700;
  font-size: 0.875rem;
  margin: 0;
}

.about-overview-list dd {
  color: var(--color-navy);
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.85;
}

.about-overview-list dd a {
  color: #0891b2;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.about-overview-services {
  margin: 0;
  padding: 0;
  list-style: none;
}

.about-overview-services li {
  padding: 0.35rem 0 0.35rem 1rem;
  position: relative;
  font-size: 0.875rem;
  line-height: 1.75;
  color: rgba(15, 23, 42, 0.72);
}

.about-overview-services li::before {
  content: "·";
  position: absolute;
  left: 0;
  color: rgba(15, 23, 42, 0.35);
}

.about-overview-note {
  margin-top: 2rem;
}

.about-profile {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
  max-width: 1000px;
}

.about-profile-card {
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: #fff;
  padding: 2rem;
  border-left: 3px solid var(--color-cyan);
}

.about-profile-card__label {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--color-cyan);
  text-transform: uppercase;
  margin: 0 0 1rem;
}

.about-profile-card__name {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  color: var(--color-navy);
  margin: 0;
  line-height: 1.2;
}

.about-profile-card__role {
  margin: 0.75rem 0 0;
  font-size: 0.875rem;
  line-height: 1.7;
  color: rgba(15, 23, 42, 0.64);
}

.about-profile-body {
  max-width: 780px;
}

.about-profile-body p {
  margin: 0 0 1.25rem;
  font-size: 0.9375rem;
  line-height: 1.95;
  color: rgba(15, 23, 42, 0.66);
}

.about-profile-body p:last-child {
  margin-bottom: 0;
}

.about-message {
  max-width: 780px;
}

.about-message p {
  margin: 0 0 1.25rem;
  font-size: 0.9375rem;
  line-height: 1.95;
  color: rgba(15, 23, 42, 0.66);
}

.about-message p:last-child {
  margin-bottom: 0;
}

.about-values {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  margin-top: 2.5rem;
  max-width: 1000px;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  border-left: 1px solid rgba(15, 23, 42, 0.08);
}

.about-value-item {
  padding: 2rem;
  border-right: 1px solid rgba(15, 23, 42, 0.08);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  background: #fff;
}

.about-section--surface .about-value-item {
  background: #fff;
}

.about-value-item h3 {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--color-navy);
  margin: 0 0 0.75rem;
}

.about-value-item p {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.85;
  color: rgba(15, 23, 42, 0.64);
}

.about-service-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
  gap: 0;
  margin: 2rem 0 0;
  padding: 0;
  list-style: none;
  max-width: 1000px;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.about-service-list li {
  padding: 0.75rem 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  font-size: 0.875rem;
  line-height: 1.75;
  color: rgba(15, 23, 42, 0.68);
}

.about-related-links {
  margin: 2rem 0 0;
  padding: 0;
  list-style: none;
  max-width: 880px;
}

.about-related-links li {
  padding: 0.5rem 0;
}

.about-related-links a {
  color: #0891b2;
  font-size: 0.875rem;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.about-related-links a:hover {
  color: #0e7490;
}

.about-related-links--grid {
  display: grid;
  gap: 0.25rem;
}

.about-faq {
  padding: clamp(76px, 8vw, 116px) 0;
  background: #fff;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.about-faq-list {
  max-width: 760px;
  margin-top: 2rem;
}

.about-final-cta {
  padding: clamp(80px, 9vw, 120px) 0;
  background: var(--color-navy);
  color: #fff;
}

.about-final-cta__inner {
  max-width: 40rem;
  text-align: center;
}

.about-final-cta__title {
  font-size: clamp(1.375rem, 3vw, 1.75rem);
  font-weight: 700;
  line-height: 1.45;
  color: #fff;
  margin: 0 0 1.25rem;
}

.about-final-cta__body {
  font-size: 0.9375rem;
  line-height: 1.9;
  color: rgba(248, 250, 252, 0.82);
  margin: 0 0 2rem;
}

.about-final-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.875rem;
}

.about-final-cta .btn-primary {
  background: #0891b2;
}

.about-final-cta .btn-primary:hover {
  background: #0e7490;
}

.about-final-cta .btn-secondary {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.45);
}

.about-final-cta .btn-secondary:hover {
  border-color: #22d3ee;
  color: #22d3ee;
  background: rgba(255, 255, 255, 0.06);
}

@media (max-width: 768px) {
  .about-overview-list > div {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

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

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

  .about-hero__actions,
  .about-final-cta__actions {
    flex-direction: column;
  }

  .about-hero__actions .btn-primary,
  .about-hero__actions .btn-secondary,
  .about-final-cta__actions .btn-primary,
  .about-final-cta__actions .btn-secondary {
    width: 100%;
    justify-content: center;
  }
}

/* ══════════════════════════════════════════════════════════════
   下層PHPページ用：控えめな表示アニメーション（pricing/index 以外）
   ══════════════════════════════════════════════════════════════ */

.reveal-up {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.72s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.72s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.reveal-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-fade {
  opacity: 0;
  transition: opacity 0.72s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity;
}

.reveal-fade.is-visible {
  opacity: 1;
}

.reveal-delay-1 { transition-delay: 0.08s; }
.reveal-delay-2 { transition-delay: 0.16s; }
.reveal-delay-3 { transition-delay: 0.24s; }
.reveal-delay-4 { transition-delay: 0.32s; }

/* 下層ページ hero：薄い背景グロー（pricing-hero は対象外） */
.service-hero,
.works-archive-hero,
.about-hero,
.seo-service-hero,
.chusho-hero,
.case-hero,
.contact-hero {
  position: relative;
  overflow: hidden;
}

.service-hero::before,
.works-archive-hero::before,
.about-hero::before,
.seo-service-hero::before,
.chusho-hero::before,
.case-hero::before,
.contact-hero::before {
  content: "";
  position: absolute;
  inset: -30%;
  background: linear-gradient(
    120deg,
    transparent,
    rgba(0, 163, 196, 0.06),
    transparent
  );
  transform: translateX(-18%) rotate(0deg);
  animation: lowerHeroGlow 12s ease-in-out infinite alternate;
  pointer-events: none;
  z-index: 0;
}

@keyframes lowerHeroGlow {
  from { transform: translateX(-18%) rotate(0deg); }
  to { transform: translateX(12%) rotate(4deg); }
}

.service-hero .service-inner,
.works-archive-hero .works-archive-inner,
.about-hero .about-inner,
.seo-service-hero .seo-service-inner,
.chusho-hero .chusho-inner,
.case-hero > .case-breadcrumb,
.case-hero > div {
  position: relative;
  z-index: 1;
}

/* 下層ページ：ボタンホバー（控えめ） */
.service-main .btn-primary:hover,
.service-main .btn-secondary:hover,
.works-archive-main .btn-primary:hover,
.works-archive-main .btn-secondary:hover,
.about-main .btn-primary:hover,
.about-main .btn-secondary:hover,
.news-page .btn-primary:hover,
.news-page .btn-secondary:hover,
.seo-service-page .btn-primary:hover,
.seo-service-page .btn-secondary:hover,
.chusho-homepage .btn-primary:hover,
.chusho-homepage .btn-secondary:hover,
.case-study-page .btn-primary:hover,
.case-study-page .btn-secondary:hover,
.application-page .btn-primary:hover,
.application-page .btn-secondary:hover,
.contact-page .btn-primary:hover,
.contact-page .btn-secondary:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

@media (prefers-reduced-motion: reduce) {
  .reveal-up,
  .reveal-fade {
    opacity: 1;
    transform: none;
    transition: none;
    will-change: auto;
  }

  .service-hero::before,
  .works-archive-hero::before,
  .about-hero::before,
  .seo-service-hero::before,
  .chusho-hero::before,
  .case-hero::before,
  .contact-hero::before {
    animation: none;
  }

  .service-main .btn-primary:hover,
  .service-main .btn-secondary:hover,
  .works-archive-main .btn-primary:hover,
  .works-archive-main .btn-secondary:hover,
  .about-main .btn-primary:hover,
  .about-main .btn-secondary:hover,
  .news-page .btn-primary:hover,
  .news-page .btn-secondary:hover,
  .seo-service-page .btn-primary:hover,
  .seo-service-page .btn-secondary:hover,
  .chusho-homepage .btn-primary:hover,
  .chusho-homepage .btn-secondary:hover,
  .case-study-page .btn-primary:hover,
  .case-study-page .btn-secondary:hover,
  .application-page .btn-primary:hover,
  .application-page .btn-secondary:hover,
  .contact-page .btn-primary:hover,
  .contact-page .btn-secondary:hover {
    transform: none;
    box-shadow: none;
  }
}

/* ══════════════════════════════════════════════════════════════
   お問い合わせページ（contact.php）
   ══════════════════════════════════════════════════════════════ */

.contact-main {
  position: relative;
  z-index: 1;
}

.contact-inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 48px);
}

.contact-inner--narrow {
  max-width: 880px;
}

.contact-inner--form {
  max-width: 880px;
}

.contact-breadcrumb {
  padding-top: clamp(24px, 4vw, 40px);
  padding-bottom: 0;
}

.contact-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(56px, 8vw, 100px) 0 clamp(40px, 6vw, 64px);
  background:
    radial-gradient(circle at 82% 18%, rgba(0, 163, 196, 0.1), transparent 34%),
    linear-gradient(135deg, #f8fafc 0%, #eef6f9 52%, #ffffff 100%);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.contact-hero .sec-eye {
  display: block;
  margin-bottom: 1rem;
}

.contact-hero__title {
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.03em;
  color: var(--color-navy);
  margin: 0;
  max-width: 760px;
}

.contact-hero__lead {
  margin-top: 1.5rem;
  max-width: 760px;
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.9;
  color: rgba(15, 23, 42, 0.68);
}

.contact-hero__body {
  margin-top: 1.25rem;
  max-width: 760px;
  font-size: 0.9375rem;
  line-height: 1.95;
  color: rgba(15, 23, 42, 0.62);
}

.contact-hero__note {
  margin-top: 1.5rem;
  max-width: 760px;
  font-size: 0.875rem;
  line-height: 1.8;
  color: rgba(15, 23, 42, 0.55);
  padding-top: 1rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.contact-section {
  padding: clamp(64px, 7vw, 96px) 0;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  background: #fff;
}

.contact-section--surface {
  background: #f8fafc;
}

.contact-section--form {
  padding-top: clamp(48px, 6vw, 72px);
}

.contact-section--final {
  padding-bottom: clamp(72px, 8vw, 108px);
}

.contact-section-head {
  margin-bottom: clamp(1.5rem, 3vw, 2rem);
  max-width: 760px;
}

.contact-section-head .sec-eye {
  display: block;
  margin-bottom: 0.75rem;
}

.contact-section__title {
  font-size: clamp(1.375rem, 3vw, 1.875rem);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.03em;
  color: var(--color-navy);
  margin: 0;
}

.contact-section__lead {
  margin-top: 1rem;
  font-size: 0.9375rem;
  line-height: 1.9;
  color: rgba(15, 23, 42, 0.62);
}

.contact-form-wrap {
  max-width: 820px;
}

.contact-form-shell {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

.contact-form {
  padding: clamp(1.5rem, 4vw, 2.5rem);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.contact-form__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}

@media (min-width: 640px) {
  .contact-form__grid--2 {
    grid-template-columns: repeat(2, 1fr);
  }
}

.contact-form__field {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.contact-form__label {
  font-size: 0.875rem;
  font-weight: 500;
  color: #334155;
}

.contact-form__required {
  color: #ef4444;
  font-size: 0.75rem;
  font-weight: 400;
}

.contact-form__input,
.contact-form__textarea {
  width: 100%;
}

.contact-form__textarea {
  resize: vertical;
  min-height: 9rem;
}

.contact-form__error {
  font-size: 0.75rem;
  color: #ef4444;
  margin: 0;
}

.contact-form__alert {
  border-radius: 8px;
  border: 1px solid #fecaca;
  background: #fef2f2;
  padding: 0.875rem 1rem;
  font-size: 0.875rem;
  color: #b91c1c;
}

.contact-form__privacy {
  font-size: 0.6875rem;
  line-height: 1.7;
  color: #9ca3af;
  margin: 0;
}

.contact-form__submit {
  width: 100%;
  justify-content: center;
  padding: 1rem 1.5rem;
  font-size: 1rem;
}

.contact-form-thanks {
  padding: clamp(2.5rem, 6vw, 4rem) clamp(1.5rem, 4vw, 2.5rem);
  text-align: center;
}

.contact-form-thanks__icon {
  width: 5rem;
  height: 5rem;
  margin: 0 auto 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background: #ecfdf5;
  border: 2px solid #a7f3d0;
}

.contact-form-thanks__title {
  font-size: clamp(1.25rem, 3vw, 1.5rem);
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 0.75rem;
}

.contact-form-thanks__body {
  font-size: 0.875rem;
  line-height: 1.8;
  color: #64748b;
  max-width: 28rem;
  margin: 0 auto;
}

.contact-form-thanks__link {
  display: inline-block;
  margin-top: 2rem;
  font-size: 0.875rem;
  color: #475569;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.contact-help-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.5rem 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
  max-width: 760px;
}

@media (min-width: 640px) {
  .contact-help-list {
    grid-template-columns: repeat(2, 1fr);
  }
}

.contact-help-list li {
  position: relative;
  padding-left: 1.1rem;
  font-size: 0.9375rem;
  line-height: 1.75;
  color: rgba(15, 23, 42, 0.68);
}

.contact-help-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 9999px;
  background: var(--color-cyan);
}

.contact-inline-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  margin-top: 1.75rem;
}

.contact-inline-links a {
  font-size: 0.875rem;
  color: var(--color-cyan);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.contact-inline-links a:hover {
  color: #0e7490;
}

.contact-anxiety-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

@media (min-width: 768px) {
  .contact-anxiety-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.contact-anxiety-item {
  padding: 1.25rem 1.375rem;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 6px;
  background: #fff;
}

.contact-section--surface .contact-anxiety-item {
  background: #fff;
}

.contact-anxiety-item__title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-navy);
  margin: 0 0 0.5rem;
}

.contact-anxiety-item p {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.8;
  color: rgba(15, 23, 42, 0.62);
}

.contact-flow {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  max-width: 760px;
}

@media (min-width: 768px) {
  .contact-flow {
    grid-template-columns: repeat(2, 1fr);
  }
}

.contact-flow__item {
  padding: 1.25rem 1.375rem;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 6px;
  background: #fff;
}

.contact-flow__step {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--color-cyan);
  margin-bottom: 0.5rem;
}

.contact-flow__heading {
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-navy);
  margin: 0 0 0.5rem;
}

.contact-flow__item p {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.8;
  color: rgba(15, 23, 42, 0.62);
}

.contact-faq__list {
  max-width: 760px;
}

.contact-final {
  text-align: center;
}

.contact-final__title {
  font-size: clamp(1.375rem, 3vw, 1.75rem);
  font-weight: 700;
  line-height: 1.4;
  color: var(--color-navy);
  margin: 0;
}

.contact-final__body {
  margin: 1rem auto 0;
  max-width: 40rem;
  font-size: 0.9375rem;
  line-height: 1.9;
  color: rgba(15, 23, 42, 0.62);
}

.contact-final-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.875rem;
  margin-top: 1.75rem;
}

.contact-inline-links--footer {
  justify-content: center;
  margin-top: 1.5rem;
}

.contact-hero .contact-inner {
  position: relative;
  z-index: 1;
}

/* ============================================================
   スマホ版：大見出し・ヒーロー調整（767px以下）
   ============================================================ */

br.br-mobile,
br.sp-br {
  display: none;
}

@media (max-width: 767px) {
  br.br-mobile,
  br.sp-br {
    display: block;
  }

  .site-page .hero-title,
  .service-hero__title,
  .works-archive-hero__title,
  .about-hero__title,
  .contact-hero__title,
  .pricing-hero .section-title,
  .service-section__title,
  .works-archive-section__title,
  .about-section__title,
  .contact-section__title {
    word-break: keep-all;
    overflow-wrap: normal;
    line-break: strict;
  }

  .site-page .hero-title,
  .service-hero__title,
  .works-archive-hero__title,
  .about-hero__title,
  .contact-hero__title,
  .pricing-hero .section-title {
    font-size: clamp(2.2rem, 9vw, 3.2rem);
    line-height: 1.28;
    letter-spacing: -0.03em;
  }

  /* トップ #hero のスマホ調整はファイル末尾の専用ブロックで上書き */

  .service-hero,
  .works-archive-hero,
  .about-hero {
    padding: clamp(48px, 12vw, 72px) 0 clamp(40px, 8vw, 56px);
  }

  .seo-service-hero {
    padding: clamp(48px, 12vw, 72px) 0 clamp(40px, 8vw, 56px);
  }

  .contact-hero {
    padding: clamp(40px, 10vw, 56px) 0 clamp(32px, 8vw, 48px);
  }

  .pricing-hero {
    padding-top: clamp(28px, 6vw, 40px);
    padding-bottom: clamp(36px, 8vw, 52px);
  }

  .service-hero__lead,
  .works-archive-hero__lead,
  .about-hero__lead,
  .seo-service-hero__lead,
  .contact-hero__lead,
  .pricing-hero__body,
  .contact-hero__body {
    font-size: 1rem;
    line-height: 1.8;
    margin-top: 1.25rem;
  }

  .service-hero__body,
  .works-archive-hero__body,
  .about-hero__body,
  .seo-service-hero__body {
    font-size: 0.9375rem;
    line-height: 1.8;
  }

  .service-hero__actions,
  .works-archive-hero__actions,
  .about-hero__actions,
  .seo-service-hero__actions,
  .pricing-hero__cta,
  .contact-final-links {
    gap: 0.75rem;
  }

  .service-hero__actions .btn-primary,
  .service-hero__actions .btn-secondary,
  .works-archive-hero__actions .btn-primary,
  .works-archive-hero__actions .btn-secondary,
  .about-hero__actions .btn-primary,
  .about-hero__actions .btn-secondary,
  .seo-service-hero__actions .btn-primary,
  .seo-service-hero__actions .btn-secondary,
  .pricing-hero__cta .btn-primary,
  .pricing-hero__cta .btn-secondary {
    width: 100%;
    justify-content: center;
  }

  .site-page .site-final-cta__title,
  .service-final-cta__title,
  .works-final-cta__title,
  .seo-service-final-cta__title,
  .about-final-cta__title {
    font-size: clamp(1.75rem, 7.5vw, 2.5rem);
    line-height: 1.32;
  }
}

/* ============================================================
   トップ #hero：スマホ専用レイアウト（768px以下）
   PCデザインは変更しない
   ============================================================ */

@media (max-width: 768px) {
  .site-page #hero.hero-section,
  .site-page #hero.hero {
    min-height: auto;
    display: block;
    align-items: flex-start;
    overflow: visible;
    padding-top: clamp(72px, 12vw, 96px);
    padding-bottom: clamp(56px, 12vw, 88px);
  }

  .site-page #hero .hero-bg-logo,
  .site-page #hero .hero-logo-bg,
  .site-page #hero .hero-visual-logo,
  .site-page #hero .hero-mark {
    display: none !important;
  }

  .site-page #hero .hero-inner,
  .site-page #hero .hero-pitch,
  .site-page #hero .hero-content {
    padding-top: 0;
    position: relative;
    z-index: 1;
  }

  .site-page #hero .hero-eyebrow {
    margin-bottom: 1.25rem;
  }

  .site-page #hero .hero-title {
    max-width: 100%;
    font-size: clamp(2.5rem, 10.5vw, 3.2rem);
    line-height: 1.18;
    letter-spacing: -0.04em;
    word-break: keep-all;
    overflow-wrap: normal;
    line-break: strict;
    text-wrap: balance;
  }

  .site-page #hero .hero-title .hero-line {
    display: block;
    white-space: normal;
  }

  .site-page #hero .hero-title .hero-line--1 {
    margin-left: 0;
  }

  .site-page #hero .hero-title .hero-line--2 {
    white-space: nowrap;
    margin-left: 0;
  }

  .site-page #hero .hero-keywords.keyword-row {
    margin-top: 2rem;
    gap: 0.5rem;
    font-size: 0.95rem;
    flex-wrap: wrap;
  }

  .site-page #hero .keyword-row span::after {
    margin-left: 0.5rem;
  }

  .site-page #hero .hero-subcopy {
    margin-top: 1.75rem;
    font-size: 1.05rem;
    line-height: 1.8;
    max-width: 100%;
  }

  .site-page #hero .hero-actions {
    margin-top: 2.25rem;
    display: grid;
    gap: 0.875rem;
    width: 100%;
    max-width: 100%;
  }

  .site-page #hero .hero-actions a {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    justify-content: center;
    min-height: 52px;
    padding: 0 1.25rem;
  }

  .site-page #hero .hero-cta-dark {
    display: flex;
    border-radius: 999px;
    font-size: 0.875rem;
    white-space: normal;
    text-align: center;
  }

  .site-page #hero .hero-cta-ghost {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    min-height: 52px;
    padding: 0.75rem 1.25rem;
    text-align: center;
    box-sizing: border-box;
  }

  .site-page #hero .hero-scroll-indicator {
    display: none;
  }
}

@media (max-width: 480px) {
  .site-page #hero .hero-title {
    font-size: clamp(2.45rem, 10vw, 3.4rem);
  }
}

@media (max-width: 390px) {
  .site-page #hero .hero-title {
    font-size: clamp(2.3rem, 9vw, 3.1rem);
  }
}

/* ============================================================
   ブログ（一覧・記事詳細）
   ============================================================ */

.blog-page,
.blog-article-page {
  position: relative;
  z-index: 1;
}

.blog-section-inner {
  width: 100%;
  max-width: 60rem;
  margin: 0 auto;
  padding-left: clamp(20px, 5vw, 48px);
  padding-right: clamp(20px, 5vw, 48px);
}

.blog-section {
  padding-top: clamp(64px, 10vw, 96px);
  padding-bottom: clamp(64px, 10vw, 96px);
}

.blog-page-header {
  margin-bottom: clamp(2.5rem, 5vw, 3.5rem);
}

.blog-list {
  display: grid;
  gap: 0;
  border-top: 1px solid rgba(15, 36, 65, 0.12);
}

@media (min-width: 900px) {
  .blog-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 2.5rem;
    border-top: none;
  }

  .blog-list .blog-card {
    border-top: 1px solid rgba(15, 36, 65, 0.12);
  }
}

.blog-card {
  display: block;
  padding: clamp(1.5rem, 3vw, 2rem) 0;
  border-bottom: 1px solid rgba(15, 36, 65, 0.12);
  text-decoration: none;
  color: inherit;
  transition: transform 0.2s ease;
}

.blog-card:hover {
  transform: translateY(-2px);
}

.blog-card-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: rgba(71, 85, 105, 0.75);
}

.blog-card-meta time {
  font-family: Inter, 'Noto Sans JP', sans-serif;
  font-weight: 500;
  letter-spacing: 0.04em;
}

.blog-card-meta span {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #0891b2;
}

.blog-card-title {
  margin: 0 0 0.625rem;
  font-size: clamp(1.0625rem, 2.2vw, 1.25rem);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: -0.02em;
  color: #0f172a;
  transition: color 0.2s ease;
}

.blog-card:hover .blog-card-title {
  color: #0891b2;
}

.blog-card-desc {
  margin: 0 0 0.875rem;
  font-size: 0.875rem;
  line-height: 1.8;
  color: rgba(15, 23, 42, 0.58);
}

.blog-card-more {
  display: inline-block;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #0891b2;
  letter-spacing: 0.02em;
}

.blog-empty {
  text-align: center;
  font-size: 0.875rem;
  color: rgba(71, 85, 105, 0.75);
  padding: 2rem 0;
  border-top: 1px solid rgba(15, 36, 65, 0.12);
}

.blog-final-cta {
  padding: clamp(56px, 8vw, 88px) 0;
  background: #f6f8fa;
  border-top: 1px solid rgba(15, 36, 65, 0.08);
}

.blog-final-cta__inner {
  text-align: center;
}

.blog-final-cta__title {
  margin: 0;
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.03em;
  color: #0f172a;
}

.blog-final-cta__body {
  margin: 1.25rem auto 0;
  max-width: 40rem;
  font-size: 0.9375rem;
  line-height: 1.9;
  color: rgba(71, 85, 105, 0.88);
}

.blog-final-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.875rem 1rem;
  margin-top: 2rem;
}

/* パンくず */
.breadcrumb.blog-breadcrumb {
  padding: clamp(20px, 4vw, 28px) 0 0;
}

.breadcrumb.blog-breadcrumb .case-breadcrumb__list {
  font-size: 0.8125rem;
  color: rgba(100, 116, 139, 0.9);
}

/* 記事詳細 */
.blog-article-main {
  padding-bottom: clamp(64px, 10vw, 96px);
}

.blog-article-header {
  padding: clamp(24px, 5vw, 40px) 0 clamp(32px, 6vw, 48px);
}

.blog-article-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem 0.75rem;
  margin-bottom: 1rem;
  font-size: 0.8125rem;
  color: rgba(71, 85, 105, 0.75);
}

.blog-article-meta time {
  font-family: Inter, 'Noto Sans JP', sans-serif;
  font-weight: 500;
  letter-spacing: 0.04em;
}

.blog-article-category {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #0891b2;
}

.blog-article-title {
  margin: 0;
  font-size: clamp(1.625rem, 5vw, 2.25rem);
  font-weight: 700;
  line-height: 1.38;
  letter-spacing: -0.03em;
  color: #0f172a;
}

.blog-article-lead {
  margin: 1.25rem 0 0;
  max-width: 48rem;
  font-size: clamp(1rem, 2vw, 1.125rem);
  line-height: 1.85;
  color: rgba(71, 85, 105, 0.88);
}

.blog-toc {
  max-width: 860px;
  margin: 0 auto clamp(2rem, 4vw, 2.5rem);
  padding: 1.25rem 1.5rem;
  border: 1px solid rgba(15, 36, 65, 0.1);
  border-radius: 0.5rem;
  background: #f8fafc;
}

.blog-toc__label {
  margin: 0 0 0.75rem;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: rgba(71, 85, 105, 0.75);
}

.blog-toc ol {
  margin: 0;
  padding-left: 1.25rem;
  font-size: 0.875rem;
  line-height: 1.8;
  color: rgba(15, 23, 42, 0.78);
}

.blog-toc a {
  color: #0f172a;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.blog-toc a:hover {
  color: #0891b2;
  border-bottom-color: rgba(8, 145, 178, 0.35);
}

.blog-article-body {
  max-width: 860px;
  margin: 0 auto;
  font-size: 1rem;
  line-height: 1.95;
  color: rgba(15, 23, 42, 0.82);
}

.blog-article-body h2 {
  margin: clamp(2.5rem, 5vw, 3.25rem) 0 1rem;
  font-size: clamp(1.25rem, 3.5vw, 1.5rem);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: -0.02em;
  color: #0f172a;
  padding-top: 0.25rem;
  border-top: 1px solid rgba(15, 36, 65, 0.1);
}

.blog-article-body h2:first-of-type {
  margin-top: 0;
  border-top: none;
  padding-top: 0;
}

.blog-article-body h3 {
  margin: 1.75rem 0 0.75rem;
  font-size: clamp(1.0625rem, 2.5vw, 1.1875rem);
  font-weight: 700;
  line-height: 1.5;
  color: #0f172a;
}

.blog-article-body p {
  margin: 0 0 1.25rem;
  line-height: 1.95;
}

.blog-article-body ul {
  margin: 0 0 1.25rem;
  padding-left: 1.35rem;
  line-height: 1.9;
}

.blog-article-body li + li {
  margin-top: 0.35rem;
}

.article-cta {
  margin-top: clamp(3rem, 6vw, 4.5rem);
  padding: clamp(40px, 6vw, 56px) 0;
  background: #f6f8fa;
  border-top: 1px solid rgba(15, 36, 65, 0.08);
  border-bottom: 1px solid rgba(15, 36, 65, 0.08);
}

.article-cta__inner {
  text-align: center;
}

.article-cta__title {
  margin: 0;
  font-size: clamp(1.375rem, 4vw, 1.75rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.03em;
  color: #0f172a;
}

.article-cta__body {
  margin: 1.125rem auto 0;
  max-width: 40rem;
  font-size: 0.9375rem;
  line-height: 1.9;
  color: rgba(71, 85, 105, 0.88);
}

.article-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.875rem 1rem;
  margin-top: 1.75rem;
}

.blog-related {
  margin-top: clamp(2.5rem, 5vw, 3.5rem);
  padding-top: clamp(2rem, 4vw, 2.5rem);
  border-top: 1px solid rgba(15, 36, 65, 0.1);
}

.blog-related__title {
  margin: 0 0 1.25rem;
  font-size: 1.0625rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #0f172a;
}

.blog-related-list {
  display: grid;
  gap: 0;
}

@media (min-width: 768px) {
  .blog-related-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 2rem;
  }

  .blog-related-list .blog-card {
    border-top: 1px solid rgba(15, 36, 65, 0.12);
  }
}

.blog-article-back {
  margin-top: 2.5rem;
  text-align: center;
}

@media (max-width: 767px) {
  .blog-final-cta__actions,
  .article-cta__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .blog-final-cta__actions .btn-primary,
  .blog-final-cta__actions .btn-secondary,
  .article-cta__actions .btn-primary,
  .article-cta__actions .btn-secondary {
    width: 100%;
    justify-content: center;
  }

  .blog-article-title {
    word-break: keep-all;
    overflow-wrap: normal;
    line-break: strict;
  }
}

/* ============================================================
   申し込みページ：コンパクト導入 + フォーム直結レイアウト
   ============================================================ */

.application-hero {
  padding: clamp(72px, 8vw, 110px) 0 clamp(48px, 6vw, 72px);
  min-height: auto;
  background:
    radial-gradient(circle at 82% 18%, rgba(0, 163, 196, 0.08), transparent 32%),
    linear-gradient(135deg, #f8fafc 0%, #eef6f9 52%, #ffffff 100%);
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
}

.application-hero__inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 48px);
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}

.application-hero__intro .sec-eye {
  margin-bottom: 0.875rem;
}

.application-hero__title {
  margin: 0;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.03em;
  color: var(--color-navy);
}

.application-hero__lead {
  margin: 1rem 0 0;
  max-width: 36rem;
  font-size: clamp(0.9375rem, 1.6vw, 1.0625rem);
  line-height: 1.85;
  color: rgba(71, 85, 105, 0.88);
}

.application-hero__notice {
  margin-top: 1.25rem;
}

.application-hero__intro .app-plan-banner {
  margin-top: 1rem;
  margin-bottom: 0;
}

.application-hero__flow {
  margin: 0;
}

.application-flow-mini__heading {
  margin: 0 0 0.5rem;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--color-navy);
}

.application-flow-mini {
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.application-flow-mini__item {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 1rem;
  align-items: baseline;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.application-flow-mini__step {
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  color: var(--color-cyan);
  font-weight: 700;
}

.application-flow-mini__title {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--color-navy);
  font-weight: 700;
}

.application-form-section {
  padding: clamp(56px, 7vw, 88px) 0 clamp(64px, 8vw, 96px);
  background: #fff;
}

.application-form-section__inner {
  width: 100%;
  max-width: 42rem;
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 32px);
}

@media (max-width: 768px) {
  .application-hero {
    padding: 64px 0 48px;
  }

  .application-hero__inner {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .application-hero__title {
    font-size: clamp(2rem, 9vw, 3rem);
    line-height: 1.25;
  }

  .application-flow-mini__item {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

  .application-form-section {
    padding-top: 48px;
  }
}

/* ============================================================
   P1: スマホ横スクロール・見出しはみ出し対策（767px以下）
   ============================================================ */

@media (max-width: 767px) {
  html,
  body {
    max-width: 100%;
    overflow-x: clip;
  }

  body {
    overflow-x: hidden;
  }

  .site-bg-motion,
  #aurora-bg {
    overflow: hidden;
    max-width: 100vw;
  }

  #aurora-bg {
    animation: none;
  }

  .site-bg-motion::before,
  .site-bg-motion::after,
  #aurora-bg::before,
  #aurora-bg::after {
    min-width: 0 !important;
    width: 100vw;
    max-width: 100vw;
    animation: none;
    transform: none;
  }

  .site-bg-motion::before,
  #aurora-bg::before {
    left: 0;
    right: auto;
    opacity: 0.38;
    filter: blur(32px);
  }

  .site-bg-motion::after,
  #aurora-bg::after {
    left: auto;
    right: 0;
    opacity: 0.38;
    filter: blur(32px);
  }

  .service-hero::before,
  .works-archive-hero::before,
  .about-hero::before,
  .seo-service-hero::before,
  .chusho-hero::before,
  .case-hero::before,
  .contact-hero::before,
  .pricing-hero::before {
    animation: none;
    transform: none;
  }

  .site-page .section-header > .section-title,
  .section-title,
  .seo-service-section__title,
  .seo-service-hero__title,
  .chusho-hero .section-title,
  .service-hero__title,
  .works-archive-hero__title,
  .about-hero__title,
  .contact-hero__title,
  .pricing-hero .section-title,
  .application-hero__title,
  .site-page .site-final-cta__title,
  .service-final-cta__title,
  .works-final-cta__title,
  .seo-service-final-cta__title,
  .about-final-cta__title,
  .contact-final__title,
  .pricing-final-cta__title,
  .chusho-final__title {
    width: 100%;
    max-width: 100%;
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: normal;
    line-break: strict;
    text-wrap: balance;
  }

  .site-page .section-header > .section-title,
  .section-title {
    font-size: clamp(1.75rem, 7.2vw, 2.35rem);
    line-height: 1.35;
    letter-spacing: -0.03em;
  }

  #industries .section-title {
    font-size: clamp(1.65rem, 6.8vw, 2.15rem);
    line-height: 1.4;
  }

  .seo-service-section__title {
    font-size: clamp(1.55rem, 6.4vw, 2rem);
    line-height: 1.45;
    letter-spacing: -0.03em;
  }

  .seo-service-hero__title,
  .chusho-hero .section-title {
    font-size: clamp(1.85rem, 7.8vw, 2.65rem);
    line-height: 1.32;
    letter-spacing: -0.03em;
  }

  .site-page .site-final-cta__title,
  .service-final-cta__title,
  .works-final-cta__title,
  .seo-service-final-cta__title,
  .about-final-cta__title,
  .contact-final__title,
  .pricing-final-cta__title,
  .chusho-final__title {
    font-size: clamp(1.65rem, 7vw, 2.35rem);
    line-height: 1.4;
    letter-spacing: -0.03em;
  }

  .final-cta-line--nowrap {
    white-space: normal;
  }

  .final-cta-break-sm br {
    display: block;
  }

  .seo-service-list--grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   P2：スマホレイアウト補助（767px以下）
   見出しはサイズ調整・意味ある改行優先（強制折り返し禁止）
   ============================================================ */

@media (max-width: 767px) {
  /* pricing.php 表・レイアウト */
  .pricing-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .pricing-compare-table th,
  .pricing-compare-table td {
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: normal;
    line-height: 1.75;
    font-size: 0.8125rem;
  }

  .pricing-plan-label {
    white-space: nowrap;
    font-size: 0.6875rem;
  }

  .pricing-toc-grid a {
    font-size: 0.8125rem;
    padding: 0.875rem 1rem;
  }

  .pricing-summary-card,
  .pricing-summary-card__price,
  .pricing-detail-head__title,
  .pricing-detail-price {
    max-width: 100%;
  }

  .pricing-detail-head__title {
    font-size: clamp(1.125rem, 5.2vw, 1.375rem);
    line-height: 1.45;
  }

  .pricing-final-cta__actions {
    flex-direction: column;
    align-items: stretch;
  }

  /* about.php 代表紹介・事務所概要 */
  .about-profile,
  .about-values {
    grid-template-columns: 1fr;
  }

  .profile-info-row,
  .about-overview-list > div {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

  .about-profile-card,
  .about-value-item,
  .about-profile-body {
    width: 100%;
    max-width: 100%;
  }

  .about-final-cta__actions {
    flex-direction: column;
    align-items: stretch;
  }

  /* ボタン：文字単位折り返し禁止・幅拡大＋フォント微調整 */
  .service-hero__actions,
  .seo-service-hero__actions,
  .about-hero__actions,
  .contact-hero__actions,
  .works-archive-actions,
  .chusho-hero__cta,
  .contact-final-links,
  .pricing-final-cta__actions,
  .about-final-cta__actions {
    width: 100%;
  }

  main .btn-primary,
  main .btn-secondary,
  .pricing-table-cta,
  .pricing-compare-table a,
  .pricing-summary-card a,
  .pricing-detail-section .btn-primary,
  .pricing-detail-section .btn-secondary,
  .pricing-final-cta__btn,
  .service-hero__actions .btn-primary,
  .service-hero__actions .btn-secondary,
  .seo-service-hero__actions .btn-primary,
  .seo-service-hero__actions .btn-secondary,
  .about-hero__actions .btn-primary,
  .about-hero__actions .btn-secondary,
  .contact-hero__actions .btn-primary,
  .contact-hero__actions .btn-secondary,
  .works-archive-actions .btn-primary,
  .works-archive-actions .btn-secondary,
  .chusho-hero__cta .btn-primary,
  .chusho-hero__cta .btn-secondary,
  .about-final-cta__actions .btn-primary,
  .about-final-cta__actions .btn-secondary,
  .contact-final-links a {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    font-size: 0.92rem;
    white-space: nowrap;
    justify-content: center;
    text-align: center;
  }
}
