/* =========================================
       清潔感・知性・贅沢な余白・上質なタイポグラフィ
       ========================================= */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html {
      scroll-behavior: smooth;
      font-size: 16px;
      background-color: #f8fafc;
    }
    body {
      font-family: 'Noto Sans JP', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
      color: #1e293b;
      background-color: #ffffff;
      line-height: 2.0;
      letter-spacing: 0.035em;
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden;
    }
    img { max-width: 100%; height: auto; display: block; }
    a { color: inherit; text-decoration: none; }

    /* =========================================
       COLOR PALETTE 
       ========================================= */
    :root {
      --navy:        #0e2a4a;
      --navy-light:  #183c66;
      --navy-dark:   #091b30;
      --teal:        #117a65;
      --teal-light:  #f0f7f5;
      --teal-dark:   #0d5c4c;
      --bg-light:    #f8fafc;
      --bg-white:    #ffffff;
      --border:      #e5e9f0;
      --border-dark: #cbd5e1;
      --text-main:   #1e293b;
      --text-sub:    #475569;
      --text-muted:  #64748b;
      --radius-sm:   4px;       /* 端正なミニマル角丸 */
      --radius-md:   8px;
      --shadow-sm:   0 2px 10px rgba(14, 42, 74, 0.04);
      --shadow-md:   0 8px 30px rgba(14, 42, 74, 0.06);
      --max-w:       1240px;
      --content-w:   960px;
    }

    /* =========================================
       LAYOUT UTILITIES & SECTION SPACING
       たっぷりとした余白（の呼吸感）
       ========================================= */
    .container {
      max-width: var(--max-w);
      margin: 0 auto;
      padding: 0 40px;
    }
    .section {
      padding: 104px 0;
      position: relative;
    }
    @media (max-width: 768px) {
      .section { padding: 76px 0; }
    }
    .section--gray {
      background-color: var(--bg-light);
      border-top: 1px solid var(--border);
      border-bottom: 1px solid var(--border);
    }
    .section--white {
      background-color: var(--bg-white);
    }

    /* セクションラベル（上品な英大文字表記） */
    .section-label {
      display: inline-block;
      font-family: 'Outfit', sans-serif;
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: 0.18em;
      color: var(--teal);
      padding-bottom: 4px;
      border-bottom: 1.5px solid var(--teal);
      margin-bottom: 18px;
      text-transform: uppercase;
    }
    .section-title {
      font-family: 'Noto Serif JP', serif;
      font-size: clamp(1.6rem, 3.2vw, 2.15rem);
      font-weight: 700;
      line-height: 1.5;
      color: var(--navy);
      margin-bottom: 22px;
      letter-spacing: 0.02em;
    }
    .section-lead {
      font-size: 1.02rem;
      color: var(--text-sub);
      margin-bottom: 38px;
      line-height: 2.0;
      max-width: var(--content-w);
    }

    /* =========================================
       BUTTONS WITH THIN ELEGANT ARROWS 
       ========================================= */
    .btn-classico {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 14px;
      background-color: var(--navy);
      color: #ffffff;
      font-size: 0.96rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      padding: 16px 36px;
      border: 1px solid var(--navy);
      border-radius: 4px;
      box-shadow: 0 4px 16px rgba(14, 42, 74, 0.16);
      transition: background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                  color 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                  border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                  transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                  box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1);
      text-decoration: none;
      cursor: pointer;
      line-height: 1.4;
      text-align: center;
      position: relative;
    }
    .btn-classico:hover {
      background-color: #ffffff;
      color: var(--navy);
      border-color: var(--navy);
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(14, 42, 74, 0.18);
    }
    .btn-classico:active {
      transform: translateY(0);
      box-shadow: 0 2px 6px rgba(14, 42, 74, 0.2);
    }
    .btn-classico:focus-visible {
      outline: 2px solid var(--navy);
      outline-offset: 3px;
    }
    .btn__arrow {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
      flex-shrink: 0;
    }
    .btn-classico:hover .btn__arrow {
      transform: translateX(6px);
    }

    /* =========================================
       HEADER
       ========================================= */
    .site-header {
      position: sticky;
      top: 0;
      z-index: 1000;
      background: rgba(255, 255, 255, 0.98);
      backdrop-filter: blur(12px);
      border-bottom: 1px solid var(--border);
      height: 76px;
      display: flex;
      align-items: center;
    }
    .site-header__inner {
      width: 100%;
      max-width: var(--max-w);
      margin: 0 auto;
      padding: 0 40px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
    }
    .site-header__logo {
      display: inline-flex;
      align-items: center;
      text-decoration: none;
      flex-shrink: 0;
      transition: opacity var(--transition-fast);
    }
    .site-header__logo:hover {
      opacity: 0.88;
    }
    .site-header__logo-text {
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    .site-header__logo-title {
      font-size: 1.28rem;
      font-weight: 800;
      color: var(--navy);
      letter-spacing: -0.01em;
      line-height: 1.2;
      white-space: nowrap;
      display: flex;
      align-items: baseline;
      gap: 2px;
    }
    .site-header__logo-dx {
      color: var(--teal);
      font-family: var(--font-heading);
      font-weight: 800;
      letter-spacing: 0.02em;
      margin-left: 1px;
    }
    .site-header__logo-clinic {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: 1.02rem;
      color: var(--navy-mid);
      letter-spacing: 0.01em;
      margin-left: 4px;
    }
    .site-header__logo-sub {
      font-size: 0.72rem;
      font-weight: 500;
      color: var(--text-muted);
      display: block;
      margin-top: 3px;
      letter-spacing: 0.03em;
      white-space: nowrap;
    }
    .site-header__nav {
      display: flex;
      align-items: center;
      gap: 28px;
      flex-shrink: 0;
    }
    .site-header__nav-link {
      font-size: 0.88rem;
      color: var(--text-sub);
      font-weight: 500;
      letter-spacing: 0.05em;
      position: relative;
      padding: 6px 0;
      transition: color 0.3s cubic-bezier(0.16, 1, 0.3, 1);
      white-space: nowrap;
      text-decoration: none;
    }
    /* アンダーラインアニメーション（左からスッと伸びて、右へ抜ける） */
    .site-header__nav-link::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      height: 1.5px;
      background-color: var(--navy);
      transform: scaleX(0);
      transform-origin: right;
      transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
                  background-color 0.3s ease;
    }
    .site-header__nav-link:hover {
      color: var(--navy);
    }
    .site-header__nav-link:hover::after {
      transform: scaleX(1);
      transform-origin: left;
    }
    .site-header__cta {
      background-color: var(--navy);
      color: #ffffff;
      font-size: 0.84rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      padding: 10px 22px;
      border: 1px solid var(--navy);
      border-radius: 4px;
      transition: background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                  color 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                  border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                  transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                  box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1);
      white-space: nowrap;
      display: inline-flex;
      align-items: center;
      gap: 10px;
      text-decoration: none;
      box-shadow: 0 2px 8px rgba(14, 42, 74, 0.12);
    }
    .site-header__cta:hover {
      background-color: #ffffff;
      color: var(--navy);
      border-color: var(--navy);
      transform: translateY(-1px);
      box-shadow: 0 6px 18px rgba(14, 42, 74, 0.18);
    }
    .site-header__cta:active {
      transform: translateY(0);
      box-shadow: 0 2px 6px rgba(14, 42, 74, 0.15);
    }
    .site-header__cta:hover .btn__arrow {
      transform: translateX(4px);
    }

    /* ハンバーガーボタン（スマホ専用） */
    .site-header__hamburger {
      display: none;
      background: none;
      border: none;
      width: 44px;
      height: 44px;
      padding: 10px 8px;
      cursor: pointer;
      position: relative;
      z-index: 1100;
      align-items: center;
      justify-content: center;
    }
    .hamburger-box {
      width: 24px;
      height: 16px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      position: relative;
    }
    .hamburger-line {
      display: block;
      width: 100%;
      height: 1.5px;
      background-color: var(--navy);
      border-radius: 1px;
      transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
                  opacity 0.25s ease;
    }
    .site-header__hamburger.is-active .hamburger-line:nth-child(1) {
      transform: translateY(7.25px) rotate(45deg);
    }
    .site-header__hamburger.is-active .hamburger-line:nth-child(2) {
      opacity: 0;
      transform: translateX(-8px);
    }
    .site-header__hamburger.is-active .hamburger-line:nth-child(3) {
      transform: translateY(-7.25px) rotate(-45deg);
    }

    /* =========================================
       MOBILE MENU DRAWER（）
       ========================================= */
    .mobile-menu {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100vh;
      height: 100dvh;
      background: #ffffff;
      z-index: 1050;
      display: flex;
      flex-direction: column;
      padding: 86px 28px 36px;
      opacity: 0;
      visibility: hidden;
      transform: translateY(-12px);
      transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1),
                  transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
                  visibility 0.35s;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
    }
    .mobile-menu.is-open {
      opacity: 1;
      visibility: visible;
      transform: translateY(0);
    }
    body.menu-open {
      overflow: hidden;
    }
    .mobile-menu__inner {
      display: flex;
      flex-direction: column;
      height: 100%;
      max-width: 480px;
      margin: 0 auto;
      width: 100%;
    }
    .mobile-menu__nav {
      margin-top: 10px;
    }
    .mobile-menu__list {
      list-style: none;
      padding: 0;
      margin: 0;
    }
    .mobile-menu__item {
      border-bottom: 1px solid rgba(14, 42, 74, 0.08);
    }
    .mobile-menu__link {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 16px 4px;
      font-size: 1.05rem;
      font-weight: 600;
      color: var(--navy);
      text-decoration: none;
      letter-spacing: 0.04em;
      transition: color 0.25s ease, padding-left 0.25s ease;
    }
    .mobile-menu__link:hover,
    .mobile-menu__link:active {
      color: var(--teal);
      padding-left: 6px;
    }
    .mobile-menu__arrow {
      width: 16px;
      height: 16px;
      color: var(--text-muted);
      transition: transform 0.25s ease, color 0.25s ease;
    }
    .mobile-menu__link:hover .mobile-menu__arrow,
    .mobile-menu__link:active .mobile-menu__arrow {
      color: var(--teal);
      transform: translateX(4px);
    }
    .mobile-menu__footer {
      margin-top: auto;
      padding-top: 28px;
    }
    .mobile-menu__cta {
      width: 100%;
      justify-content: center;
      padding: 16px 20px;
      font-size: 0.95rem;
      margin-bottom: 16px;
    }
    .mobile-menu__info {
      text-align: center;
      font-size: 0.78rem;
      color: var(--text-muted);
      line-height: 1.6;
    }

    /* =========================================
       HERO (FV) 
       ========================================= */
    .hero {
      background: linear-gradient(180deg, #f3f6f9 0%, #ffffff 100%);
      padding: 56px 0 76px;
      border-bottom: 1px solid var(--border);
      position: relative;
    }
    .hero__inner {
      max-width: var(--max-w);
      margin: 0 auto;
      padding: 0 40px;
    }
    .hero-container {
      background: #ffffff;
      border: 1px solid var(--border);
      border-radius: 20px;
      box-shadow: var(--shadow-md);
      padding: 48px 44px;
      display: flex;
      flex-direction: column;
      gap: 36px;
      position: relative;
      z-index: 10;
    }
    @media (min-width: 900px) {
      .hero-container {
        flex-direction: row;
        align-items: center;
        gap: 60px;
        padding: 56px 60px;
      }
    }

    /* 右上の肉球バッジ（本家アイデンティティの上品な調律） */
    .hero-paw-badge {
      position: absolute;
      top: -20px;
      right: 32px;
      display: flex;
      flex-direction: column;
      align-items: center;
      transform: rotate(4deg);
      z-index: 20;
    }
    .hero-paw-badge svg {
      width: 28px;
      height: 28px;
      color: var(--navy);
      filter: drop-shadow(0 2px 4px rgba(14, 42, 74, 0.15));
      margin-bottom: 2px;
    }
    .hero-paw-badge__label {
      background: var(--teal);
      color: #ffffff;
      font-family: 'Outfit', sans-serif;
      font-weight: 700;
      font-size: 0.7rem;
      letter-spacing: 0.08em;
      padding: 2px 8px;
      border-radius: 3px;
      box-shadow: 0 2px 6px rgba(17, 122, 101, 0.2);
    }

    /* 左側：丸枠の猫イラスト ＋ 重ね円形バッジ */
    .hero-visual {
      position: relative;
      width: 220px;
      height: 220px;
      margin: 0 auto;
      flex-shrink: 0;
    }
    @media (min-width: 900px) {
      .hero-visual {
        width: 290px;
        height: 290px;
        margin: 0;
      }
    }
    .hero-badge-circle {
      position: absolute;
      top: -12px;
      left: -12px;
      width: 92px;
      height: 92px;
      border-radius: 50%;
      background: var(--navy);
      border: 3px solid #ffffff;
      color: #ffffff;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      box-shadow: 0 6px 20px rgba(14, 42, 74, 0.22);
      z-index: 20;
      transform: rotate(-4deg);
    }
    @media (min-width: 900px) {
      .hero-badge-circle {
        top: -16px;
        left: -16px;
        width: 104px;
        height: 104px;
      }
    }
    .hero-badge-circle .b-sub {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 0.76rem;
      font-weight: 700;
      line-height: 1;
      letter-spacing: 0.04em;
    }
    .hero-badge-circle .b-cross {
      font-size: 0.6rem;
      color: #fde047;
      margin: 2px 0;
    }
    .hero-badge-circle .b-main {
      font-family: 'Outfit', sans-serif;
      font-size: 1.05rem;
      font-weight: 800;
      line-height: 1;
      letter-spacing: 0.05em;
    }

    .hero-avatar-frame {
      width: 100%;
      height: 100%;
      border-radius: 50%;
      background: linear-gradient(135deg, var(--teal-light) 0%, #e2eef1 100%);
      border: 5px solid #ffffff;
      box-shadow: inset 0 2px 8px rgba(0,0,0,0.05), 0 6px 24px rgba(14, 42, 74, 0.1);
      display: flex;
      align-items: flex-end;
      justify-content: center;
      overflow: hidden;
      position: relative;
      z-index: 10;
    }
    .hero-avatar-frame img {
      width: 94%;
      height: 94%;
      object-fit: contain;
      object-position: bottom center;
      transform: translateY(6px);
      display: block;
    }

    /* 右側：メインテキスト＆ロゴ＆グリッド */
    .hero-body {
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
    }
    @media (min-width: 900px) {
      .hero-body {
        align-items: flex-start;
        text-align: left;
      }
    }

    .hero-pill-badge {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      background: var(--teal-light);
      color: var(--teal-dark);
      border: 1px solid rgba(17, 122, 101, 0.2);
      font-size: 0.8rem;
      font-weight: 700;
      letter-spacing: 0.05em;
      padding: 4px 14px;
      border-radius: var(--radius-sm);
      margin-bottom: 14px;
    }

    .hero-brand {
      margin-bottom: 6px;
    }
    .hero-brand-name {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: clamp(1.7rem, 3.4vw, 2.4rem);
      font-weight: 800;
      letter-spacing: 0.06em;
      color: var(--navy);
      line-height: 1.2;
    }
    .hero-brand-name span.brand-dx {
      color: var(--teal);
      margin-left: 2px;
    }
    .hero-brand-name span.brand-for {
      font-size: 0.58em;
      font-weight: 700;
      color: var(--text-muted);
      margin-left: 6px;
      letter-spacing: 0.04em;
      vertical-align: baseline;
    }

    .hero-catch {
      font-family: 'Noto Serif JP', serif;
      font-size: clamp(1.4rem, 2.3vw, 1.9rem);
      font-weight: 700;
      line-height: 1.5;
      color: var(--navy);
      margin-bottom: 14px;
      letter-spacing: 0.02em;
    }
    .hero-catch em {
      font-style: normal;
      color: var(--teal);
    }
    .hero-desc {
      font-size: 0.96rem;
      color: var(--text-sub);
      line-height: 1.95;
      margin-bottom: 22px;
      max-width: 720px;
    }

    /* 四角い枠を排除したクリーンな課題リスト（） */
    .hero-pain-list {
      list-style: none;
      padding: 0;
      margin: 0 0 20px 0;
      display: grid;
      grid-template-columns: 1fr;
      gap: 8px 24px;
      width: 100%;
      max-width: 680px;
    }
    @media (min-width: 580px) {
      .hero-pain-list {
        grid-template-columns: 1fr 1fr;
        gap: 10px 28px;
      }
    }
    .hero-pain-item {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 8px 0;
      border-bottom: 1px solid rgba(14, 42, 74, 0.07);
      text-align: left;
    }
    .hero-pain-icon {
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: rgba(17, 122, 101, 0.12);
      color: var(--teal);
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }
    .hero-pain-icon svg {
      width: 12px;
      height: 12px;
    }
    .hero-pain-text {
      font-size: 0.90rem;
      font-weight: 600;
      color: var(--navy);
      letter-spacing: 0.01em;
      line-height: 1.4;
    }

    /* ヒーロー内の公的データ・エビデンス注記（枠線・ラインを完全排除したミニマルスタイル） */
    .hero-data-note {
      display: flex;
      align-items: flex-start;
      gap: 8px;
      background: none;
      border: none;
      padding: 2px 0;
      font-size: 0.81rem;
      color: var(--text-sub);
      line-height: 1.6;
      max-width: 680px;
      width: 100%;
      margin-bottom: 24px;
      text-align: left;
    }
    .hero-data-note__badge {
      display: inline-block;
      flex-shrink: 0;
      background: var(--teal);
      color: #ffffff;
      font-size: 0.68rem;
      font-weight: 700;
      padding: 2px 7px;
      border-radius: 4px;
      letter-spacing: 0.04em;
      margin-top: 1px;
    }
    .hero-data-note strong {
      color: var(--navy);
      font-weight: 700;
    }

    /* =========================================
       SERVICE SECTION
       ========================================= */
    .service-architecture-wrap {
      max-width: 1040px;
      margin: 32px auto 44px;
    }
    .service-architecture-lead {
      text-align: center;
      max-width: 880px;
      margin: 0 auto 34px;
      font-size: 0.94rem;
      line-height: 1.85;
      color: var(--text-sub);
    }
    .service-architecture-lead strong {
      color: var(--navy);
      font-weight: 700;
    }

    /* 3カラム連携フロー（スクショ準拠） */
    .service-dx-flow {
      display: flex;
      align-items: stretch;
      gap: 16px;
      position: relative;
    }
    .service-dx-col {
      background: #ffffff;
      border: 1px solid var(--border);
      border-radius: var(--radius-md);
      padding: 32px 20px 24px;
      box-shadow: var(--shadow-sm);
      display: flex;
      flex-direction: column;
      position: relative;
      transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
                  box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .service-dx-col:hover {
      transform: translateY(-4px);
    }

    /* 左カラム（課題）：0.95 */
    .service-dx-col--input {
      flex: 0.95;
    }
    .service-dx-col--input:hover {
      box-shadow: 0 10px 28px rgba(14, 42, 74, 0.08);
    }

    /* 中央カラム（ネコノテDXの改革プロセス）：1.05 */
    .service-dx-col--process {
      flex: 1.05;
      background: #f8fcfb;
      border: 1px solid rgba(17, 122, 101, 0.25);
      box-shadow: 0 4px 18px rgba(17, 122, 101, 0.05);
      padding: 32px 18px 24px;
    }
    .service-dx-col--process:hover {
      box-shadow: 0 10px 28px rgba(17, 122, 101, 0.1);
    }

    /* 右カラム（改革後の現場）：1.38 の圧倒的主役！院長の目を引くワイド＆リッチデザイン */
    .service-dx-col--output {
      flex: 1.38;
      background: #ffffff;
      border: 2px solid var(--teal);
      border-radius: var(--radius-md);
      padding: 38px 24px 30px;
      box-shadow: 0 12px 36px rgba(17, 122, 101, 0.13);
    }
    .service-dx-col--output:hover {
      box-shadow: 0 18px 46px rgba(17, 122, 101, 0.2);
    }

    /* 上部ピルバッジ */
    .service-dx-badge {
      position: absolute;
      top: -14px;
      left: 50%;
      transform: translateX(-50%);
      background: var(--navy);
      color: #ffffff;
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      padding: 4px 14px;
      border-radius: 20px;
      white-space: nowrap;
      box-shadow: 0 3px 10px rgba(14, 42, 74, 0.18);
    }
    .service-dx-col--process .service-dx-badge {
      background: var(--navy);
      border: 1px solid rgba(255, 255, 255, 0.3);
    }
    /* 右カラムバッジは一番大きく目立たせる */
    .service-dx-col--output .service-dx-badge {
      background: var(--teal);
      font-size: 0.78rem;
      padding: 5px 18px;
      box-shadow: 0 4px 14px rgba(17, 122, 101, 0.32);
    }

    /* ビジュアルアイコン枠 */
    .service-dx-visual {
      width: 52px;
      height: 52px;
      border-radius: 14px;
      margin: 4px auto 14px;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .service-dx-col--input .service-dx-visual {
      background: #fdf2f2;
      color: #dc2626;
    }
    .service-dx-col--process .service-dx-visual {
      background: #eef7f5;
      color: var(--teal);
      border: 1px solid rgba(17, 122, 101, 0.15);
      box-shadow: 0 2px 8px rgba(17, 122, 101, 0.08);
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .service-dx-col--process .service-dx-visual svg {
      width: 26px;
      height: 26px;
    }
    .service-dx-col--output .service-dx-visual {
      width: 58px;
      height: 58px;
      border-radius: 16px;
      background: #e8f7f3;
      color: var(--teal-dark);
      margin-top: 4px;
    }
    .service-dx-visual svg {
      width: 26px;
      height: 26px;
    }
    .service-dx-col--output .service-dx-visual svg {
      width: 30px;
      height: 30px;
    }

    /* 見出しと説明 */
    .service-dx-title {
      font-family: 'Noto Serif JP', serif;
      font-size: 1.02rem;
      font-weight: 700;
      color: var(--navy);
      text-align: center;
      margin-bottom: 6px;
      line-height: 1.4;
    }
    /* 右カラムのタイトルは大きめで院長を惹きつける */
    .service-dx-col--output .service-dx-title {
      font-size: 1.16rem;
      margin-bottom: 8px;
      line-height: 1.45;
    }

    /* 左カラムの課題カード（左ボーダーカラー全廃、端正な白カード） */
    .service-dx-items {
      margin-top: auto;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    .service-dx-col--input .service-dx-item {
      background: #fafbfc;
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      padding: 12px 14px;
      font-size: 0.78rem;
      line-height: 1.55;
      color: var(--text-sub);
    }
    .service-dx-col--input .service-dx-item strong {
      display: block;
      font-weight: 700;
      color: var(--navy);
      font-size: 0.82rem;
      margin-bottom: 4px;
    }

    /* 右カラムの成果カード（主役！左ボーダーカラー全廃、ゆったり清潔なカード） */
    .service-dx-col--output .service-dx-item {
      background: #f8fdfc;
      border: 1px solid rgba(17, 122, 101, 0.2);
      border-radius: var(--radius-sm);
      padding: 14px 16px;
      font-size: 0.84rem;
      line-height: 1.6;
      color: var(--text-main);
      box-shadow: 0 2px 8px rgba(17, 122, 101, 0.04);
    }
    .service-dx-col--output .service-dx-item strong {
      display: flex;
      align-items: center;
      font-weight: 700;
      color: var(--navy);
      font-size: 0.92rem;
      margin-bottom: 4px;
      letter-spacing: 0.02em;
    }
    .service-dx-item__check {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 18px;
      height: 18px;
      background: var(--teal);
      color: #ffffff;
      border-radius: 50%;
      font-size: 0.65rem;
      margin-right: 7px;
      flex-shrink: 0;
    }

    /* 中央カラムの4機能ステップカード（小さなアイコン小箱全廃、スマートな数字＋テキスト） */
    .service-process-list {
      display: flex;
      flex-direction: column;
      gap: 9px;
      margin-top: auto;
    }
    .service-process-card {
      background: #ffffff;
      border: 1px solid rgba(17, 122, 101, 0.16);
      border-radius: var(--radius-sm);
      padding: 11px 13px;
      display: flex;
      align-items: flex-start;
      gap: 10px;
      box-shadow: 0 2px 6px rgba(14, 42, 74, 0.03);
      transition: transform 0.25s ease, border-color 0.25s ease;
    }
    .service-process-card:hover {
      transform: translateX(3px);
      border-color: var(--teal);
    }
    /* スマートなステップ番号（アイコン小箱の代わり） */
    .service-process-card__num {
      font-family: 'Outfit', sans-serif;
      font-size: 0.8rem;
      font-weight: 800;
      color: var(--teal-dark);
      background: var(--teal-light);
      padding: 2px 7px;
      border-radius: 5px;
      letter-spacing: 0.05em;
      flex-shrink: 0;
      margin-top: 1px;
    }
    .service-process-card__text {
      flex: 1;
    }
    .service-process-card__title {
      font-size: 0.83rem;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 2px;
      line-height: 1.35;
    }
    .service-process-card__desc {
      font-size: 0.72rem;
      color: var(--text-muted);
      line-height: 1.4;
    }

    /* カラム間の矢印コネクタ（スクショ風） */
    .service-dx-connector {
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--teal);
      flex-shrink: 0;
      width: 20px;
    }
    .service-dx-connector svg {
      width: 20px;
      height: 20px;
      fill: currentColor;
    }

    .service-accordion {
      border-top: 1px dashed var(--border);
      padding-top: 12px;
      margin-top: 12px;
    }
    .service-accordion summary {
      font-size: 0.86rem;
      color: var(--teal);
      font-weight: 700;
      cursor: pointer;
      list-style: none;
      display: inline-flex;
      align-items: center;
      gap: 6px;
    }
    .service-accordion summary::-webkit-details-marker { display: none; }
    .service-accordion summary::before {
      content: '＋';
      font-size: 0.9rem;
      font-weight: 700;
    }
    .service-accordion[open] summary::before { content: 'ー'; }
    .service-accordion__content {
      margin-top: 10px;
      font-size: 0.9rem;
      color: var(--text-sub);
      line-height: 1.85;
      background: var(--bg-light);
      padding: 16px 20px;
      border-radius: var(--radius-sm);
      border: 1px solid var(--border);
    }

    /* =========================================
       CASE STUDIES
       ========================================= */
    /* =========================================
       SECTION TITLE ORNAMENT（スクショ風 両脇ライン装飾）
       ========================================= */
    .section-title--ornament {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 20px;
    }
    .section-title--ornament::before,
    .section-title--ornament::after {
      content: '';
      display: inline-block;
      width: 44px;
      height: 1px;
      background: currentColor;
      opacity: 0.35;
      vertical-align: middle;
    }
    @media (max-width: 600px) {
      .section-title--ornament {
        gap: 12px;
      }
      .section-title--ornament::before,
      .section-title--ornament::after {
        width: 24px;
      }
    }

    /* =========================================
       CASES SLIDER（改善事例スライド形式）
       ========================================= */
    .cases-slider-wrap {
      position: relative;
      max-width: 1040px;
      margin: 36px auto 0;
      padding: 0 54px;
    }
    .cases-slider-viewport {
      overflow: hidden;
      border-radius: var(--radius-md);
      position: relative;
    }
    .cases-track {
      display: flex;
      transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
      width: 100%;
    }
    .case-slide {
      flex: 0 0 100%;
      min-width: 100%;
      box-sizing: border-box;
      padding: 6px;
    }
    .case-slide__inner {
      background: #f0f7f5;
      border: 1px solid rgba(17, 122, 101, 0.16);
      border-radius: var(--radius-md);
      padding: 36px 40px;
      display: grid;
      grid-template-columns: 1fr 310px;
      gap: 36px;
      align-items: center;
      position: relative;
      box-shadow: 0 4px 20px rgba(14, 42, 74, 0.05);
    }
    .case-slide__header {
      margin-bottom: 18px;
    }
    .case-slide__case-num {
      display: inline-block;
      font-family: 'Outfit', sans-serif;
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.15em;
      color: var(--teal);
      margin-bottom: 6px;
    }
    .case-slide__clinic-title {
      font-family: 'Noto Serif JP', serif;
      font-size: 1.22rem;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 8px;
      line-height: 1.4;
    }
    .case-slide__meta {
      display: flex;
      align-items: center;
      gap: 10px;
      flex-wrap: wrap;
    }
    .case-slide__tag {
      font-size: 0.74rem;
      font-weight: 700;
      color: var(--teal-dark);
      background: rgba(17, 122, 101, 0.10);
      padding: 3px 10px;
      border-radius: 20px;
    }

    /* 白いテキストボックス（スクショ風） */
    .case-slide__text-box {
      background: #ffffff;
      border-radius: var(--radius-sm);
      padding: 24px;
      box-shadow: 0 2px 10px rgba(14, 42, 74, 0.04);
      border: 1px solid rgba(14, 42, 74, 0.06);
    }
    .case-section {
      margin-bottom: 14px;
    }
    .case-section:last-child {
      margin-bottom: 0;
    }
    .case-section__label {
      font-size: 0.76rem;
      font-weight: 700;
      margin-bottom: 5px;
      display: flex;
      align-items: center;
      gap: 6px;
      letter-spacing: 0.04em;
    }
    .case-section__label--before { color: #b91c1c; }
    .case-section__label--after { color: var(--teal); }
    .case-section__text {
      font-size: 0.88rem;
      color: var(--text-main);
      line-height: 1.8;
    }
    .case-slide__result-box {
      margin-top: 14px;
      background: var(--teal-light);
      border-left: 3px solid var(--teal);
      border-radius: var(--radius-sm);
      padding: 12px 14px;
      font-size: 0.86rem;
      font-weight: 700;
      color: var(--navy);
      line-height: 1.65;
    }

    /* 右側ビジュアル写真枠（スクショ風） */
    .case-slide__visual {
      height: 100%;
      min-height: 280px;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    .case-slide__img-wrap {
      width: 100%;
      height: 280px;
      border-radius: 8px;
      overflow: hidden;
      box-shadow: 0 6px 18px rgba(14, 42, 74, 0.08);
      border: 2px solid #ffffff;
      position: relative;
    }
    .case-slide__img-wrap img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      filter: brightness(0.97) contrast(0.92) saturate(0.78);
      transition: filter 0.5s ease, transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .case-slide__img-wrap::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(135deg, rgba(14, 42, 74, 0.08) 0%, rgba(17, 122, 101, 0.05) 100%);
      pointer-events: none;
      mix-blend-mode: multiply;
    }
    .case-slide:hover .case-slide__img-wrap img {
      transform: scale(1.02);
      filter: brightness(0.99) contrast(0.94) saturate(0.85);
    }

    /* スライダーナビゲーション矢印ボタン */
    .slider-arrow {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      width: 48px;
      height: 48px;
      border-radius: 50%;
      background: var(--teal);
      color: #ffffff;
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      z-index: 10;
      box-shadow: 0 4px 14px rgba(17, 122, 101, 0.25);
      transition: background-color 0.25s ease,
                  transform 0.25s cubic-bezier(0.16, 1, 0.3, 1),
                  box-shadow 0.25s ease;
    }
    .slider-arrow:hover {
      background: var(--teal-dark);
      transform: translateY(-50%) scale(1.08);
      box-shadow: 0 6px 18px rgba(17, 122, 101, 0.35);
    }
    .slider-arrow--prev {
      left: 0;
    }
    .slider-arrow--next {
      right: 0;
    }
    .slider-arrow svg {
      width: 22px;
      height: 22px;
    }

    /* ドットインジケーター */
    .slider-dots {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 10px;
      margin-top: 24px;
    }
    .slider-dot {
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: #cbd5e1;
      border: none;
      cursor: pointer;
      padding: 0;
      transition: background-color 0.3s ease, width 0.3s ease, border-radius 0.3s ease;
    }
    .slider-dot.is-active {
      width: 26px;
      border-radius: 10px;
      background: var(--teal);
    }

    @media (max-width: 900px) {
      .cases-slider-wrap {
        padding: 0;
      }
      .case-slide__inner {
        grid-template-columns: 1fr;
        padding: 28px 22px;
        gap: 24px;
      }
      .case-slide__visual {
        min-height: auto;
      }
      .case-slide__img-wrap {
        height: 200px;
      }
      .slider-arrow {
        width: 40px;
        height: 40px;
        top: auto;
        bottom: -50px;
        transform: none;
      }
      .slider-arrow:hover {
        transform: scale(1.08);
      }
      .slider-arrow--prev {
        left: 20%;
      }
      .slider-arrow--next {
        right: 20%;
      }
      .slider-dots {
        margin-top: 40px;
      }
    }

    /* =========================================
       AREA SECTION（対応エリアと訪問条件）
       ========================================= */
    .area-wrap {
      max-width: 1040px;
      margin: 36px auto 0;
    }

    /* 上段：駆けつけ条件 4枚カードグリッド（スクショ上部風） */
    .area-conditions-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 20px;
      margin-bottom: 40px;
    }
    .area-card {
      background: #ffffff;
      border: 1px solid var(--border);
      border-radius: var(--radius-md);
      padding: 26px 22px;
      box-shadow: var(--shadow-sm);
      display: flex;
      flex-direction: column;
      transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
                  box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .area-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 12px 30px rgba(14, 42, 74, 0.09);
    }

    /* スクショ風 丸四角アイコン枠 */
    .area-card__icon-box {
      width: 48px;
      height: 48px;
      border-radius: 12px;
      background: var(--teal-light);
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 16px;
      transition: background-color 0.3s ease;
    }
    .area-card:hover .area-card__icon-box {
      background: #d6eee9;
    }
    .area-card__icon-box svg {
      width: 24px;
      height: 24px;
      color: var(--teal);
    }
    .area-card__title {
      font-weight: 700;
      font-size: 0.96rem;
      color: var(--navy);
      margin-bottom: 6px;
      line-height: 1.4;
    }
    .area-card__highlight {
      font-size: 0.88rem;
      font-weight: 700;
      color: var(--teal-dark);
      margin-bottom: 10px;
      padding-bottom: 8px;
      border-bottom: 1px dashed var(--border);
      line-height: 1.4;
    }
    .area-card__desc {
      font-size: 0.82rem;
      color: var(--text-sub);
      line-height: 1.75;
      margin-top: auto;
    }

    /* 下段：スクショ下部風の地域・拠点コンテナ */
    .area-hub-section-title {
      font-family: 'Noto Serif JP', serif;
      font-size: 1.15rem;
      font-weight: 700;
      color: var(--navy);
      text-align: center;
      margin-bottom: 22px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 16px;
    }
    .area-hub-section-title::before,
    .area-hub-section-title::after {
      content: '';
      display: inline-block;
      width: 32px;
      height: 1px;
      background: var(--navy);
      opacity: 0.3;
    }
    .area-hubs-container {
      background: #ffffff;
      border: 1px solid var(--border);
      border-radius: var(--radius-md);
      box-shadow: var(--shadow-sm);
      padding: 34px 38px 28px;
    }
    .area-hubs-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 36px;
    }
    .area-hub-col {
      display: flex;
      flex-direction: column;
    }
    .area-hub-col:first-child {
      padding-right: 28px;
      border-right: 1px solid var(--border);
    }
    .area-hub-badge-bar {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 12px;
    }
    .area-hub-badge {
      background: var(--navy);
      color: #ffffff;
      font-size: 0.72rem;
      font-weight: 700;
      padding: 3px 10px;
      border-radius: 4px;
      letter-spacing: 0.04em;
    }
    .area-hub-badge--teal {
      background: var(--teal);
    }
    .area-hub-title {
      font-size: 1.05rem;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 8px;
    }
    .area-hub-desc {
      font-size: 0.86rem;
      color: var(--text-sub);
      line-height: 1.8;
      margin-bottom: 14px;
    }
    .area-hub-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: auto;
    }
    .area-hub-tag {
      background: var(--bg-light);
      border: 1px solid var(--border-dark);
      color: var(--navy);
      font-size: 0.78rem;
      font-weight: 600;
      padding: 3px 10px;
      border-radius: var(--radius-sm);
    }

    /* 下部リンクバー（スクショ風「詳しく見る >」） */
    .area-hubs-footer {
      margin-top: 24px;
      padding-top: 18px;
      border-top: 1px solid var(--border);
      display: flex;
      align-items: center;
      justify-content: space-between;
      flex-wrap: wrap;
      gap: 14px;
    }
    .area-hubs-note {
      font-size: 0.82rem;
      color: var(--text-muted);
      line-height: 1.6;
      flex: 1 1 340px;
    }
    .area-hubs-link {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 0.86rem;
      font-weight: 700;
      color: var(--teal);
      text-decoration: none;
      white-space: nowrap;
      flex-shrink: 0;
      transition: color 0.2s ease;
    }
    .area-hubs-link:hover {
      color: var(--navy);
    }
    .area-hubs-link svg {
      width: 16px;
      height: 16px;
      transition: transform 0.25s ease;
    }
    .area-hubs-link:hover svg {
      transform: translateX(4px);
    }

    @media (max-width: 900px) {
      .area-conditions-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
      }
      .area-hubs-grid {
        grid-template-columns: 1fr;
        gap: 28px;
      }
      .area-hub-col:first-child {
        padding-right: 0;
        border-right: none;
        padding-bottom: 24px;
        border-bottom: 1px solid var(--border);
      }
      .area-hubs-container {
        padding: 24px 20px;
      }
    }
    @media (max-width: 540px) {
      .area-conditions-grid {
        grid-template-columns: 1fr;
      }
    }

    /* =========================================
       PRICING CARDS & COMPARISON
       ========================================= */
    .pricing-wrap {
      max-width: 980px;
      margin: 36px auto 0;
    }

    /* 上部カテゴリ帯（スクショ風） */
    .pricing-category-bar {
      background: var(--navy);
      color: #ffffff;
      text-align: center;
      padding: 12px 20px;
      font-size: 0.96rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      border-radius: var(--radius-md) var(--radius-md) 0 0;
      position: relative;
    }
    .pricing-category-bar::after {
      content: '';
      position: absolute;
      bottom: -8px;
      left: 50%;
      transform: translateX(-50%);
      width: 0;
      height: 0;
      border-left: 8px solid transparent;
      border-right: 8px solid transparent;
      border-top: 8px solid var(--navy);
    }

    .pricing-cards-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
      margin-top: 20px;
    }

    /* 各プランカード */
    .pricing-card {
      background: #ffffff;
      border: 1px solid var(--border);
      border-radius: var(--radius-md);
      box-shadow: var(--shadow-sm);
      display: flex;
      flex-direction: column;
      overflow: hidden;
      transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
                  box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .pricing-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 14px 36px rgba(14, 42, 74, 0.10);
    }

    /* おすすめ中規模プランカード */
    .pricing-card--featured {
      border: 2px solid var(--teal);
      box-shadow: 0 8px 28px rgba(17, 122, 101, 0.12);
    }

    /* プランヘッダー部 */
    .pricing-card__header {
      padding: 24px 24px 18px;
      text-align: center;
      background: #ffffff;
    }
    .pricing-card--featured .pricing-card__header {
      background: #f8fdfc;
    }
    .pricing-card__badge {
      display: inline-block;
      padding: 5px 14px;
      border-radius: 20px;
      font-size: 0.76rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      border: 1px solid var(--border-dark);
      color: var(--navy);
      background: #ffffff;
      margin-bottom: 12px;
    }
    .pricing-card--featured .pricing-card__badge {
      background: var(--teal);
      border-color: var(--teal);
      color: #ffffff;
      box-shadow: 0 2px 8px rgba(17, 122, 101, 0.25);
    }
    .pricing-card__title {
      font-family: 'Noto Serif JP', serif;
      font-size: 1.15rem;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 4px;
    }
    .pricing-card__target {
      font-size: 0.82rem;
      color: var(--text-muted);
    }

    /* 価格ハイライト部（スクショ風） */
    .pricing-card__price-box {
      padding: 16px 24px 20px;
      text-align: center;
      background: #ffffff;
      border-top: 1px dashed var(--border);
      border-bottom: 1px dashed var(--border);
    }
    .pricing-card--featured .pricing-card__price-box {
      background: rgba(17, 122, 101, 0.03);
    }
    .pricing-card__price-label {
      font-size: 0.78rem;
      font-weight: 700;
      color: var(--text-muted);
      margin-bottom: 4px;
    }
    .pricing-card__price-val {
      font-family: 'Outfit', sans-serif;
      font-size: 1.85rem;
      font-weight: 800;
      color: var(--navy);
      line-height: 1.2;
      display: flex;
      align-items: baseline;
      justify-content: center;
      gap: 4px;
    }
    .pricing-card--featured .pricing-card__price-val {
      color: var(--teal-dark);
    }
    .pricing-card__price-unit {
      font-size: 0.88rem;
      font-weight: 500;
      color: var(--text-sub);
    }
    .pricing-card__price-sub {
      margin-top: 8px;
      font-size: 0.78rem;
      color: var(--text-sub);
      background: var(--bg-light);
      display: inline-block;
      padding: 3px 10px;
      border-radius: var(--radius-sm);
    }

    /* 含まれる機能・サービステーブル（スクショ風の行揃え） */
    .pricing-card__features {
      padding: 22px 24px;
      flex: 1;
      display: flex;
      flex-direction: column;
      gap: 12px;
    }
    .pricing-card__feature-item {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      font-size: 0.88rem;
      line-height: 1.6;
      padding-bottom: 10px;
      border-bottom: 1px solid rgba(0,0,0,0.04);
    }
    .pricing-card__feature-item:last-child {
      border-bottom: none;
      padding-bottom: 0;
    }
    .pricing-card__check {
      color: var(--teal);
      font-weight: 800;
      font-size: 0.96rem;
      flex-shrink: 0;
      margin-top: 1px;
    }
    .pricing-card__feature-content strong {
      color: var(--navy);
      font-weight: 700;
    }
    .pricing-card__feature-desc {
      font-size: 0.78rem;
      color: var(--text-muted);
      margin-top: 2px;
    }

    /* 下部注記ソフトカード（スクショ下部丸型ボックス風） */
    .pricing-notes-card {
      background: #f8fafc;
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 26px 30px;
      margin-top: 28px;
      box-shadow: var(--shadow-sm);
    }
    .pricing-notes-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 24px;
    }
    .pricing-note-block__title {
      font-weight: 700;
      font-size: 0.92rem;
      color: var(--navy);
      margin-bottom: 8px;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .pricing-note-block__title svg {
      width: 18px;
      height: 18px;
      color: var(--teal);
      flex-shrink: 0;
    }
    .pricing-note-block__body {
      font-size: 0.85rem;
      color: var(--text-sub);
      line-height: 1.8;
    }
    .pricing-notes-card__footer {
      margin-top: 18px;
      padding-top: 14px;
      border-top: 1px solid var(--border);
      font-size: 0.80rem;
      color: var(--text-muted);
      text-align: center;
    }

    @media (max-width: 800px) {
      .pricing-cards-grid {
        grid-template-columns: 1fr;
        gap: 20px;
      }
      .pricing-notes-grid {
        grid-template-columns: 1fr;
        gap: 16px;
      }
      .pricing-notes-card {
        padding: 20px 18px;
      }
    }

    /* =========================================
       BOUNDARY SECTION
       ========================================= */
    .boundary-cards {
      display: flex;
      flex-direction: column;
      gap: 18px;
      margin-bottom: 24px;
    }
    .boundary-card {
      background: #ffffff;
      border: 1px solid var(--border);
      border-radius: var(--radius-md);
      box-shadow: var(--shadow-sm);
      overflow: hidden;
      display: grid;
      grid-template-columns: 1fr 1fr;
      transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
                  box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .boundary-card:hover {
      box-shadow: 0 10px 28px rgba(14, 42, 74, 0.08);
    }
    .boundary-card__side {
      padding: 26px 28px;
      display: flex;
      flex-direction: column;
    }

    /* ──── 左側：対応外（トーンダウン・控えめな文字） ──── */
    .boundary-card__side--out {
      background: #f8fafc;
      border-right: 1px solid var(--border);
    }
    .boundary-card__badge--out {
      background: #e9eff5;
      color: #64748b;
      border: 1px solid #cbd5e1;
      font-size: 0.72rem;
      font-weight: 600;
      padding: 3px 8px;
      border-radius: var(--radius-sm);
      display: inline-flex;
      align-items: center;
      gap: 5px;
      margin-bottom: 10px;
      width: fit-content;
    }
    .boundary-card__side--out .boundary-card__title {
      font-size: 0.90rem;
      font-weight: 600;
      color: #64748b;
      margin-bottom: 8px;
      line-height: 1.5;
    }
    .boundary-card__side--out .boundary-card__desc {
      font-size: 0.82rem;
      color: #8896a6;
      line-height: 1.75;
      margin: 0;
    }

    /* ──── 右側：ネコノテが担う役割（主役・大きな文字・高コントラスト） ──── */
    .boundary-card__side--in {
      background: #ffffff;
      border-left: 3px solid var(--teal);
      padding-left: 26px;
    }
    .boundary-card__badge--in {
      background: var(--teal);
      color: #ffffff;
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      padding: 4px 10px;
      border-radius: var(--radius-sm);
      display: inline-flex;
      align-items: center;
      gap: 5px;
      margin-bottom: 10px;
      width: fit-content;
      box-shadow: 0 2px 6px rgba(17, 122, 101, 0.2);
    }
    .boundary-card__side--in .boundary-card__title {
      font-size: 1.12rem;
      font-weight: 700;
      color: var(--navy);
      letter-spacing: 0.02em;
      margin-bottom: 8px;
      line-height: 1.5;
    }
    .boundary-card__side--in .boundary-card__desc {
      font-size: 0.92rem;
      color: var(--text-main);
      line-height: 1.85;
      margin: 0;
    }

    /* =========================================
       FLOW CARDS（横並びステップカード）
       ========================================= */
    .flow-cards {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 0;
      margin-top: 40px;
      position: relative;
    }
    .flow-card {
      background: #ffffff;
      border: 1px solid var(--border);
      border-radius: var(--radius-md);
      padding: 28px 24px 30px;
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      position: relative;
      transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                  box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1);
      /* カード間に矢印スペース */
      margin-right: 36px;
    }
    .flow-card:last-child {
      margin-right: 0;
    }
    .flow-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 12px 32px rgba(14, 42, 74, 0.10);
    }

    /* カード右端の矢印 */
    .flow-card:not(:last-child)::after {
      content: '';
      position: absolute;
      right: -26px;
      top: 50%;
      transform: translateY(-50%);
      width: 0;
      height: 0;
      border-top: 11px solid transparent;
      border-bottom: 11px solid transparent;
      border-left: 14px solid var(--teal);
      z-index: 2;
    }

    .flow-card__step {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      background: var(--teal);
      color: #ffffff;
      font-family: 'Outfit', sans-serif;
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      padding: 4px 10px;
      border-radius: 20px;
      margin-bottom: 12px;
    }
    .flow-card__step-label {
      opacity: 0.75;
      margin-right: 2px;
    }
    .flow-card__step-num {
      font-size: 0.9rem;
      letter-spacing: 0;
    }
    .flow-card__icon {
      width: 64px;
      height: 64px;
      border-radius: 50%;
      background: var(--teal-light);
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto 16px;
      transition: background-color 0.3s ease;
    }
    .flow-card:hover .flow-card__icon {
      background-color: #d4edea;
    }
    .flow-card__icon svg {
      width: 30px;
      height: 30px;
      color: var(--teal);
    }
    .flow-card__title {
      font-weight: 700;
      font-size: 1.0rem;
      color: var(--navy);
      line-height: 1.5;
      margin-bottom: 10px;
      letter-spacing: 0.02em;
    }
    .flow-card__body {
      font-size: 0.88rem;
      color: var(--text-sub);
      line-height: 1.85;
      text-align: left;
    }
    .flow-card__tag {
      display: inline-block;
      background: var(--bg-light);
      border: 1px solid var(--border);
      color: var(--teal-dark);
      font-size: 0.76rem;
      font-weight: 600;
      padding: 2px 8px;
      border-radius: var(--radius-sm);
      margin-top: 10px;
    }

    @media (max-width: 960px) {
      .flow-cards {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px 36px;
      }
      .flow-card {
        margin-right: 0;
      }
      .flow-card:not(:last-child)::after {
        display: none;
      }
      /* 1列目右カード → 2列目左カード の下向き矢印 */
      .flow-card:nth-child(2)::after {
        display: block;
        right: -26px;
        top: 50%;
      }
    }
    @media (max-width: 600px) {
      .flow-cards {
        grid-template-columns: 1fr;
        gap: 32px;
      }
      .flow-card:not(:last-child)::after {
        display: block;
        right: 50%;
        top: auto;
        bottom: -26px;
        transform: translateX(50%) rotate(90deg);
      }
    }

    /* =========================================
       FAQ SECTION
       ========================================= */
    .faq-list { display: flex; flex-direction: column; }
    .faq-item { border-bottom: 1px solid var(--border); }
    .faq-item:first-child { border-top: 1px solid var(--border); }
    .faq-q {
      display: flex;
      gap: 16px;
      align-items: flex-start;
      padding: 22px 6px;
      cursor: pointer;
      font-weight: 700;
      font-size: 1.04rem;
      color: var(--navy);
      list-style: none;
      user-select: none;
    }
    .faq-q::-webkit-details-marker { display: none; }
    .faq-q-icon {
      font-family: 'Outfit', sans-serif;
      font-size: 1.15rem;
      font-weight: 800;
      color: var(--teal);
      flex-shrink: 0;
      line-height: 1.2;
    }
    .faq-a {
      padding: 0 6px 24px 32px;
      font-size: 0.95rem;
      color: var(--text-sub);
      line-height: 1.95;
    }

    /* =========================================
       FORM SECTION
       ========================================= */
    .form-card {
      background: #ffffff;
      border-radius: var(--radius-md);
      box-shadow: var(--shadow-sm);
      border: 1px solid var(--border);
      padding: 40px;
      max-width: var(--content-w);
      margin: 0 auto;
    }
    .form-card--embed {
      max-width: 720px;
      padding: 24px 16px 20px;
      overflow: hidden;
    }
    .form-iframe {
      width: 100%;
      height: 1450px;
      border: none;
      display: block;
      margin: 0 auto;
      background: transparent;
    }
    .form-external-link {
      margin-top: 18px;
      font-size: 0.82rem;
      color: var(--text-muted);
      text-align: center;
      line-height: 1.6;
    }
    .form-external-link a {
      color: var(--teal);
      text-decoration: underline;
      font-weight: 600;
      transition: color var(--transition-fast);
    }
    .form-external-link a:hover {
      color: var(--navy);
    }

    /* =========================================
       FORM SECTION BACKGROUND (Scenic Ambient Style)
       ========================================= */
    .section--form-bg {
      position: relative;
      background: url('images/bg_area.jpg') center center / cover no-repeat;
      padding: 72px 0 96px;
    }
    .section--form-bg::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0; bottom: 0;
      background: linear-gradient(180deg, rgba(240, 245, 250, 0.90) 0%, rgba(248, 250, 252, 0.94) 100%);
      z-index: 1;
    }
    .section--form-bg .container {
      position: relative;
      z-index: 2;
    }

    /* =========================================
       FOOTER
       ========================================= */
    .site-footer {
      background: var(--navy-dark);
      color: rgba(255, 255, 255, 0.75);
      padding: 56px 24px 80px;
      text-align: center;
      font-size: 0.86rem;
      line-height: 1.9;
    }
    .site-footer__badges {
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 20px;
    }
    .site-footer__badge {
      background: rgba(255, 255, 255, 0.08);
      border: 1px solid rgba(255, 255, 255, 0.18);
      padding: 4px 12px;
      border-radius: var(--radius-sm);
      font-size: 0.74rem;
      color: #ffffff;
    }

    /* =========================================
       FLOATING CTA (Mobile)
       ========================================= */
    .floating-cta {
      display: none;
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 999;
      background: rgba(255, 255, 255, 0.96);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      padding: 10px 16px;
      padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
      border-top: 1px solid rgba(14, 42, 74, 0.1);
      box-shadow: 0 -4px 20px rgba(0,0,0,0.08);
      text-align: center;
      transform: translateY(100%);
      transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s ease;
      opacity: 0;
      pointer-events: none;
    }
    .floating-cta.is-visible {
      transform: translateY(0);
      opacity: 1;
      pointer-events: auto;
    }
    .floating-cta a {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      width: 100%;
      background-color: var(--navy);
      color: #ffffff;
      font-weight: 700;
      font-size: 0.94rem;
      letter-spacing: 0.04em;
      padding: 13px 18px;
      border: 1px solid var(--navy);
      border-radius: 4px;
      transition: background-color 0.25s ease, color 0.25s ease;
      text-decoration: none;
      box-shadow: 0 4px 12px rgba(14, 42, 74, 0.2);
    }
    .floating-cta a:active {
      transform: scale(0.98);
    }
    .floating-cta a:hover {
      background-color: #ffffff;
      color: var(--navy);
    }
    .floating-cta a:hover .btn__arrow {
      transform: translateX(4px);
    }

    /* =========================================
       RESPONSIVE
       ========================================= */
    @media (max-width: 960px) {
      .site-header__nav { display: none; }
      .site-header__hamburger { display: flex; }
      .site-header__inner { padding: 0 20px; }
      .site-header__logo-sub { display: none; }
      .site-header__logo-title { font-size: 1.15rem; }
      .site-header__logo-clinic { font-size: 0.95rem; }
      .hero-visual { order: -1; }
      .boundary-card { grid-template-columns: 1fr; }
      .boundary-card__side--out { border-right: none; border-bottom: 1px solid var(--border); padding: 22px 20px; }
      .boundary-card__side--in { border-left: none; border-top: 3px solid var(--teal); padding: 24px 20px; }
      .service-dx-flow { flex-direction: column; gap: 28px; }
      .service-dx-connector { width: 100%; height: 20px; transform: rotate(90deg); margin: -10px 0; }
    }
    @media (max-width: 768px) {
      .floating-cta { display: block; }
      body { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
    }
    @media (max-width: 640px) {
      .form-card { padding: 24px 16px; }
      .form-card--embed { padding: 12px 4px 18px; border-radius: var(--radius-sm); }
      .form-iframe { height: 1650px; }
    }

    /* =========================================
       SCROLL-TRIGGERED ANIMATIONS
       静かなフェードイン・スライドイン
       ========================================= */
    [data-animate] {
      opacity: 0;
      will-change: opacity, transform;
    }
    [data-animate="fade-up"] {
      transform: translateY(36px);
    }
    [data-animate="fade-in"] {
      transform: none;
    }
    [data-animate="slide-left"] {
      transform: translateX(-48px);
    }
    [data-animate="slide-right"] {
      transform: translateX(48px);
    }
    [data-animate].is-visible {
      opacity: 1;
      transform: translate(0, 0);
      transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1),
                  transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
    }
    /* 遅延クラス */
    [data-animate].delay-1 { transition-delay: 0.1s; }

    /* =========================================
       BACK TO TOP BUTTON
       ========================================= */
    .back-to-top {
      position: fixed;
      bottom: 36px;
      right: 32px;
      z-index: 999;
      width: 48px;
      height: 48px;
      border-radius: 50%;
      background: var(--navy);
      border: 1px solid rgba(255, 255, 255, 0.25);
      color: #ffffff;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      opacity: 0.45;
      visibility: visible;
      transform: translateY(0);
      pointer-events: auto;
      transition: opacity 0.25s ease,
                  transform 0.25s cubic-bezier(0.16, 1, 0.3, 1),
                  background-color 0.25s ease,
                  box-shadow 0.25s ease;
      box-shadow: 0 4px 16px rgba(14, 42, 74, 0.22);
      text-decoration: none;
    }
    .back-to-top.is-active,
    .back-to-top.is-visible,
    .back-to-top:hover {
      opacity: 1;
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(14, 42, 74, 0.35);
    }
    .back-to-top:hover {
      background-color: var(--teal);
      border-color: var(--teal);
    }
    .back-to-top svg {
      transition: transform 0.25s ease;
    }
    .back-to-top:hover svg {
      transform: translateY(-2px);
    }
    @media (max-width: 768px) {
      .back-to-top {
        bottom: calc(76px + env(safe-area-inset-bottom, 0px));
        right: 16px;
        width: 44px;
        height: 44px;
        box-shadow: 0 4px 16px rgba(14, 42, 74, 0.32);
      }
    }

    /* 役割分担セクション用 肉球アイコン（端正な白抜き） */
    .boundary-paw-icon {
      width: 14px;
      height: 14px;
      display: inline-block;
      vertical-align: -1px;
      flex-shrink: 0;
      fill: #ffffff;
      opacity: 0.95;
      transition: transform 0.25s ease;
    }
    .boundary-card:hover .boundary-paw-icon {
      transform: scale(1.12);
    }
