  /* ================================================================
     Pattern 7: BoCRM + Collabo ハイブリッド
     - BoCRM の余白・編集的トーン・無限ロゴスクロール
     - Collabo の親しみ青基調・メガメニュー・5ステップ・トラストバー
     - ルール: 各セクション 1画像、レイアウト重複なし、AI臭排除
     ================================================================ */
  :root {
    --c-accent: #1e73be;    /* vos2サイト実測: リンク・アクセント青 */
    --c-cta: #9b8d77;       /* vos2サイト実測: ブランドボタン色（暖色タウプ） */
    --c-navy-deep: #161410; /* vos2サイト実測: ダーク基調（ほぼ黒） */
    --c-navy: #163a6e;      /* ロゴ由来: ダークネイビー（セクション背景） */
    --c-soft: #f8f8f8;      /* vos2サイト実測: ページ背景色 */
    --c-line: #e6e6e6;      /* vos2サイト実測: ボーダー・区切り色 */
  }
  body {
    font-family: "Noto Sans JP", sans-serif;
    color: #303030; /* vos2サイト実測: 本文テキスト色 */
    margin: 0;             /* ブラウザ既定の8pxマージンをリセット（左右非対称の原因） */
    overflow-x: hidden;    /* 横方向のはみ出しをクリップ */
  }
  /* 語句の途中で折り返さない汎用クラス（句点孤立防止など） */
  .nobreak { white-space: nowrap; }
  .sec { padding: 96px 0; border: 0; }

  /* ============== 画面右下 固定サイドCTA（横並び・スタック） ============== */
  .side-cta {
    position: fixed;
    right: 24px;
    bottom: 96px;
    z-index: 80;
    display: flex;
    flex-direction: column;
    gap: 10px;
    pointer-events: none;
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
  }
  .side-cta.is-hidden {
    opacity: 0;
    transform: translateY(20px);
    visibility: hidden;
    pointer-events: none;
  }
  .side-cta__btn {
    pointer-events: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 16px;
    min-width: 180px;
    color: #fff;
    font-size: 17px;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-decoration: none;
    line-height: 1.3;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    border: none;
    box-shadow: 0 6px 16px rgba(11, 32, 64, 0.25);
  }
  .side-cta__btn--primary { background: var(--c-accent); }
  .side-cta__btn--sub { background: var(--c-navy); }
  .side-cta__btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 22px rgba(11, 32, 64, 0.32);
  }
  .side-cta__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #ffd54f;
    color: var(--c-navy-deep);
    font-size: 9px;
    flex-shrink: 0;
  }
  @media (max-width: 720px) {
    .side-cta { display: none; }
  }

  /* ============== HEADER with MEGA MENU (Collabo風) ============== */
  .top-strip {
    background: #fff;
    border-bottom: 1px solid var(--c-line);
    font-size: 17px;
    color: #5a6b85;
  }
  .top-strip__inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 8px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .top-strip__crumbs span { margin-right: 12px; }
  .top-strip__util { display: flex; gap: 18px; align-items: center; }
  .top-strip__util a { color: #5a6b85; }
  .top-strip__tel {
    font-weight: 700;
    color: var(--c-navy-deep);
    font-size: 17px;
  }
  .top-strip__tel small { color: var(--c-accent); font-size: 12px; letter-spacing: 0.1em; margin-right: 4px; }

  .site-header {
    background: #fff;
    position: sticky;
    top: 0;
    z-index: 100;
    border-bottom: 1px solid var(--c-line);
  }
  .site-header__inner {
    padding: 14px 24px;
    max-width: 1180px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
  }

  /* Header logo */
  .site-header__logo {
    display: inline-flex;
    align-items: center;
    line-height: 1;
  }
  .header-logo-bg {
    background: #ffffff;
    display: block;
    line-height: 0;
    padding: 4px 8px;
  }
  .header-logo {
    height: 56px;
    width: auto;
    max-width: none;
    display: block;
  }
  /* Legacy text logo (footer) */
  .vos-logo {
    display: inline-block;
    line-height: 1.1;
  }
  .vos-logo__main {
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0.04em;
    color: var(--c-navy-deep);
  }
  .vos-logo__main em {
    color: var(--c-accent);
    font-style: normal;
    font-weight: 900;
    margin-left: 2px;
  }
  .vos-logo__sub {
    font-size: 9px;
    color: #4a5b75;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    display: block;
    margin-top: 2px;
  }
  .vos-logo__source {
    font-size: 9px;
    color: #5a6b85;
    margin-top: 2px;
    letter-spacing: 0.04em;
  }
  .vos-logo__source small { color: var(--c-accent); margin-right: 2px; }
  .site-header__nav {
    display: flex;
    align-items: center;
    gap: 28px;
    position: relative;
    flex: 1;
    justify-content: flex-end;
  }
  .site-header__nav > .nav-item {
    position: relative;
    padding: 14px 0;
  }
  .site-header__nav > .nav-item > a {
    font-size: 17px;
    font-weight: 700;
    font-family: "Noto Sans JP", sans-serif;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: #303030;
    letter-spacing: 0.04em;
    white-space: nowrap;
    text-decoration: none;
  }
  .site-header__nav > .nav-item > a::after {
    content: "▾";
    font-size: 17px;
    color: #5a6b85;
    line-height: 1;
  }
  .site-header__nav > .nav-item.no-arrow > a::after { display: none; }

  /* Mega menu panel */
  .mega {
    position: absolute;
    top: 100%;
    left: -16px;
    background: #fff;
    border: 1px solid var(--c-line);
    border-top: 3px solid var(--c-accent);
    padding: 24px 28px;
    min-width: 320px;
    display: none;
    z-index: 200;
    box-shadow: 0 12px 32px rgba(0, 30, 80, 0.08);
  }
  .nav-item:hover .mega { display: grid; }
  .mega--wide { min-width: 720px; grid-template-columns: 1fr 1fr; gap: 36px; }
  .mega--list { grid-template-columns: 1fr 1fr; gap: 0 36px; }
  .mega h5 {
    font-size: 12px;
    color: var(--c-accent);
    letter-spacing: 0.16em;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--c-line);
    padding-bottom: 10px;
    font-weight: 700;
  }
  .mega ul {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0;
    list-style: none;
    margin: 0;
  }
  .mega ul li { list-style: none; }
  .mega ul li a {
    font-size: 13.5px;
    color: #1a2435;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    padding: 8px 10px;
    text-decoration: none;
    line-height: 1.5;
    font-weight: 500;
    border-radius: 4px;
    transition: background 0.15s ease, color 0.15s ease;
  }
  .mega ul li a small {
    color: #7a8699;
    font-size: 11px;
    letter-spacing: 0.04em;
    font-weight: 400;
  }
  .mega ul li a:hover {
    color: var(--c-accent);
    background: var(--c-soft);
  }
  .mega ul li a:hover small { color: var(--c-accent); }
  .mega__highlight {
    background: var(--c-soft);
    padding: 16px 18px;
    margin-top: 14px;
    border-radius: 4px;
  }
  .mega__highlight strong {
    display: block;
    font-size: 13px;
    color: var(--c-navy-deep);
    margin-bottom: 6px;
    font-weight: 700;
  }
  .mega__highlight p { font-size: 12px; color: #5a6b85; line-height: 1.7; margin: 0; }
  .mega__highlight a {
    display: inline-block;
    margin-top: 10px;
    font-size: 12px;
    color: var(--c-accent);
    font-weight: 700;
    text-decoration: none;
  }
  .mega__highlight a:hover { text-decoration: underline; }

  .site-header__cta {
    background: var(--c-navy);
    color: #fff;
    padding: 14px 28px;
    border-radius: 0;
    font-size: 17px;
    font-weight: 700;
    font-family: "Noto Sans JP", sans-serif;
    letter-spacing: 0.04em;
    white-space: nowrap;
    flex-shrink: 0;
  }

  /* ============== SECTION 01: FV — left text / right image (2-column hero) ============== */
  .fv {
    position: relative;
    height: 800px;              /* 740→800: CTAボタン下に余白を確保 */
    min-height: 700px;
    max-height: 860px;
    overflow: hidden;
    background: #fff;
    border-bottom: 1px solid var(--c-line);
  }

  /* Right column: product image fills right 62% */
  .fv__product {
    position: absolute;
    right: 0; top: 0; bottom: 0;
    width: 62%;
    z-index: 1;
    line-height: 0;
  }
  .fv__visual {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
  }
  /* Seamless fade: image bleeds into white on its left edge */
  .fv__product::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, #fff 0%, rgba(255,255,255,0) 38%);
    z-index: 2;
    pointer-events: none;
  }

  .fv__bg { display: none; }
  .fv__bg-label { display: none; }
  /* fv-main.png already contains the logo — hide the separate logo element */
  .fv__logo { display: none; }

  /* Left column: text block, top-aligned */
  .fv__inner {
    position: absolute;
    left: max(24px, calc((100% - 1180px) / 2 + 24px));
    top: 100px;
    transform: none;
    width: 500px;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
  }

  .fv__eyebrow {
    display: inline-block;
    background: var(--c-navy);
    color: #fff;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 7px 20px;
    border-radius: 0;
    margin-bottom: -24px;
  }
  .fv__title {
    font-size: 62px;
    font-weight: 900;
    line-height: 1.2;
    color: var(--c-navy-deep);
    margin-bottom: 20px;
    letter-spacing: -0.02em;
  }
  .fv__title em { color: var(--c-accent); font-style: normal; }
  .fv__lead {
    font-size: 17px;
    line-height: 1.85;
    color: #3a4e6a;
    margin-bottom: 20px;
    max-width: 420px;
  }
  .fv__pillars {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 28px;
    list-style: none;
  }
  .fv__pillars li {
    font-size: 17px;
    font-weight: 600;
    color: var(--c-navy);
  }

  /* Primary CTA */
  .fv__cta-group {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
  }
  .fv__cta {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    background: var(--c-navy);
    color: #fff;
    padding: 14px 24px 14px 36px;
    font-size: 17px;
    font-weight: 700;
    border-radius: 999px;
  }
  .fv__cta--sub {
    background: #fff;
    color: var(--c-navy);
    border: 2px solid var(--c-navy);
  }
  .fv__cta--sub .fv__cta-arrow {
    background: var(--c-navy);
    color: #fff;
  }
  .fv__cta-arrow {
    width: 30px; height: 30px;
    border-radius: 50%;
    background: #fff;
    color: var(--c-navy);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    font-weight: 900;
    padding-left: 2px;          /* ▶グリフの左寄りインクを光学的に中央へ補正 */
    box-sizing: border-box;
    line-height: 1;
    text-decoration: none !important;  /* ボタン下線が▶円の下に出るのを防ぐ */
  }
  .fv__news {
    border: 2px solid var(--c-accent);
    padding: 14px 18px;
    margin-bottom: 24px;
    max-width: 460px;
    background: #fff;
  }
  .fv__news-badge {
    display: inline-block;
    background: #f59e0b;
    color: #fff;
    font-size: 17px;
    font-weight: 900;
    letter-spacing: 0.1em;
    padding: 3px 10px;
    border-radius: 2px;
    margin-right: 10px;
    vertical-align: middle;
  }
  .fv__news-text {
    font-size: 18px;
    font-weight: 900;
    color: var(--c-navy-deep);
    vertical-align: middle;
  }
  .fv__news-body {
    font-size: 17px;
    line-height: 1.8;
    color: #4a5b75;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--c-line);
  }

  .fv__sub-cta {
    display: inline-block;
    margin-top: 12px;
    font-size: 17px;
    color: #4a5b75;
    text-decoration: underline;
    text-decoration-color: var(--c-line);
    text-underline-offset: 4px;
  }

  /* ============== SECTION 02: お悩み — speech bubbles around central illustration ============== */
  .worry {
    background: #f0f6ff url('../assets/img/worry-bg.png') center/cover no-repeat;
    padding: 96px 0 96px;
  }
  .worry__inner { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
  .worry__title {
    text-align: center;
    font-size: 36px;
    font-weight: 900;
    color: var(--c-navy-deep);
    margin-bottom: 48px;
    letter-spacing: 0.02em;
    line-height: 1.4;
  }
  .worry__title::before { content: none; }
  .worry__title::after { content: none; }
  /* PC: 1行表示 / モバイル: 2行表示（後段を block 化） */
  .worry__title-tail { display: inline; margin-left: 0.2em; }
  .worry__em {
    color: var(--c-accent);
    font-style: normal;
    font-size: 1.3em;
    font-weight: 900;
    letter-spacing: 0.03em;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 3px;
    text-underline-offset: 0px;
  }

  /* ============================================================
     NEW WORRY LAYOUT: cards around central photo
  ============================================================ */
  .worry__layout {
    display: grid;
    grid-template-columns: 1fr 360px 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 36px 32px;
    align-items: stretch;
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
  }
  .worry-card {
    background: #fff;
    border-radius: 14px;
    padding: 24px 28px;
    display: flex;
    align-items: center;
    gap: 10px;
    box-shadow: 0 6px 24px rgba(11,36,68,.06);
    font-size: 17px;
    line-height: 1.55;
    color: #3a4e6a;
    font-weight: 500;
    min-height: 112px;
    position: relative;
  }
  /* 吹き出し型 — 中央画像に向けてのテイル */
  .worry-card::after {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border: 14px solid transparent;
  }
  /* 左カラム(tl/bl): 右側にテイル */
  .worry-card--tl::after,
  .worry-card--bl::after {
    right: -26px;
    top: 50%;
    transform: translateY(-50%);
    border-left-color: #fff;
    filter: drop-shadow(2px 1px 1px rgba(11,36,68,.05));
  }
  /* 右カラム(tr/br): 左側にテイル */
  .worry-card--tr::after,
  .worry-card--br::after {
    left: -26px;
    top: 50%;
    transform: translateY(-50%);
    border-right-color: #fff;
    filter: drop-shadow(-2px 1px 1px rgba(11,36,68,.05));
  }
  /* 下中央(bc): 上側にテイル */
  .worry-card--bc::after {
    top: -26px;
    left: 50%;
    transform: translateX(-50%);
    border-bottom-color: #fff;
    filter: drop-shadow(0 -2px 1px rgba(11,36,68,.05));
  }
  .worry-card strong {
    font-size: 1.15em;
    font-weight: 800;
    color: var(--c-accent);
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
  }
  .worry-card strong em {
    color: var(--c-accent);
    font-style: normal;
    font-weight: 900;
  }
  .worry-card__icon {
    width: 76px;
    height: 76px;
    flex-shrink: 0;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
  }
  /* PNG アイコン画像を使用 */
  .wi-clipboard { background-image: url('../assets/img/wi-clipboard.png'); }
  .wi-chat      { background-image: url('../assets/img/wi-chat.png'); }
  .wi-people    { background-image: url('../assets/img/wi-people.png'); }
  .wi-clock     { background-image: url('../assets/img/wi-clock.png'); }
  .wi-doc       { background-image: url('../assets/img/wi-doc.png'); }
  .wi-click     { background-image: url('../assets/img/wi-click.png'); }

  /* 点線コネクターSVG（吹き出し型に変更したため非表示） */
  .worry__connectors {
    display: none !important;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 0;
    overflow: visible;
  }
  .wc-line {
    stroke: rgba(30, 115, 190, 0.45);
    stroke-width: 7;
    stroke-linecap: round;
    stroke-dasharray: 0 20;
    fill: none;
  }

  /* SVG コネクターの登場アニメ：translate は無効化、opacity のみ + 遅延 */
  svg.worry__connectors.fade-up {
    transform: none;
    transition: opacity 1.2s ease-out 0.45s;
  }
  /* 表示中は点線が中央→外向きに流れ続ける */
  .worry__connectors.is-visible .wc-line {
    animation: wc-line-flow 2.8s linear infinite;
  }
  @keyframes wc-line-flow {
    from { stroke-dashoffset: 0; }
    to   { stroke-dashoffset: -40; }
  }
  /* 各ライン長に合わせた dashoffset アニメーション（カード→中心方向に流れる） */

  /* Layout positions */
  .worry-card--tl { grid-column: 1; grid-row: 1; position: relative; z-index: 1; }
  .worry-card--bl { grid-column: 1; grid-row: 2; position: relative; z-index: 1; }
  .worry-card--tr { grid-column: 3; grid-row: 1; position: relative; z-index: 1; }
  .worry-card--br { grid-column: 3; grid-row: 2; position: relative; z-index: 1; }
  .worry-card--bc {
    grid-column: 1 / -1;
    grid-row: 3;
    max-width: 520px;
    justify-self: center;
    position: relative;
    z-index: 1;
  }
  /* 中央写真 */
  .worry__photo {
    grid-column: 2;
    grid-row: 1 / span 2;
    width: 360px;
    height: 360px;
    border-radius: 50%;
    background: #c5d3e3 url('../assets/img/nayami.png') center/cover no-repeat;
    border: 8px solid #fff;
    box-shadow: 0 12px 36px rgba(11,36,68,.10);
    justify-self: center;
    align-self: center;
    position: relative;
    z-index: 2;
  }

  /* Bubble grid: 2 left + center + 2 right (rows 1-2), 5th centered below circle (row 3) */
  .worry__bubbles {
    display: grid;
    grid-template-columns: 1fr 280px 1fr;
    grid-template-rows: auto auto auto;
    gap: 28px 56px;
    align-items: start;
  }
  .bubble {
    background: #e3edf8;
    border: 1px solid #c5d3e3;
    padding: 16px 22px;
    font-size: 17px;
    color: #0b2040;
    font-weight: 500;
    line-height: 1.75;
    position: relative;
    border-radius: 4px;
  }
  .bubble strong { font-weight: 700; color: var(--c-navy-deep); }

  /* Left bubbles point right toward person */
  .bubble--left {
    grid-column: 1;
    text-align: right;
    justify-self: end;
    width: fit-content;
    min-width: 300px;
    max-width: 340px;
  }
  .bubble--left::after {
    content: "";
    position: absolute;
    right: -10px;
    top: 50%;
    width: 0; height: 0;
    border: 10px solid transparent;
    border-left-color: #e3edf8;
    border-right: 0;
    transform: translateY(-50%);
  }
  .bubble--left::before {
    content: "";
    position: absolute;
    right: -11px;
    top: 50%;
    width: 0; height: 0;
    border: 10px solid transparent;
    border-left-color: #c5d3e3;
    border-right: 0;
    transform: translateY(-50%);
    z-index: -1;
  }

  /* Right bubbles point left toward person */
  .bubble--right {
    grid-column: 3;
    text-align: left;
    justify-self: start;
    width: fit-content;
    min-width: 300px;
    max-width: 340px;
  }
  .bubble--right::after {
    content: "";
    position: absolute;
    left: -10px;
    top: 50%;
    width: 0; height: 0;
    border: 10px solid transparent;
    border-right-color: #e3edf8;
    border-left: 0;
    transform: translateY(-50%);
  }
  .bubble--right::before {
    content: "";
    position: absolute;
    left: -11px;
    top: 50%;
    width: 0; height: 0;
    border: 10px solid transparent;
    border-right-color: #c5d3e3;
    border-left: 0;
    transform: translateY(-50%);
    z-index: -1;
  }

  /* Position bubbles in grid rows */
  .bubble.b-1 { grid-column: 1; grid-row: 1; }
  .bubble.b-2 { grid-column: 1; grid-row: 2; }
  .bubble.b-3 { grid-column: 2; grid-row: 3; text-align: center; justify-self: center; width: fit-content; min-width: 160px; max-width: 280px; }
  .bubble.b-4 { grid-column: 3; grid-row: 1; }
  .bubble.b-5 { grid-column: 3; grid-row: 2; }

  /* b-3 is below the circle — upward-pointing tail */
  .bubble.b-3::after {
    content: "";
    position: absolute;
    left: 50%;
    top: -10px;
    width: 0; height: 0;
    border: 10px solid transparent;
    border-bottom-color: #e3edf8;
    border-top: 0;
    transform: translateX(-50%);
  }
  .bubble.b-3::before {
    content: "";
    position: absolute;
    left: 50%;
    top: -11px;
    width: 0; height: 0;
    border: 10px solid transparent;
    border-bottom-color: #c5d3e3;
    border-top: 0;
    transform: translateX(-50%);
    z-index: -1;
  }

  /* Central illustration (round) */
  .worry__person {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    width: 280px;
    height: 280px;
    margin: 0 auto;
    border-radius: 50%;
    background: #c5d3e3 url('../assets/img/nayami.png') center/cover no-repeat;
    border: 1px solid #c5d3e3;
    overflow: hidden;
    position: relative;
    z-index: 0;
  }

  /* Callout below bubbles */
  .worry__callout {
    margin-top: 56px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    background: var(--c-navy);
    color: #fff;
    padding: 40px 48px;
    font-weight: 700;
    font-size: 28px;
    line-height: 1.6;
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
    letter-spacing: 0.01em;
  }
  .worry__callout strong {
    font-weight: 900;
    font-size: 1.05em;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 4px;
    text-underline-offset: 6px;
  }

  /* ============== SECTION 03 (内): 業法改正 — Legal Mandate デザイン ============== */
  .worry__law {
    margin-top: 40px;
    padding-top: 32px;
    background: none;
    border: none;
    border-radius: 0;
    position: relative;
  }
  .worry__law::before { content: none; }
  .worry__law::after { content: none; }
  .worry__law-head { text-align: center; margin-bottom: 40px; }
  /* 下向き視線誘導 — 細線ガイド + シングルシェブロン（refined / 派手すぎない） */
  .law__down-arrow {
    position: relative;
    width: 28px;
    height: 56px;
    margin: 12px auto 32px;
  }
  /* 共有キーフレーム：穏やかなドリフトとパルス（4s, 視線を「気づかせる」程度） */
  @keyframes arrow-soft-pulse {
    0%, 100% { transform: translateX(-50%) translateY(0) rotate(45deg); opacity: 0.55; }
    50%      { transform: translateX(-50%) translateY(4px) rotate(45deg); opacity: 0.95; }
  }
  /* 細い垂直ガイドライン */
  .law__down-arrow::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    width: 1.5px;
    height: 30px;
    background: var(--c-accent);
    opacity: 0.35;
  }
  /* シングルシェブロン先端 */
  .law__down-arrow::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 26px;
    width: 16px;
    height: 16px;
    border-right: 1.5px solid var(--c-accent);
    border-bottom: 1.5px solid var(--c-accent);
    transform: translateX(-50%) rotate(45deg);
    animation: arrow-soft-pulse 4s cubic-bezier(0.4, 0, 0.4, 1) infinite;
  }
  .worry__law-title {
    font-size: 36px; font-weight: 900;
    color: #fff;
    line-height: 1.45;
    margin: 0 auto 24px;
    letter-spacing: 0.01em;
    background: var(--c-navy);
    padding: 32px 48px;
    max-width: 920px;
    display: block;
  }
  .worry__law-title em {
    color: #ffd54f;
    font-style: normal;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 4px;
    text-underline-offset: 6px;
  }
  .worry__law-sub {
    font-size: 17px;
    color: #4a5b75;
    line-height: 1.95;
    max-width: 720px;
    margin: 0 auto;
  }
  .worry__law-sub strong {
    color: var(--c-navy-deep);
    font-weight: 900;
    font-size: 17px;
  }
  /* ===== 5要件 カードグリッド ===== */
  .law__grid {
    list-style: none;
    padding: 0;
    margin: 0 auto;
    max-width: 1140px;          /* さらに拡張: 17px本文の後半クローズが孤立せず収まる幅に */
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 20px 18px;
  }
  /* 3+2 配置: 上段 3 / 下段 2 中央寄せ */
  .law__card:nth-child(1) { grid-column: 1 / 3; }
  .law__card:nth-child(2) { grid-column: 3 / 5; }
  .law__card:nth-child(3) { grid-column: 5 / 7; }
  .law__card:nth-child(4) { grid-column: 2 / 4; }
  .law__card:nth-child(5) { grid-column: 4 / 6; }
  .law__card {
    background: #fff;
    border-radius: 0;
    border: 1px solid #c5d3e3;
    box-shadow: 0 10px 30px rgba(11, 36, 68, 0.08);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.22s, transform 0.22s;
  }
  .law__card:hover {
    box-shadow: 0 16px 40px rgba(11, 36, 68, 0.16);
    transform: translateY(-4px);
  }
  .law__card-header {
    background: #fff;
    padding: 14px 16px;
    border-bottom: none;
    text-align: center;
    min-height: 54px;
    display: flex;
    align-items: center;        /* flex-end → center: 1行・2行いずれもタイトルを縦方向中央に */
    justify-content: center;
  }
  .law__card-title {
    font-size: 17px;            /* 14px → 17px */
    font-weight: 900;
    color: var(--c-navy-deep);
    line-height: 1.4;
    margin: 0;
    letter-spacing: 0.02em;
  }
  .law__card-img {
    background: #fff;
    border-bottom: 1px solid #e3edf8;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .law__card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .law__card-body {
    padding: 18px 16px 22px;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .law__card-point {
    display: inline-block;
    font-size: 11px;            /* 9px → 11px */
    font-weight: 900;
    color: #94a8c2;
    letter-spacing: 0.18em;
    margin-bottom: 10px;
    padding-bottom: 7px;
    border-bottom: 2px solid #e3edf8;
    min-width: 96px;
    text-align: center;
  }
  .law__card-point em {
    font-size: 19px;            /* 16px → 19px */
    font-style: normal;
    color: var(--c-accent);
    margin-left: 5px;
    vertical-align: -2px;
    letter-spacing: -0.02em;
    font-weight: 900;
  }
  .law__card-desc {
    font-size: 17px;
    color: #3a4e6a;
    line-height: 1.8;
    margin: 0;
    text-align: left;
    word-break: normal;
    overflow-wrap: break-word;
    line-break: strict;
    text-wrap: pretty;
  }
  /* PC: 太字黒文字すべてに黄色マーカー(2行目に表示) */
  .law__card-desc strong {
    font-weight: 700;
    color: var(--c-navy-deep);
    background: linear-gradient(transparent 62%, #ffd54f 62%, #ffd54f 92%, transparent 92%);
    padding: 0 1px;
  }
  /* レスポンシブ */
  @media (max-width: 980px) {
    .law__grid {
      grid-template-columns: repeat(2, 1fr);
      gap: 20px;
      max-width: 680px;
    }
    .law__card:nth-child(1),
    .law__card:nth-child(2),
    .law__card:nth-child(3),
    .law__card:nth-child(4),
    .law__card:nth-child(5) {
      grid-column: auto;
    }
    .law__card:nth-child(5) {
      grid-column: 1 / -1;
      max-width: 50%;
      justify-self: center;
    }
  }
  @media (max-width: 640px) {
    .law__grid {
      grid-template-columns: 1fr;
      max-width: 420px;
    }
    .law__card:nth-child(5) {
      grid-column: auto;
      max-width: none;
    }
    .law__card-header { min-height: auto; }
  }
  @media (max-width: 900px) {
    .worry__law { padding: 40px 28px 44px; }
    .worry__law-title { font-size: 28px; }
  }

  /* ===== お悩みセクション 結論まとめブロック ===== */
  .worry__summary {
    max-width: 920px;
    margin: 72px auto 0;
    padding: 40px 48px 44px;
    background: #fff;
    border: 1px solid #c5d3e3;
    border-top: 4px solid var(--c-navy);
    box-shadow: 0 10px 30px rgba(11, 36, 68, 0.08);
    position: relative;
    text-align: center;             /* 結論 + 見出しを中央配置 */
  }
  .worry__summary-eyebrow {
    display: inline-block;
    padding: 10px 28px;             /* 大きく：6px 18px → 10px 28px */
    background: var(--c-navy);
    color: #fff;
    font-size: 18px;                /* 大きく：13px → 18px */
    font-weight: 900;
    letter-spacing: 0.22em;
    margin-bottom: 22px;
  }
  .worry__summary-title {
    font-size: 28px;
    font-weight: 900;
    color: var(--c-navy-deep);
    line-height: 1.5;
    margin: 0 0 28px;
    letter-spacing: 0.01em;
    text-align: center;             /* タイトル中央配置 */
  }
  .worry__summary-title em {
    color: var(--c-accent);
    font-style: normal;
    font-size: 1.2em;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 4px;
    text-underline-offset: 4px;
  }
  .worry__summary-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    text-align: left;             /* 親の中央配置を継承させず、項目内テキストは左揃え */
  }
  .worry__summary-item {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    padding: 22px 24px;
    background: #f0f6ff;
    border-left: 4px solid var(--c-accent);
  }
  .worry__summary-num {
    font-size: 30px;
    font-weight: 900;
    color: var(--c-accent);
    line-height: 1;
    letter-spacing: -0.04em;
    flex-shrink: 0;
  }
  .worry__summary-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .worry__summary-axis {
    font-size: 18px;
    font-weight: 900;
    color: var(--c-navy-deep);
    line-height: 1.4;
    letter-spacing: 0.01em;
  }
  .worry__summary-axis-note {
    display: inline-block;
    font-size: 17px;
    font-weight: 700;
    color: var(--c-accent);
    margin-left: 6px;
    vertical-align: middle;
    letter-spacing: 0.02em;
  }
  .worry__summary-desc {
    font-size: 17px;
    color: #4a5b75;
    line-height: 1.75;
  }
  @media (max-width: 720px) {
    .worry__summary {
      padding: 28px 22px 32px;
      margin: 48px 16px 0;
    }
    .worry__summary-title { font-size: 22px; }
    .worry__summary-list { grid-template-columns: 1fr; gap: 14px; }
    .worry__summary-item { padding: 18px 18px; }
  }

  /* ===== CTI セクションへの転換ブロック ===== */
  .cti-transition {
    background: linear-gradient(180deg, #ffffff 0%, #f0f6ff 100%);
    padding: 80px 24px 88px;
    text-align: center;
    position: relative;
    overflow: hidden;
  }
  /* 背景のデコレーション — 対角線ストライプ + 上下の細い区切り */
  .cti-transition__deco {
    position: absolute;
    inset: 0;
    background-image:
      repeating-linear-gradient(135deg, transparent 0, transparent 40px, rgba(30,115,190,0.04) 40px, rgba(30,115,190,0.04) 41px);
    pointer-events: none;
  }
  .cti-transition__deco::before,
  .cti-transition__deco::after {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 200px;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--c-accent), transparent);
    opacity: 0.5;
  }
  .cti-transition__deco::before { top: 32px; }
  .cti-transition__deco::after { bottom: 32px; }
  .cti-transition__inner {
    max-width: 760px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
  }
  /* 完了バッジ（VOS2.0 ここまでで完了） */
  .cti-transition__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 18px;
    background: var(--c-navy);
    color: #fff;
    font-size: 17px;
    font-weight: 900;
    letter-spacing: 0.1em;
    margin-bottom: 18px;
  }
  .cti-transition__badge-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    background: #ffd54f;
    color: var(--c-navy-deep);
    border-radius: 50%;
    font-size: 17px;
    font-weight: 900;
    letter-spacing: 0;
  }
  .cti-transition__lead {
    font-size: 19px;
    color: var(--c-navy-deep);
    line-height: 1.85;
    margin: 0 0 24px;
    font-weight: 500;
  }
  .cti-transition__lead strong {
    color: var(--c-navy-deep);
    font-weight: 900;
  }
  /* これまでの内容のまとめ表示（影なし・付箋風NG） */
  .cti-transition__summary {
    background: transparent;
    border-left: 3px solid var(--c-accent);
    padding: 8px 0 8px 24px;
    text-align: left;
  }
  .cti-transition__summary-title {
    font-size: 21px;
    font-weight: 700;
    color: var(--c-navy-deep);
    margin: 0 0 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--c-line);
    letter-spacing: 0.02em;
  }
  .cti-transition__summary-title strong {
    color: var(--c-accent);
    font-weight: 900;
  }
  .cti-transition__summary-list {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
  }
  .cti-transition__summary-list li {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    font-size: 19px;
    color: var(--c-navy-deep);
    line-height: 1.55;
  }
  .cti-transition__summary-list li strong {
    color: var(--c-accent);
    font-weight: 900;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 2px;
    text-decoration-skip-ink: none;
  }
  .cti-transition__summary-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #ffd54f;
    color: var(--c-navy-deep);
    font-size: 17px;
    font-weight: 900;
    flex-shrink: 0;
  }
  .cti-transition__summary-note {
    font-size: 17px;
    color: #5a6b85;
    margin: 0;
    font-style: italic;
    letter-spacing: 0.02em;
  }
  /* 左：テキスト ／ 右：CTA ボタン の 2 カラム */
  .cti-transition__row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 40px;
    align-items: center;
    text-align: left;
    margin: 0 0 40px;
  }
  .cti-transition__row .cti-transition__lead {
    margin: 0;
    text-align: left;
  }
  /* CTA ボタン（VOS2.0 単体向け） */
  .cti-transition__cta-wrap {
    margin: 0 0 36px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }
  .cti-transition__row .cti-transition__cta-wrap {
    margin: 0;
    align-items: flex-end;
  }
  .cti-transition__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    padding: 20px 64px 20px 28px;
    background: var(--c-navy);
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    position: relative;
  }
  .cti-transition__cta-text { text-align: center; }
  .cti-transition__cta .cti-transition__cta-arrow {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
  }
  .cti-transition__cta:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(11,36,68,0.18);
  }
  .cti-transition__cta-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #ffd54f;
    color: var(--c-navy-deep);
    font-size: 17px;
    font-weight: 900;
  }
  .cti-transition__cta-note {
    font-size: 17px;
    color: #5a6b85;
    letter-spacing: 0.04em;
    margin: 0;
  }
  /* シェブロン型ディバイダー（縦に2連） */
  .cti-transition__divider {
    width: 36px;
    height: 56px;
    margin: 0 auto 24px;
    position: relative;
    background: transparent;
  }
  .cti-transition__divider span {
    position: absolute;
    left: 50%;
    margin-left: -10px;
    width: 20px;
    height: 20px;
    border-right: 3px solid var(--c-accent);
    border-bottom: 3px solid var(--c-accent);
    transform: rotate(45deg);
  }
  .cti-transition__divider span:nth-child(1) {
    top: 0;
    opacity: 0.4;
  }
  .cti-transition__divider span:nth-child(2) {
    top: 18px;
    opacity: 1;
  }
  .cti-transition__main {
    font-size: 32px;
    font-weight: 900;
    color: var(--c-navy-deep);
    line-height: 1.5;
    margin: 0 0 24px;
    letter-spacing: 0.01em;
    position: relative;
    display: inline-block;
  }
  /* 見出しの左右に装飾ライン */
  .cti-transition__main::before,
  .cti-transition__main::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 60px;
    height: 2px;
    background: var(--c-navy-deep);
    opacity: 0.15;
  }
  .cti-transition__main::before { right: calc(100% + 24px); }
  .cti-transition__main::after  { left:  calc(100% + 24px); }
  .cti-transition__main em {
    color: var(--c-accent);
    font-style: normal;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 4px;
    text-underline-offset: 5px;
  }
  .cti-transition__main strong {
    color: var(--c-accent);
    font-weight: 900;
  }
  .cti-transition__sub {
    font-size: 17px;
    color: #4a5b75;
    line-height: 1.95;
    margin: 0;
  }
  @media (max-width: 900px) {
    .cti-transition { padding: 56px 24px 60px; }
    .cti-transition__main { font-size: 24px; }
    .cti-transition__main::before,
    .cti-transition__main::after { display: none; }
    .cti-transition__deco::before,
    .cti-transition__deco::after { width: 120px; }
  }

  /* ===== 旧VOS → VOS2.0 ビフォーアフター比較 ===== */
  .before-after {
    background: #f0f6ff;
    padding: 80px 24px;
  }
  .before-after__inner {
    max-width: 1180px;
    margin: 0 auto;
  }
  .before-after__head {
    text-align: center;
    margin-bottom: 48px;
  }
  .before-after__eyebrow {
    display: inline-block;
    padding: 13px 44px;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    background: var(--c-navy);
    letter-spacing: 0.04em;
    margin-bottom: 14px;
  }
  .before-after__title {
    font-size: 40px;
    font-weight: 900;
    color: var(--c-navy-deep);
    line-height: 1.4;
    margin: 0;
    letter-spacing: -0.01em;
  }
  .before-after__title em {
    color: var(--c-accent);
    font-style: normal;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 4px;
    text-underline-offset: 6px;
  }
  .before-after__grid {
    display: grid;
    grid-template-columns: 1fr 60px 1fr;
    gap: 0 24px;
    align-items: stretch;
  }
  .before-after__card {
    background: #fff;
    border: 2px solid var(--c-line);
    padding: 32px 28px;
    position: relative;
  }
  .before-after__card--before {
    opacity: 0.85;
  }
  .before-after__card--after {
    border-color: var(--c-accent);
    background: linear-gradient(180deg, #ffffff 0%, #f0f6ff 100%);
  }
  .before-after__label {
    display: inline-block;
    padding: 6px 18px;
    font-size: 17px;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-bottom: 22px;
  }
  .before-after__card--before .before-after__label {
    background: #94a8c2;
    color: #fff;
  }
  .before-after__card--after .before-after__label {
    background: var(--c-accent);
    color: #fff;
  }
  .before-after__card ul {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .before-after__card li {
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: 12px;
    padding: 12px 0;
    font-size: 17px;
    line-height: 1.7;
    color: #3a4e6a;
    border-bottom: 1px dashed #e3edf8;
  }
  .before-after__card li:last-child {
    border-bottom: none;
  }
  .before-after__card li strong {
    color: var(--c-accent);
    font-weight: 900;
  }
  .ba-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    font-size: 17px;
    font-weight: 900;
    color: #fff;
    flex-shrink: 0;
  }
  .ba-icon--x { background: #94a8c2; }
  .ba-icon--check { background: var(--c-accent); }
  .before-after__arrow {
    font-size: 36px;
    font-weight: 900;
    color: var(--c-accent);
    display: flex;
    align-items: center;
    justify-content: center;
  }
  @media (max-width: 900px) {
    .before-after { padding: 56px 16px; }
    .before-after__title { font-size: 26px; }
    .before-after__grid { grid-template-columns: 1fr; gap: 24px; }
    .before-after__arrow { transform: rotate(90deg); }
  }

  /* ===== ミッド CTA バナー（YouTube 帯と移行セクションの間） ===== */
  .mid-cta {
    background: linear-gradient(135deg, var(--c-navy) 0%, #2156a0 100%);
    padding: 32px 24px;
    margin: 0;
  }
  .mid-cta__inner {
    max-width: 1080px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 32px;
    align-items: center;
  }
  .mid-cta__text {
    color: #fff;
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .mid-cta__text strong {
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0.02em;
  }
  .mid-cta__text span {
    font-size: 17px;
    color: #c5d3e3;
  }
  .mid-cta__actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
  }
  .mid-cta__btn {
    display: inline-flex;
    align-items: center;
    padding: 14px 26px;
    font-size: 17px;
    font-weight: 900;
    text-decoration: none;
    border: 2px solid #fff;
    color: #fff;
    background: transparent;
    letter-spacing: 0.04em;
    transition: all 0.22s;
  }
  .mid-cta__btn:hover {
    background: #fff;
    color: var(--c-navy);
  }
  .mid-cta__btn--primary {
    background: #ffd54f;
    border-color: #ffd54f;
    color: var(--c-navy-deep);
  }
  .mid-cta__btn--primary:hover {
    background: #fff;
    border-color: #fff;
    color: var(--c-navy);
  }
  @media (max-width: 900px) {
    .mid-cta__inner { grid-template-columns: 1fr; gap: 20px; }
    .mid-cta__actions { flex-direction: column; }
    .mid-cta__btn { width: 100%; justify-content: center; }
  }

  /* セクション間 視線誘導 — 細線ガイド + シングルシェブロン（refined） */
  .v-arrow {
    position: relative;
    width: 100%;
    height: 0;
    margin: 0;
    z-index: 10;
    pointer-events: none;
    background: transparent;
    clip-path: none;
  }
  /* 細い垂直ガイドライン（境界上に重ねる） */
  .v-arrow::before {
    content: "";
    position: absolute;
    left: 50%;
    top: -46px;
    transform: translateX(-50%);
    width: 1.5px;
    height: 30px;
    background: var(--c-navy);
    opacity: 0.35;
  }
  /* シングルシェブロン先端 — 緩やかに上下に呼吸 */
  .v-arrow::after {
    content: "";
    position: absolute;
    left: 50%;
    top: -22px;
    width: 22px;
    height: 22px;
    border-right: 1.5px solid var(--c-navy);
    border-bottom: 1.5px solid var(--c-navy);
    transform: translateX(-50%) rotate(45deg);
    animation: arrow-soft-pulse 4s cubic-bezier(0.4, 0, 0.4, 1) infinite;
  }

  /* セクション間 中央寄せ下向きシェブロン（法改正 → 解決まとめ） — refined */
  .section-wedge {
    position: relative;
    width: 100%;
    height: 0;
    margin: 0;
    z-index: 10;
    pointer-events: none;
  }
  .section-wedge__shape {
    position: absolute;
    top: -52px;
    left: 50%;
    transform: translateX(-50%);
    width: 28px;
    height: 60px;
    background: transparent;
    clip-path: none;
  }
  .section-wedge__shape::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    width: 1.5px;
    height: 32px;
    background: var(--c-navy);
    opacity: 0.35;
  }
  .section-wedge__shape::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 28px;
    width: 20px;
    height: 20px;
    border-right: 1.5px solid var(--c-navy);
    border-bottom: 1.5px solid var(--c-navy);
    transform: translateX(-50%) rotate(45deg);
    animation: arrow-soft-pulse 4s cubic-bezier(0.4, 0, 0.4, 1) infinite;
  }

  /* ============== SECTION 03: 3本柱 — vertical numbered list, NOT cards ============== */
  .pillars {
    position: relative;
    background-color: #ffffff;
    background-image: url('../assets/img/pillars-bg.png');
    background-size: cover;
    background-position: center 30%;
    background-repeat: no-repeat;
    padding: 120px 0;
  }
  .pillars::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.08);
    z-index: 0;
  }
  .pillars__inner { position: relative; z-index: 1; max-width: 1180px; margin: 0 auto; padding: 0 24px; }
  .pillars__head { margin: 0 auto 56px; max-width: 720px; text-align: center; }
  .pillars__eyebrow {
    display: inline-block;
    padding: 13px 44px;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    background: var(--c-navy);
    border-radius: 0;
    letter-spacing: 0.04em;
    margin-bottom: -4px;
  }
  .pillars__title {
    font-size: 56px;
    font-weight: 900;
    line-height: 1.3;
    color: var(--c-navy-deep);
    margin-bottom: 12px;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 3px;
    text-underline-offset: 8px;
    text-decoration-skip-ink: none;
    display: inline-block;
  }
  .pillars__title em {
    color: var(--c-accent);
    font-style: normal;
  }
  .pillars__sub { font-size: 17px; color: #4a5b75; line-height: 1.9; }
  .pillars-list {
    display: flex;
    flex-direction: column;
    max-width: 720px;
    margin: 0 auto;
    width: 100%;
  }
  .pillar-row {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: baseline;
    column-gap: 0;
    padding: 18px 0;
    border-top: 1px solid var(--c-line);
  }
  .pillar-row:last-child { border-bottom: 1px solid var(--c-line); }
  .pillar-row__num {
    display: block;
    font-size: 26px;
    font-weight: 900;
    color: var(--c-navy-deep);
    letter-spacing: -0.02em;
    white-space: nowrap;
  }
  .pillar-row__num::after { content: "."; margin-right: 6px; }
  .pillar-row__body { display: block; }
  .pillar-row__body h3 {
    display: block;
    font-size: 26px;
    font-weight: 900;
    color: var(--c-accent);
    line-height: 1.3;
  }
  .pillar-row__body p { display: block; font-size: 19px; line-height: 1.85; color: #2e4060; margin-top: 8px; }
  .pillar-row__body p strong {
    font-weight: 900;
    color: var(--c-navy-deep);
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 2px;
    text-decoration-skip-ink: none;
  }
  .pillar-row__keyword {
    padding: 16px 0;
    font-size: 17px;
    color: var(--c-navy-deep);
    line-height: 1.7;
    border-top: 1px solid var(--c-line);
  }
  .pillar-row__keyword strong { display: block; font-size: 17px; margin-bottom: 6px; color: var(--c-accent); letter-spacing: 0.05em; }

  /* ============== SECTION 04: 進化① 対応履歴 — image-dominant 60/40 ============== */
  .ev1 {
    background: #f0f6ff;
    padding: 176px 0 96px;
    margin-top: -80px;
    position: relative;
    z-index: 2;
    clip-path: polygon(0 0, 50% 80px, 100% 0, 100% 100%, 0 100%);
  }
  .ev1__inner {
    max-width: 1180px; margin: 0 auto; padding: 0 24px;
    display: grid; grid-template-columns: 1fr 1.45fr;
    gap: 56px; align-items: start;
  }
  /* EV1/EV2/EV3 共通のアイブロウ（テキスト型：番号は黒・タイトルは青＋1本の黒下線） */
  .ev1__eyebrow,
  .ev-eyebrow {
    display: inline-block !important;
    padding: 0 0 6px 0 !important;
    font-size: 36px !important; font-weight: 900 !important;
    color: var(--c-navy-deep) !important;
    background: transparent !important;
    border-radius: 0 !important;
    border-bottom: 3px solid var(--c-navy-deep) !important;
    letter-spacing: 0.04em;
    margin-bottom: 24px !important;
    line-height: 1.2;
  }
  .ev-eyebrow__num {
    color: var(--c-navy-deep);
    font-weight: 900;
    margin-right: 10px;
    letter-spacing: 0.02em;
  }
  .ev-eyebrow__title {
    color: var(--c-accent);
    font-weight: 900;
  }
  /* セクション中央上の見出しラッパー */
  .ev__head {
    max-width: 1180px;
    margin: 0 auto 48px;
    padding: 0 24px;
    text-align: center;
  }
  .ev1__title {
    font-size: 40px; font-weight: 900;
    line-height: 1.45; color: var(--c-navy-deep);
    margin-bottom: 20px; letter-spacing: -0.01em;
    word-break: keep-all;
  }
  .ev1__title-line {
    width: 56px; height: 3px;
    background: var(--c-accent);
    margin: 0 0 24px;
    border: none;
  }
  .ev1__blue { color: var(--c-accent); font-style: normal; }
  .ev1__body {
    font-size: 17px; line-height: 1.95; color: #4a5b75;
    margin-bottom: 32px;
  }
  .ev1__cti-note {
    background: var(--c-accent);
    border-radius: 12px;
    padding: 20px 24px 20px 60px;
    font-size: 17px;
    line-height: 1.9;
    color: #fff;
    position: relative;
    font-weight: 500;
  }
  .ev1__cti-note::before {
    content: '✓';
    position: absolute;
    top: 18px; left: 18px;
    transform: none;
    width: 28px; height: 28px;
    background: #ffd54f;
    color: var(--c-navy-deep);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    font-weight: 900;
  }
  .ev1__cti-note strong { color: #fff; font-weight: 700; }
  .ev1__cti-note em {
    font-style: normal;
    font-weight: 900;
    color: #ffd54f;
  }

  /* 右カラム: 比較テーブル */
  .ev1__compare {
    display: grid;
    grid-template-columns: 1fr 32px 1fr;
    gap: 14px 8px;
  }
  /* 上段ラベル */
  .ba-head__before, .ba-head__after {
    padding: 13px 18px;
    font-size: 17px; font-weight: 900;
    letter-spacing: 0.06em;
    text-align: center;
    border-radius: 999px;
  }
  .ba-head__before {
    background: #e3edf8;
    color: #5a6b85;
  }
  .ba-head__after {
    background: var(--c-accent);
    color: #fff;
  }
  .ba-head__spacer { /* 空セル */ }

  /* 比較カード */
  .ba-before, .ba-after {
    background: #fff;
    border: 1px solid #e3edf8;
    border-radius: 10px;
    padding: 16px 13px;
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 108px;
  }
  .ba-icon {
    width: 54px;
    height: 54px;
    flex-shrink: 0;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
  }
  .ba-text {
    font-size: 17px;
    line-height: 1.6;
    color: #5a6b85;
    font-weight: 500;
    flex: 1;
    min-width: 0;
    text-wrap: pretty;
  }
  .ba-after .ba-text {
    color: var(--c-navy-deep);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 2px;
    text-decoration-skip-ink: none;
  }
  /* 矢印 */
  .ba-arrow {
    display: flex; align-items: center; justify-content: center;
  }
  .ba-arrow span {
    width: 32px; height: 32px;
    background: transparent;
    color: var(--c-accent);
    border-radius: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: 900;
  }

  /* ============== SECTION 05: 進化② 進捗可視化 — text-dominant, mirrored ============== */
  .ev2 {
    background: #ffffff;
    padding: 152px 0 72px;
    margin-top: -80px;
    position: relative;
    z-index: 3;
    clip-path: polygon(0 0, 50% 80px, 100% 0, 100% 100%, 0 100%);
  }
  .ev2__inner {
    max-width: 1180px; margin: 0 auto; padding: 0 24px;
    display: grid; grid-template-columns: 1.2fr 1fr;  /* テキスト列を拡大・画像を縮小（箇条書き1行表示） */
    gap: 40px; align-items: center;
  }
  .ev2__text {
    grid-column: 1;
  }
  .ev2__photo {
    grid-column: 2;
    background: url('../assets/img/shikaku.png') center/contain no-repeat;
    border: 1px solid var(--c-line);
    aspect-ratio: 16/10;
  }
  .ev2__photo img {
    display: none;
  }
  @media (max-width: 960px) {
    .ev2__photo {
      background: none !important;
      border: none !important;
      aspect-ratio: auto !important;
    }
    .ev2__photo img {
      display: block;
      width: 100%;
      height: auto;
    }
  }
  .ev2__title {
    font-size: 40px; font-weight: 900;
    line-height: 1.4; color: var(--c-navy-deep);
  }
  .ev2__title { margin-bottom: 16px; }
  .ev2__title em { color: var(--c-accent); font-style: normal; }
  .ev2 p { font-size: 17px; line-height: 2; color: #4a5b75; margin-bottom: 16px; }
  .ev2__points {
    padding: 0;
    list-style: none;
    margin: 0;
  }
  .ev2__points li {
    padding: 12px 0;
    border-bottom: 1px dashed var(--c-line);
    font-size: 17px;
    color: var(--c-navy-deep);
    line-height: 1.7;
  }
  .ev2__points li::before {
    content: "●";
    color: var(--c-accent);
    margin-right: 8px;
    font-size: 12px;
    vertical-align: middle;
  }

  /* ============== SECTION 06: 進化③ 社内点検 — checklist cards on right ============== */
  .ev3 {
    background: linear-gradient(180deg, #f0f6ff 0%, #f0f6ff 100%);
    color: var(--c-navy-deep);
    padding: 176px 0 96px;
    margin-top: -80px;
    position: relative;
    z-index: 4;
    clip-path: polygon(0 0, 50% 80px, 100% 0, 100% 100%, 0 100%);
  }
  .ev3__inner {
    max-width: 1180px; margin: 0 auto; padding: 0 24px;
    display: grid; grid-template-columns: 1fr 1.3fr;  /* タイトル1行は確保しつつ、右カードを左へ拡張 */
    gap: 32px; align-items: start;
  }
  .ev3__text-col { display: flex; flex-direction: column; }
  .ev3__head { margin-bottom: 0; }
  .ev3__title { font-size: 40px; font-weight: 900; line-height: 1.4; margin-bottom: 12px; color: var(--c-accent); word-break: keep-all; line-break: strict; }
  .ev3__title em { color: var(--c-navy-deep); font-style: normal; }
  .ev3__sub { color: #2e4060; font-size: 17px; line-height: 2; margin-top: 16px; }
  .ev3__callout {
    margin-top: 32px; padding-top: 24px;
    border-top: 1px solid #c5d3e3;
    font-size: 17px; font-weight: 700; line-height: 1.75;
    color: var(--c-navy-deep);
  }
  .ev3__callout strong { color: var(--c-accent); font-weight: 900; }

  /* 右カラム: チェックカード */
  .ev3__grid {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  .ev3__cell {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 8px 28px rgba(11,36,68,0.08);
    display: grid;
    grid-template-columns: 38% 1fr;  /* 28% → 38%: 画像を拡大して右側余白を削減 */
    align-items: stretch;
    overflow: hidden;
    position: relative;
    min-height: 170px;               /* 画像の縦比率を活かすため最小高さを確保 */
  }
  .ev3__cell-img {
    background-color: #f0f6ff;
    background-size: contain;        /* 本来の比率で全体表示（クロップしない） */
    background-position: center;
    background-repeat: no-repeat;
    width: 100%;
    height: 100%;
    min-height: 130px;
    align-self: stretch;
  }
  .ev3__cell-img--nippou {
    background-image: url('../assets/img/nippou.png');
  }
  .ev3__cell-img--ishi {
    background-image: url('../assets/img/ishi.png');
  }
  .ev3__cell-img--kourei {
    background-image: url('../assets/img/kourei.png');
  }
  .ev3__cell-body {
    padding: 10px 22px;
    position: relative;
  }
  /* CHECK 01〜03 ラベル+タイトルを EV アイブロウ統一デザインに */
  .ev3__cell h4 {
    display: inline-block;
    font-size: 24px; font-weight: 900;
    color: var(--c-accent);
    margin-bottom: 14px;
    padding: 0 0 6px 0;
    border-bottom: 3px solid var(--c-navy-deep);
    line-height: 1.2;
    letter-spacing: 0.02em;
  }
  .ev3__cell h4 small {
    color: var(--c-navy-deep);
    font-size: 0.7em;
    letter-spacing: 0.08em;
    display: inline-block;
    margin-right: 10px;
    margin-bottom: 0;
    font-weight: 900;
    vertical-align: baseline;
  }
  .ev3__cell p {
    font-size: 17px;
    color: #4a5b75;
    line-height: 1.75;
  }
  .ev3__cell-icon {
    position: absolute;
    top: 20px; right: 20px;
    width: 36px; height: 36px;
    border-radius: 10px;
    background: #f0f6ff;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--c-accent);
  }
  /* CSS Icons for each card */
  .ev3__cell-icon--report::before,
  .ev3__cell-icon--report::after { content: ''; position: absolute; }
  .ev3__cell-icon--report::before {
    width: 14px; height: 18px;
    border: 2px solid currentColor;
    border-radius: 2px;
  }
  .ev3__cell-icon--report::after {
    top: 12px; left: 11px;
    width: 8px; height: 2px;
    background: currentColor;
    box-shadow: 0 4px 0 currentColor, 0 8px 0 currentColor;
  }
  .ev3__cell-icon--people::before,
  .ev3__cell-icon--people::after { content: ''; position: absolute; }
  .ev3__cell-icon--people::before {
    width: 10px; height: 10px;
    top: 10px; left: 50%;
    transform: translateX(-50%);
    border: 2px solid currentColor;
    border-radius: 50%;
  }
  .ev3__cell-icon--people::after {
    width: 20px; height: 8px;
    bottom: 9px; left: 50%;
    transform: translateX(-50%);
    border: 2px solid currentColor;
    border-bottom: none;
    border-radius: 10px 10px 0 0;
  }
  .ev3__cell-icon--check::before,
  .ev3__cell-icon--check::after { content: ''; position: absolute; }
  .ev3__cell-icon--check::before {
    width: 13px; height: 17px;
    border: 2px solid currentColor;
    border-radius: 2px;
  }
  .ev3__cell-icon--check::after {
    top: 13px; left: 11px;
    width: 6px; height: 3px;
    border-left: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(-45deg);
  }

  /* チェックアイコン付き eyebrow */
  .ev-eyebrow--check::before {
    content: '✓';
    display: inline-block;
    width: 20px; height: 20px;
    background: rgba(255,255,255,0.25);
    color: #fff;
    border-radius: 50%;
    font-size: 17px;
    font-weight: 900;
    line-height: 20px;
    text-align: center;
    margin-right: 8px;
    vertical-align: middle;
  }
  .ev-eyebrow {
    font-size: 36px !important; font-weight: 900; letter-spacing: 0.04em;
    color: var(--c-navy-deep) !important;
  }
  .ev__body {
    font-size: 17px !important;
    line-height: 2.05 !important;
    color: #2e4060 !important;
    margin-bottom: 20px;
  }

  /* ============== SECTION 07: CTI Hero — full-bleed photo banner ============== */
  .cti-hero {
    background: #ffffff;
    padding: 88px 0 96px;
  }
  .cti-hero__inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 1fr 1.05fr;
    gap: 56px;
    align-items: center;
  }
  .cti-hero__text { grid-column: 1; }
  /* eyebrow：テキスト型（背景なし・拡大） */
  .cti-hero__eyebrow {
    background: transparent !important;
    color: var(--c-accent) !important;
    padding: 0 !important;
    border-radius: 0 !important;
    font-size: 22px !important;
    font-weight: 900 !important;
    letter-spacing: 0.05em !important;
    margin-bottom: 14px !important;
    display: inline-block;
    align-self: flex-start;
  }
  .cti-hero__title {
    font-size: 40px;
    font-weight: 900;
    line-height: 1.45;
    letter-spacing: -0.01em;
    margin-bottom: 22px;
    color: var(--c-navy-deep);
  }
  .cti-hero__title em {
    color: var(--c-accent);
    font-style: normal;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 4px;
    text-underline-offset: 4px;
  }
  .cti-hero__sub {
    font-size: 17px;
    line-height: 2;
    color: #3a4e6a;
  }
  .cti-hero__sub strong {
    color: var(--c-navy-deep);
    font-weight: 900;
  }
  .cti-hero__photo {
    grid-column: 2;
    background: url('../assets/img/zaisan.png') center/cover no-repeat;
    border: 1px solid var(--c-line);
    aspect-ratio: 4 / 3;
  }
  @media (max-width: 900px) {
    .cti-hero__inner {
      grid-template-columns: 1fr;
      gap: 32px;
    }
    .cti-hero__text, .cti-hero__photo { grid-column: 1; }
    .cti-hero__title { font-size: 30px; }
  }

  /* ============== SECTION 07-a: CTI 5つの効果 — hero + 5-card horizontal flow ============== */
  .cti-effects {
    background: linear-gradient(180deg, #f0f6ff 0%, #f0f6ff 100%);
    padding: 80px 0 0;
    overflow: hidden;
    position: relative;
  }
  /* 装飾ドット（右上） */
  .cti-effects::before {
    content: '';
    position: absolute;
    top: 40px; right: 40px;
    width: 80px; height: 80px;
    background-image: radial-gradient(circle, #c5d3e3 1.5px, transparent 1.5px);
    background-size: 12px 12px;
    opacity: 0.7;
    z-index: 0;
  }
  /* 装飾円（左下） */
  .cti-effects::after {
    content: '';
    position: absolute;
    bottom: 120px; left: -60px;
    width: 200px; height: 200px;
    border-radius: 50%;
    background: rgba(208, 223, 240, 0.4);
    z-index: 0;
  }
  .cti-effects__inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
    position: relative;
    z-index: 1;
  }

  /* ヒーロー部分（2カラム: テキスト + 画像） */
  .cti-effects__hero {
    display: grid;
    grid-template-columns: 1fr 1.05fr;
    gap: 56px;
    align-items: center;
    margin-bottom: 64px;
  }
  .cti-effects__hero-title {
    font-size: 44px;
    font-weight: 900;
    color: var(--c-navy-deep);
    line-height: 1.4;
    margin-bottom: 24px;
    letter-spacing: -0.01em;
  }
  .cti-effects__hero-title em {
    color: var(--c-accent);
    font-style: normal;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 4px;
    text-underline-offset: 6px;
  }
  .cti-effects__hero-line {
    display: none;
  }
  .cti-effects__hero-body strong {
    color: var(--c-navy-deep);
    font-weight: 900;
    font-size: 1.2em;
  }
  .cti-effects__hero-body {
    font-size: 17px;
    color: #4a5b75;
    line-height: 1.95;
  }
  /* 画像枠 */
  .cti-effects__hero-photo {
    position: relative;
    border: 0 !important;
    border-radius: 0;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    width: 100%;
    background: url('../assets/img/denwa.png') 20% center / 165% auto no-repeat;
    box-shadow: none;
    outline: 0 !important;
  }
  /* 写真下部の統合キャプションバー（フルワイド・浮遊感なし） */
  .cti-effects__hero-badge {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    width: auto;
    min-width: 0;
    background: var(--c-navy);
    border: none;
    border-radius: 0;
    box-shadow: none;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 16px 24px;
    text-align: center;
  }
  .cti-badge__icon {
    width: 24px;
    height: 18px;
    margin: 0;
    color: #fff;
    flex-shrink: 0;
  }
  .cti-effects__hero-badge::before { content: none; }
  .cti-effects__hero-badge span {
    font-size: 17px;
    font-weight: 800;
    color: #fff;
    line-height: 1.5;
    letter-spacing: 0.02em;
  }

  /* "導入メリット" 区切り */
  .cti-effects__divider {
    text-align: center;
    margin: 0 auto 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    max-width: 600px;
  }
  .cti-effects__divider::before,
  .cti-effects__divider::after {
    content: '';
    flex: 1;
    height: 2px;
    background: var(--c-accent);
  }
  .cti-effects__divider span {
    font-size: 24px;
    font-weight: 900;
    color: var(--c-navy-deep);
    letter-spacing: 0.04em;
  }

  /* 5カード横並び（矢印で接続） */
  .cef-grid {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr auto 1fr;  /* 矢印列を auto に：▶が埋もれず収まる */
    gap: 0 6px;
    align-items: stretch;
    margin-bottom: 56px;
    border: 2px solid var(--c-accent);
    border-radius: 0;
    padding: 22px 14px;
  }
  .cef-card {
    background: #fff;
    border-radius: 0;
    padding: 26px 12px 22px;
    box-shadow: 0 6px 20px rgba(11,36,68,0.06);
    text-align: center;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 0;               /* keep-allで列幅が膨らむのを防ぎ5列を均等化 */
  }
  /* 番号バッジ（左上の青円） */
  .cef-num {
    position: absolute;
    top: 14px; left: 14px;
    width: 30px; height: 30px;
    background: var(--c-accent);
    color: #fff;
    border-radius: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    font-weight: 900;
    letter-spacing: 0.02em;
  }
  /* アイコン */
  .cef-icon {
    display: block;
    width: 112px; height: 112px;
    margin-top: 10px;
    margin-bottom: 12px;
    object-fit: cover;
    border-radius: 50%;
  }

  .cef-card h4 {
    font-size: 17px;
    font-weight: 900;
    color: var(--c-navy-deep);
    line-height: 1.4;
    min-height: 2.8em;
    margin-bottom: 12px;
    display: flex;
    align-items: flex-end;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 5px;
    text-decoration-skip-ink: none;
  }
  .cef-card p {
    font-size: 14px;
    color: #5a6b85;
    line-height: 1.7;
    word-break: keep-all;       /* 文節（・や語）の途中で折り返さない */
    line-break: strict;
    overflow-wrap: break-word;
  }
  .cef-card p strong {
    color: var(--c-navy-deep);
    font-weight: 900;
  }
  /* カード間の矢印（小さな三角） */
  .cef-arrow {
    align-self: center;
    color: var(--c-accent);
    font-size: 13px;            /* ▶を小さめにして埋もれ・窮屈さを解消 */
    font-weight: 900;
    text-align: center;
    line-height: 1;
  }

  /* 最下部バナー */
  .cef-banner {
    background: var(--c-navy);
    border-radius: 0;
    padding: 18px 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    max-width: 880px;
    margin: 0 auto;
    margin-bottom: 64px;
  }
  .cef-banner__icon {
    width: 40px; height: 40px;
    background: #fff;
    color: var(--c-accent);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
  }
  .cef-banner__text {
    font-size: 24px;
    font-weight: 900;
    color: #fff;
    letter-spacing: 0.02em;
  }
  .cef-banner__text em {
    font-style: normal;
    position: relative;
    display: inline-block;
    padding: 0 4px;
  }
  .cef-banner__text em::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 3px;
    background: #ffd54f;
  }

  /* ============== SECTION 07-b: CTI 機能紹介 — wide screenshot + overlay annotations ============== */
  .cti-feat {
    background: #ffffff;
    padding: 64px 0;
  }
  .cti-feat__inner { max-width: 1180px; margin: 0 auto; padding: 0 24px; }
  .cti-feat__head { margin-bottom: 40px; max-width: 1180px; text-align: center; }
  .cti-feat__title { font-size: 48px; font-weight: 900; color: var(--c-navy-deep); line-height: 1.4; }
  .cti-feat__title em {
    color: var(--c-accent);
    font-style: normal;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 4px;
    text-underline-offset: 6px;
  }
  .cti-feat__hero {
    border: 1px solid var(--c-line);
    margin-bottom: 32px;
    line-height: 0;
  }
  .cti-feat__hero img {
    width: 100%;
    height: auto;
    display: block;
  }
  .cti-feat__list {
    display: grid;
    grid-template-columns: repeat(4, 1fr) 1.6fr;
    gap: 0;
    border-top: 2px solid var(--c-navy-deep);
    border-bottom: 1px solid var(--c-line);
  }
  .cti-feat__list li {
    padding: 24px 18px;
    border-right: 1px solid var(--c-line);
  }
  .cti-feat__list li:last-child { border-right: 0; }
  .cti-feat__list li.is-main { background: var(--c-navy); color: #fff; position: relative; overflow: visible; }
  .new-badge {
    position: absolute;
    top: -12px;
    right: 14px;
    background: #f59e0b;
    color: #fff;
    font-size: 17px;
    font-weight: 900;
    letter-spacing: 0.12em;
    padding: 3px 10px;
    border-radius: 2px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.25);
  }
  .cti-feat__list li small {
    display: block;
    font-size: 17px;
    color: #5a6b85;
    letter-spacing: 0.15em;
    margin-bottom: 6px;
    font-weight: 700;
  }
  .cti-feat__list li.is-main small { color: rgba(255,255,255,0.85); }
  .cti-feat__list li h4 {
    font-size: 17px; font-weight: 900;
    color: var(--c-navy-deep);
    margin-bottom: 8px;
    line-height: 1.45;
  }
  .cti-feat__list li.is-main h4 { color: #fff; }
  .cti-feat__list li p { font-size: 17px; color: #4a5b75; line-height: 1.7; }
  .cti-feat__list li.is-main p { color: rgba(255,255,255,0.95); }

  /* ============== SECTION 08-pre: 解決まとめセクション ============== */
  .solve-all {
    background: #f0f6ff;
    padding: 88px 0 88px;
    position: relative;
  }
  /* 四隅の装飾カード */
  .solve-all__deco {
    position: absolute;
    background: rgba(255,255,255,0.55);
    border: 1px solid rgba(255,255,255,0.85);
    border-radius: 16px;
    display: flex; align-items: center; justify-content: center;
    pointer-events: none;
  }
  .solve-all__deco span {
    font-size: 17px; font-weight: 700; color: var(--c-accent); letter-spacing: 0.05em;
  }
  .solve-all__deco--tl {
    width: 100px; height: 100px; top: 80px; left: 48px;
    background: url('../assets/img/solve-deco-tl.png') center/contain no-repeat;
    border: none; background-color: transparent;
  }
  .solve-all__deco--bl {
    width: 100px; height: 100px; bottom: 80px; left: 28px;
    background: url('../assets/img/solve-deco-bl.png') center/contain no-repeat;
    border: none; background-color: transparent;
  }
  .solve-all__deco--tr {
    width: 100px; height: 100px; top: 80px; right: 52px;
    background: url('../assets/img/solve-deco-tl.png') center/contain no-repeat;
    border: none; background-color: transparent;
  }
  .solve-all__deco--br {
    width: 100px; height: 100px; bottom: 80px; right: 44px;
    background: url('../assets/img/solve-deco-br.png') center/contain no-repeat;
    border: none; background-color: transparent;
  }

  .solve-all__inner {
    max-width: 1160px; margin: 0 auto; padding: 0 24px;
    text-align: center;
    position: relative; z-index: 1;
  }
  .solve-all__title {
    font-size: 44px; font-weight: 900; line-height: 1.4;
    color: #fff; margin-bottom: 48px;
    background: var(--c-navy);
    padding: 32px 48px;
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
    letter-spacing: 0.01em;
    border-radius: 0;
  }
  .solve-all__title em { color: #ffd54f; font-style: normal; font-size: 1em;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 4px;
    text-underline-offset: 3px;
  }

  /* ===== solve-all バナー 2段構成（案A：数字パンチ型） ===== */
  .solve-all__title--v2 {
    display: flex !important;
    flex-direction: column;
    gap: 14px;
    font-size: 38px !important;
    line-height: 1.5 !important;
    padding: 40px 48px !important;
  }
  .solve-all__title--v2 .solve-all__title-line1,
  .solve-all__title--v2 .solve-all__title-line2 {
    display: block;
  }
  .solve-all__title--v2 em {
    color: #ffd54f;
    font-style: normal;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 4px;
    text-underline-offset: 5px;
    font-size: 1.1em;
    margin: 0 4px;
  }
  .solve-all__title--v2 small {
    display: inline-block;
    font-size: 0.55em;
    font-weight: 700;
    color: #c5d3e3;
    margin-left: 10px;
    vertical-align: middle;
    letter-spacing: 0.02em;
  }
  @media (max-width: 900px) {
    .solve-all__title--v2 {
      font-size: 22px !important;
      padding: 24px 20px !important;
      gap: 10px;
    }
    .solve-all__title--v2 small {
      display: block;
      margin-left: 0;
      margin-top: 4px;
    }
  }

  /* ===== solve-all 新構成（v3）：青バナー + 黒文字見出し ===== */
  /* 上部の青バナー「2つの悩みをすべて解決」 */
  .solve-all__intro {
    display: block;
    text-align: center;
    background: var(--c-navy);
    color: #fff;
    padding: 22px 40px;
    max-width: 920px;
    margin: 0 auto 32px;
  }
  .solve-all__intro span {
    font-size: 26px;
    font-weight: 900;
    letter-spacing: 0.02em;
    line-height: 1.4;
  }
  .solve-all__intro span em {
    color: #ffd54f;
    font-style: normal;
    font-weight: 900;
    font-size: 1.2em;
  }
  /* 下部の黒文字 2 行見出し */
  .solve-all__title--v3 {
    display: flex !important;
    flex-direction: column;
    gap: 14px;
    font-size: 26px !important;
    line-height: 1.5 !important;
    padding: 0 24px 40px !important;
    background: transparent !important;
    color: var(--c-navy-deep) !important;
    text-align: center;
    max-width: 1000px;
    margin: 0 auto;
  }
  .solve-all__title--v3 .solve-all__title-line1,
  .solve-all__title--v3 .solve-all__title-line2 {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 0 12px;
    align-items: baseline;
    text-align: left;
    width: 100%;
    max-width: 880px;
    margin: 0 auto;
  }
  .solve-all__title--v3 small {
    white-space: nowrap;
  }
  .solve-all__title--v3 .solve-all__title-text {
    white-space: nowrap;
  }
  .solve-all__title--v3 em {
    color: var(--c-accent);
    font-style: normal;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 4px;
    text-underline-offset: 6px;
    font-size: 1.1em;
    margin: 0 4px;
    font-weight: 900;
  }
  .solve-all__title--v3 small {
    display: inline-block;
    font-size: 0.9em;
    font-weight: 900;
    color: var(--c-accent);
    text-align: left;
    letter-spacing: 0.02em;
  }
  @media (max-width: 900px) {
    .solve-all__intro { padding: 16px 24px; margin-bottom: 24px; }
    .solve-all__intro span { font-size: 18px; }
    .solve-all__title--v3 {
      font-size: 22px !important;
      padding: 0 20px 24px !important;
      gap: 10px;
    }
    .solve-all__title--v3 small {
      display: block;
      margin-left: 0;
      margin-top: 4px;
    }
  }
  .solve-all__title-small {
    font-size: 0.55em;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.02em;
    margin-left: 6px;
    vertical-align: middle;
    text-decoration: none;
  }
  .solve-all__sub {
    font-size: 17px; color: #4a5b75;
    line-height: 1.85; margin-bottom: 48px;
  }
  .solve-all__list {
    list-style: none;
    display: flex; flex-direction: column; gap: 14px;
  }
  .solve-all__item {
    display: grid;
    grid-template-columns: 56px 1fr 28px 56px 1fr;
    gap: 0 20px;
    align-items: center;
    background: #fff;
    border-radius: 14px;
    padding: 24px 32px;
    text-align: left;
    box-shadow: 0 2px 16px rgba(11,36,68,0.08);
  }
  .solve-all__check {
    width: 56px; height: 56px; flex-shrink: 0;
    background: url('../assets/img/solve-check.png') center/contain no-repeat;
  }
  /* 左側：未解決の空チェックボックス */
  .solve-all__worry-icon {
    width: 36px; height: 36px; flex-shrink: 0;
    background: #fff !important;
    background-image: none !important;
    border: 3px solid #c5d3e3;
    border-radius: 0;
    position: relative;
    box-shadow: none;
  }
  .solve-all__worry-icon::before {
    content: none;
  }
  .solve-all__worry-icon.solve-worry-01,
  .solve-all__worry-icon.solve-worry-02,
  .solve-all__worry-icon.solve-worry-03,
  .solve-all__worry-icon.solve-worry-04,
  .solve-all__worry-icon.solve-worry-05 {
    background-image: none !important;
  }
  .solve-all__worry {
    font-size: 17px; color: #3a4e6a;
    font-weight: 500; line-height: 1.55;
  }
  .solve-all__arrow {
    font-size: 22px; color: var(--c-accent); font-weight: 900;
    flex-shrink: 0;
  }
  /* 右側：解決済みチェック入りボックス */
  .solve-all__sol-badge {
    width: 36px; height: 36px; flex-shrink: 0;
    background: var(--c-accent);
    border: 3px solid var(--c-accent);
    border-radius: 0;
    position: relative;
    box-shadow: 0 4px 12px rgba(30, 115, 190, 0.35);
  }
  .solve-all__sol-badge::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-58%, -65%) rotate(-45deg);
    width: 18px;
    height: 9px;
    border-left: 4px solid #fff;
    border-bottom: 4px solid #fff;
  }
  .solve-all__solution {
    font-size: 17px; font-weight: 700; color: var(--c-navy-deep); line-height: 1.55;
  }
  .solve-all__solution strong {
    color: var(--c-accent);
    font-weight: 900;
    font-size: 1.15em;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
  }

  /* ============== SECTION 08: インタビュー動画 3本 ============== */
  .videos {
    background: #ffffff;
    padding: 96px 0;
  }
  .videos__inner { max-width: 1180px; margin: 0 auto; padding: 0 24px; }
  .videos__head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 40px; gap: 24px; }
  .videos__title { font-size: 32px; font-weight: 900; color: var(--c-navy-deep); line-height: 1.4; }
  .videos__title em { color: var(--c-accent); font-style: normal; }
  .videos__count {
    font-size: 17px; color: #5a6b85;
    border-left: 1px solid var(--c-line);
    padding-left: 16px; line-height: 1.6;
  }
  .videos__count strong { color: var(--c-navy-deep); display: block; font-size: 22px; }
  .videos__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));  /* 1fr→minmax(0,1fr): 長い会社名でも列幅を均等に */
    gap: 24px;
  }
  .video-thumb {
    background: #fff;
    border: 1px solid var(--c-line);
    display: flex;            /* カード高さ統一: 画像固定・本文伸縮 */
    flex-direction: column;
  }
  .video-thumb__img {
    height: 210px;            /* 固定高さで全カードの画像を完全統一（aspect-ratio + grid stretch干渉を回避） */
    flex-shrink: 0;
    background: var(--c-soft);
    display: flex; align-items: center; justify-content: center;
    color: #5a6b85; font-size: 17px;
    border-bottom: 1px solid var(--c-line);
    overflow: hidden;
    position: relative;
  }
  .video-thumb__img iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
  }
  /* サムネイル → YouTube リンク方式 */
  .video-thumb__img--link {
    text-decoration: none;
    cursor: pointer;
    transition: transform 0.3s ease;
  }
  .video-thumb__img--link img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .video-thumb__play {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 64px;
    height: 64px;
    background: rgba(255, 0, 0, 0.85);
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    transition: background 0.2s ease, transform 0.2s ease;
  }
  .video-thumb__play::before {
    content: '';
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 14px 0 14px 22px;
    border-color: transparent transparent transparent #fff;
    margin-left: 4px;
  }
  .video-thumb__img--link:hover .video-thumb__play {
    background: rgba(255, 0, 0, 1);
    transform: translate(-50%, -50%) scale(1.08);
  }
  /* サムネイル上のキャプション(白カード・オレンジ文字) */
  .video-thumb__quote {
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: 10px;
    padding: 10px 14px 12px;
    background: #ffffff;
    border-left: 3px solid #f59e0b;
    box-shadow: 0 4px 14px rgba(11, 36, 68, 0.22);
    color: #f59e0b;
    font-size: 17px;
    font-weight: 900;
    text-align: center;
    line-height: 1.5;
    letter-spacing: 0.02em;
    pointer-events: none;
  }
  .video-thumb__body { padding: 16px 20px; flex: 1; display: flex; flex-direction: column; }
  .video-thumb__cat {
    font-size: 17px; color: var(--c-accent);
    letter-spacing: 0.1em; font-weight: 700;
    margin-bottom: 6px;
  }
  .video-thumb__body h4 {
    font-size: 17px; font-weight: 900;
    color: var(--c-navy-deep);
    line-height: 1.4;
    margin-bottom: 10px;
  }
  .video-thumb__desc {
    margin: 12px 0 0;
    padding-top: 12px;
    border-top: 1px solid var(--c-line);
    font-size: 17px;
    line-height: 1.65;
    color: var(--c-navy-deep);
    word-break: keep-all;
    overflow-wrap: break-word;
    line-break: strict;
    text-wrap: pretty;
  }
  .video-thumb__desc .nobreak {
    white-space: nowrap;
  }
  .video-card__info {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 3px 8px;
    font-size: 17px;
    color: #5a6b85;
    border-top: 1px solid var(--c-line);
    padding-top: 10px;
  }
  .video-card__info dt {
    font-weight: 700;
    color: #303030;
    white-space: nowrap;
  }
  .video-card__info dd { margin: 0; }
  .videos__note {
    margin-top: 28px; font-size: 17px; color: #5a6b85;
    text-align: center; line-height: 1.85;
    padding: 16px;
    background: var(--c-soft);
  }

  /* ============== SECTION 09: YouTube誘導 — wide banner ============== */
  .yt-band {
    padding: 0;
    background: #f0f6ff;
    color: var(--c-navy-deep);
  }
  .yt-band__bg { display: none; }
  .yt-band__bg-label {
    position: absolute; bottom: 12px; right: 24px;
    font-size: 17px; color: #5a6b85;
    z-index: 1; letter-spacing: 0.05em;
  }
  .yt-band__inner {
    max-width: 1180px; margin: 0 auto;
    padding: 32px 24px;
    display: grid; grid-template-columns: 1.4fr auto;
    align-items: center; gap: 48px;
  }
  .yt-band__title { font-size: 28px; font-weight: 900; line-height: 1.5; color: var(--c-navy-deep); }
  .yt-band__title em { color: var(--c-accent); font-style: normal; }
  .yt-band__sub { font-size: 17px; color: #4a5b75; line-height: 1.85; margin-top: 8px; }
  .yt-band__btn {
    background: var(--c-accent); color: #fff;
    padding: 16px 32px;
    font-weight: 700;
    font-size: 17px;
    white-space: nowrap;
  }

  /* ============== SECTION 02(移動): 導入実績 — logo strip + numbers ============== */
  .cases {
    background: #fff;
    background-image: url('../assets/img/zisseki.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 56px 0;
    position: relative;
    overflow: hidden;
    border-bottom: 1px solid var(--c-line);
  }
  .cases__bg {
    position: absolute; inset: 0;
    background: rgba(255,255,255,0.82);
    z-index: 0;
  }
  .cases__inner { position: relative; z-index: 1; max-width: 1180px; margin: 0 auto; padding: 0 24px; }
  .cases__head { text-align: center; margin-bottom: 48px; }
  .cases__title {
    font-size: 32px; font-weight: 900;
    color: var(--c-navy-deep);
    margin-bottom: 8px;
  }
  .cases__num {
    font-size: 96px; font-weight: 900;
    color: var(--c-accent);
    line-height: 1;
    letter-spacing: -0.04em;
    margin: 16px 0;
  }
  .cases__num small { font-size: 36px; color: var(--c-navy-deep); margin-left: 6px; font-weight: 900; }
  .cases__caption { font-size: 17px; color: #5a6b85; }
  .logo-strip {
    overflow: hidden;
    border-top: 1px solid var(--c-line);
    border-bottom: 1px solid var(--c-line);
    padding: 32px 0;
  }
  .logo-strip__track {
    display: flex; gap: 56px;
    animation: scrollx 30s linear infinite;
    width: max-content;
  }
  .logo-strip__item {
    height: 48px; width: 144px;
    background: var(--c-soft);
    border: 1px solid var(--c-line);
    display: flex; align-items: center; justify-content: center;
    color: #5a6b85; font-size: 17px; flex-shrink: 0;
  }
  @keyframes scrollx {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
  }

  /* ============== SECTION 11: 料金プラン — comparison table (NOT card grid) ============== */
  .pricing {
    background: #f0f6ff;
    padding: 96px 0;
  }
  .pricing__inner {
    max-width: 1180px; margin: 0 auto; padding: 0 24px;
    display: grid; grid-template-columns: 280px 1fr;
    gap: 48px; align-items: start;
  }
  .pricing__photo {
    aspect-ratio: 3/4;
    background: #fff;
    border: 1px solid var(--c-line);
    display: flex; align-items: center; justify-content: center;
    color: #5a6b85; font-size: 17px; text-align: center;
  }
  .pricing__head {
    margin-bottom: 24px;
  }
  .pricing__title { font-size: 32px; font-weight: 900; color: var(--c-navy-deep); margin-bottom: 8px; }
  .pricing__lead { font-size: 17px; color: #4a5b75; line-height: 1.85; }
  .pricing-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border: 1px solid var(--c-line);
  }
  .pricing-table th, .pricing-table td {
    padding: 18px 20px;
    border-bottom: 1px solid var(--c-line);
    text-align: left;
    font-size: 17px;
    vertical-align: top;
  }
  .pricing-table thead th {
    background: var(--c-accent);
    color: #fff;
    font-weight: 700;
    font-size: 17px;
    letter-spacing: 0.08em;
    text-align: center;
  }
  .pricing-table tbody th {
    background: var(--c-soft);
    font-weight: 700;
    width: 25%;
    color: var(--c-navy-deep);
  }
  .pricing-table tbody td.featured {
    background: rgba(30, 115, 190, 0.06);
  }
  .pricing-table .price-num {
    font-size: 22px; font-weight: 900;
    color: var(--c-accent);
    display: block;
  }
  .pricing-table .price-num small { font-size: 17px; color: #5a6b85; font-weight: 500; }
  .pricing-table .check { color: var(--c-accent); font-weight: 900; font-size: 17px; }
  .pricing__note { margin-top: 16px; font-size: 17px; color: #5a6b85; }

  /* ============== SECTION 12: 移行 — left photo + right text ============== */
  .migration {
    background: #fff;
    padding: 96px 0;
  }
  .migration__head {
    text-align: center;
    margin: 0 auto 56px;
    max-width: 720px;
  }
  .mig__head-title {
    display: inline-block;
    background: var(--c-navy);
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.04em;
    padding: 13px 44px;
    margin-bottom: 0;
  }
  .migration__inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 56px;
    align-items: stretch;
  }
  .migration__photo {
    background: url('../assets/img/ikou.png') center/cover no-repeat;
    min-height: 100%;
    align-self: stretch;
  }
  .migration__title {
    font-size: 40px;
    font-weight: 900;
    color: var(--c-navy-deep);
    line-height: 1.4;
    margin-bottom: 24px;
    letter-spacing: -0.01em;
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
  .migration__title em {
    color: var(--c-accent);
    font-style: normal;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 4px;
    text-underline-offset: 6px;
  }
  .migration__banner {
    display: flex;
    gap: 16px;
    align-items: center;
    padding: 16px 18px;
    background: #f0f6ff;
    border-left: 4px solid var(--c-accent);
    margin-bottom: 28px;
    font-size: 17px;
    color: var(--c-navy-deep);
    line-height: 1.7;
  }
  .migration__banner strong {
    background: var(--c-accent);
    color: #fff;
    font-size: 17px;
    font-weight: 900;
    padding: 6px 12px;
    letter-spacing: 0.1em;
    flex-shrink: 0;
  }
  .migration__rows {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .migration__rows li {
    padding: 22px 0;
    border-bottom: 1px solid var(--c-line);
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 18px;
    font-size: 17px;
    align-items: center;
  }
  .migration__rows li:first-child { border-top: 1px solid var(--c-line); }
  .migration__rows .num {
    color: var(--c-accent);
    font-weight: 900;
    font-size: 30px;
    line-height: 1;
    letter-spacing: -0.04em;
  }
  .migration__rows h4 {
    font-size: 17px;
    font-weight: 900;
    color: var(--c-navy-deep);
    margin: 0 0 6px;
    line-height: 1.4;
  }
  .migration__rows p {
    font-size: 17px;
    color: #4a5b75;
    line-height: 1.75;
    margin: 0;
  }

  /* ============== SECTION 13: 導入の流れ — horizontal timeline + lead photo ============== */
  .flow {
    background: #f0f6ff;
    color: var(--c-navy-deep);
    padding: 96px 0;
  }
  .flow__inner { max-width: 1180px; margin: 0 auto; padding: 0 24px; }
  .flow__head { margin: 0 auto 48px; max-width: 720px; text-align: center; }
  .flow__eyebrow {
    display: inline-block;
    padding: 13px 44px;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    background: var(--c-navy);
    letter-spacing: 0.04em;
    margin-bottom: -4px;
  }
  .flow__title {
    font-size: 40px;
    font-weight: 900;
    line-height: 1.4;
    color: var(--c-navy-deep);
    margin: 0;
  }
  .flow__title em {
    color: var(--c-accent);
    font-style: normal;
  }
  .flow__lead-img {
    aspect-ratio: 21/6;
    background: url('../assets/img/kaigi.png') center/cover no-repeat;
    border: 1px solid var(--c-line);
    margin-bottom: 40px;
  }
  .flow__steps {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border: 1px solid var(--c-line);
    background: #fff;
  }
  .flow__step {
    list-style: none;
    padding: 32px 24px;
    border-right: 1px solid var(--c-line);
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  .flow__step:last-child { border-right: 0; }
  .flow__step::after {
    content: "→";
    position: absolute; right: -14px; top: 50%;
    transform: translateY(-50%);
    color: var(--c-accent);
    font-size: 20px;
    font-weight: 900;
    background: #f0f6ff;
    width: 28px; height: 28px;
    line-height: 28px; text-align: center;
    z-index: 1;
  }
  .flow__step:last-child::after { display: none; }
  .flow__step-num {
    font-size: 17px;
    color: #5a6b85;
    letter-spacing: 0.22em;
    margin-bottom: 6px;
    text-transform: uppercase;
  }
  .flow__step-num em {
    font-size: 28px;
    color: var(--c-accent);
    font-style: normal;
    font-weight: 900;
    line-height: 1;
    display: block;
    margin-top: 6px;
    letter-spacing: -0.02em;
  }
  .flow__step h4 {
    font-size: 18px;
    font-weight: 900;
    color: var(--c-navy-deep);
    margin: 12px 0 10px;
    line-height: 1.5;
  }
  .flow__step-desc {
    font-size: 17px;
    color: #4a5b75;
    line-height: 1.8;
    margin: 0;
  }

  /* ============== SECTION 14: FAQ — vertical with side photo ============== */
  .faq-sec {
    background: #fff;
    padding: 96px 0;
  }
  .faq-sec__inner {
    max-width: 1180px; margin: 0 auto; padding: 0 24px;
    display: grid; grid-template-columns: 1fr 320px;
    gap: 48px; align-items: start;
  }
  .faq-sec__title {
    font-size: 32px; font-weight: 900;
    color: var(--c-navy-deep);
    margin-bottom: 24px; line-height: 1.4;
  }
  .faq-sec__photo {
    background: url('../assets/img/qa.png') center/cover no-repeat;
    border: 1px solid var(--c-line);
    border-radius: 12px;
    aspect-ratio: 1 / 1.45;
    margin-top: 56px;
  }
  .faq-sec__photo p { font-size: 17px; margin-top: 12px; color: #5a6b85; }
  .faq-sec details {
    border-top: 1px solid var(--c-line);
    padding: 0;
  }
  .faq-sec details:last-child { border-bottom: 1px solid var(--c-line); }
  .faq-sec details[open] { background: #f0f6ff; }
  .faq-sec summary {
    list-style: none;
    padding: 22px 16px 22px 0;
    font-size: 17px;
    font-weight: 700;
    color: var(--c-navy-deep);
    cursor: pointer;
    display: grid;
    grid-template-columns: 34px 1fr 24px;
    gap: 14px;
    align-items: center;
  }
  .faq-sec summary::before {
    content: "Q.";
    font-family: serif;
    font-size: 22px;
    font-weight: 700;
    color: var(--c-accent);
    line-height: 1.4;
    text-align: left;
  }
  .faq-sec summary::after {
    content: "+";
    font-size: 22px;
    font-weight: 300;
    color: var(--c-accent);
    line-height: 1;
    text-align: center;
    transition: transform 0.2s;
  }
  .faq-sec details[open] summary::after {
    content: "−";
  }
  .faq-sec summary::-webkit-details-marker { display: none; }
  .faq-sec details[open] summary { padding-bottom: 12px; }
  .faq-sec .a {
    display: grid;
    grid-template-columns: 34px 1fr 24px;
    gap: 14px;
    padding: 4px 16px 24px 0;
    font-size: 17px;
    color: #111;
    line-height: 2;
    align-items: start;
  }
  .faq-sec .a::before {
    content: "A.";
    font-family: serif;
    font-size: 20px;
    font-weight: 700;
    color: var(--c-navy-deep);
    line-height: 1.55;
    text-align: left;
  }

  /* ============== SECTION 15: 説明会 — split panel: dark text card + photo card ============== */
  .seminar {
    background: #f0f6ff;
    padding: 96px 0;
  }
  .seminar__inner {
    max-width: 1180px; margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    align-items: stretch;
  }
  .seminar__panel {
    background: #f0f6ff;
    color: var(--c-navy-deep);
    padding: 0;
    display: flex;
    flex-direction: column;
    justify-content: stretch;
  }
  .seminar__panel .seminar__cta-panel {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
  }
  .seminar__panel .seminar__cta-list {
    flex: 1;
  }
  /* 説明会パネル内 CTA（周囲の薄青背景に馴染む白ベース構成） */
  .seminar__cta-panel {
    background: #ffffff;
    border: 2px solid var(--c-accent);
    padding: 28px 28px 32px;
  }
  .seminar__cta-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--c-navy-deep);
    line-height: 1.5;
    padding-bottom: 14px;
    border-bottom: 2px solid var(--c-line);
    margin: 0 0 18px;
  }
  .seminar__cta-title em {
    color: var(--c-accent);
    font-style: normal;
  }
  /* 「大好評につき...」のリード文 */
  .seminar__cta-intro {
    font-size: 17px;
    line-height: 1.85;
    color: var(--c-navy-deep);
    margin: 0 0 18px;
    letter-spacing: 0.02em;
  }
  .seminar__cta-intro strong {
    display: block;
    font-weight: 900;
    color: var(--c-navy-deep);
    margin-bottom: 8px;
  }
  .seminar__cta-intro strong em {
    color: var(--c-accent);
    font-style: normal;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
    text-decoration-skip-ink: none;
  }
  .seminar__cta-lead {
    background: #f0f6ff;
    color: var(--c-navy-deep);
    font-size: 17px;
    font-weight: 900;
    margin: 0;
    padding: 12px 18px;
    border-left: 3px solid var(--c-accent);
    letter-spacing: 0.04em;
  }
  .seminar__cta-list {
    list-style: none;
    margin: 0 0 22px;
    padding: 16px 22px 6px;
    font-size: 17px;
    line-height: 1.85;
    color: var(--c-navy-deep);
  }
  .seminar__cta-list li {
    position: relative;
    padding-left: 18px;
  }
  .seminar__cta-list li::before {
    content: '・';
    position: absolute;
    left: 0;
    color: var(--c-accent);
    font-weight: 900;
  }
  .seminar__cta-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 18px 24px;
    background: #ffd54f;
    color: var(--c-navy-deep);
    font-size: 17px;
    font-weight: 900;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
    letter-spacing: 0.02em;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    box-sizing: border-box;
  }
  .seminar__cta-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(11, 36, 68, 0.25);
  }
  .seminar__eyebrow {
    color: var(--c-accent);
    font-size: 17px;
    letter-spacing: 0.18em;
    margin-bottom: 0px;
    display: block;
  }
  .seminar__title {
    font-size: 32px; font-weight: 900;
    line-height: 1.4; margin-bottom: 16px;
  }
  .seminar__title em { color: var(--c-accent); font-style: normal; }
  .seminar__sub {
    font-size: 17px; line-height: 1.95;
    margin-bottom: 28px;
    color: #4a5b75;
  }
  .seminar__btn {
    background: var(--c-navy); color: #fff;
    padding: 14px 32px;
    font-weight: 700; font-size: 17px;
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
  }
  .seminar__btn-text { text-decoration: underline; }
  .seminar__btn-arrow {
    font-size: 17px;
    font-weight: 900;
    text-decoration: none;
  }
  .seminar__schedule {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--c-line);
    font-size: 17px;
    color: #5a6b85;
    line-height: 1.85;
  }
  .seminar__schedule strong { color: var(--c-navy-deep); }
  .seminar__photo {
    background: url('../assets/img/semina.png') right center / cover no-repeat;
  }

  /* ============== SECTION 16: 最終CTA — photo bg + form overlay ============== */
  .final {
    position: relative;
    padding: 0;
    overflow: hidden;
    background: #f0f6ff;
  }
  /* CTA.png を背景画像として配置（薄いオーバーレイで可読性を保持） */
  .final__bg {
    position: absolute;
    inset: 0;
    background: url('../assets/img/CTA.png') right center / cover no-repeat;
    z-index: 0;
    opacity: 0.85;
  }
  .final__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,
      rgba(240, 246, 255, 0.85) 0%,
      rgba(240, 246, 255, 0.55) 35%,
      rgba(240, 246, 255, 0.25) 65%,
      rgba(240, 246, 255, 0.55) 100%);
    pointer-events: none;
  }
  .final__head {
    position: relative;
    z-index: 1;
    text-align: center;
    padding: 72px 24px 0;
    max-width: 1180px;
    margin: 0 auto;
  }
  .final__head-eyebrow {
    display: block;
    font-size: 17px;
    font-weight: 700;
    color: var(--c-accent);
    letter-spacing: 0.18em;
    margin-bottom: 10px;
  }
  .final__head-title {
    display: inline-block;
    background: transparent;
    color: var(--c-navy-deep);
    font-size: 40px;
    font-weight: 900;
    padding: 0;
    letter-spacing: 0.01em;
    line-height: 1.3;
    margin: 0;
  }
  .final__bg-label {
    position: absolute; bottom: 12px; left: 24px;
    font-size: 17px; color: #5a6b85;
    z-index: 1; letter-spacing: 0.05em;
  }
  .final__inner {
    position: relative; z-index: 1;
    max-width: 1180px; margin: 0 auto;
    padding: 56px 48px 96px;
    display: grid; grid-template-columns: 1fr;
    gap: 56px; align-items: start;
    color: var(--c-navy-deep);
  }
  .final__title {
    font-size: 34px; font-weight: 900;
    line-height: 1.4; margin-bottom: 16px;
  }
  .final__sub { font-size: 17px; line-height: 1.95; color: #4a5b75; margin-bottom: 32px; }
  .final__contact {
    border-top: 1px solid var(--c-line);
    padding-top: 24px; margin-top: 32px;
  }
  .final__contact-label { font-size: 17px; color: #5a6b85; letter-spacing: 0.1em; }
  .final__tel { font-size: 36px; font-weight: 900; line-height: 1.2; margin: 4px 0; }
  .final__hours { font-size: 17px; color: #5a6b85; }
  .final__col-left {
    background: #ffffff;
    padding: 56px 48px;
    border-radius: 4px;
    text-align: center;
    max-width: 720px;
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box;
  }
  .final__btns { display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; }
  .final__contact { text-align: center; }
  /* FV と同じスタイル：ピル型 + 円形矢印 */
  .final__btn {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    background: var(--c-navy);
    color: #fff;
    padding: 14px 24px 14px 36px;
    font-size: 17px;
    font-weight: 700;
    border-radius: 999px;
  }
  .final__btn--sub {
    background: #fff;
    color: var(--c-navy);
    border: 2px solid var(--c-navy);
  }
  .final__btn--sub .final__btn-arrow {
    background: var(--c-navy);
    color: #fff;
  }
  .final__btn-arrow {
    width: 30px; height: 30px;
    border-radius: 50%;
    background: #fff;
    color: var(--c-navy);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    font-weight: 900;
    padding-left: 2px;          /* ▶グリフの左寄りインクを光学的に中央へ補正 */
    box-sizing: border-box;
    line-height: 1;
    text-decoration: none !important;  /* ボタン下線が▶円の下に出るのを防ぐ */
  }
  /* レガシー */
  .final__btn-primary {
    background: var(--c-navy); color: #fff;
    padding: 14px 28px; font-weight: 700; font-size: 17px;
  }
  .final__btn-outline {
    background: transparent; color: var(--c-navy);
    border: 1px solid var(--c-navy);
    padding: 13px 28px; font-weight: 700; font-size: 17px;
  }
  /* form panel */
  .final__form {
    background: #fff;
    padding: 28px 28px 24px;
    color: #303030;
    order: -1;
  }
  .final__form h3 {
    font-size: 17px; font-weight: 900;
    color: var(--c-navy-deep);
    padding-bottom: 10px;
    border-bottom: 2px solid var(--c-accent);
    margin-bottom: 20px;
  }
  /* CTA パネル（フォームを廃止して個別提案リンクのみに） */
  .final__cta-panel {
    background: var(--c-accent);
    padding: 28px 28px 32px;
    order: -1;
  }
  .final__cta-title {
    font-size: 18px;
    font-weight: 900;
    color: #fff;
    line-height: 1.5;
    padding-bottom: 14px;
    border-bottom: 2px solid rgba(255, 255, 255, 0.4);
    margin: 0 0 18px;
  }
  .final__cta-title em {
    color: #ffd54f;
    font-style: normal;
  }
  .final__cta-lead {
    background: #fff;
    color: var(--c-navy-deep);
    font-size: 17px;
    font-weight: 900;
    margin: 0;
    padding: 12px 18px;
    border-bottom: 1px solid var(--c-line);
    letter-spacing: 0.04em;
  }
  .final__cta-list {
    background: #fff;
    list-style: none;
    margin: 0 0 18px;
    padding: 16px 22px 22px;
    font-size: 17px;
    line-height: 1.85;
    color: var(--c-navy-deep);
  }
  .final__cta-list li {
    position: relative;
    padding-left: 18px;
  }
  .final__cta-list li::before {
    content: '・';
    position: absolute;
    left: 0;
    color: var(--c-accent);
    font-weight: 900;
  }
  .final__cta-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 18px 24px;
    background: #ffd54f;
    color: var(--c-navy-deep);
    font-size: 17px;
    font-weight: 900;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
    letter-spacing: 0.02em;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    box-sizing: border-box;
  }
  .final__cta-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(11, 36, 68, 0.25);
  }
  /* フォーム上部の 1 ステップインジケーター */
  .final__step {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    background: #f0f6ff;
    border-left: 3px solid var(--c-accent);
    margin-bottom: 20px;
  }
  .final__step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--c-accent);
    color: #fff;
    font-size: 17px;
    font-weight: 900;
    flex-shrink: 0;
    line-height: 1;
  }
  .final__step-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.3;
  }
  .final__step-text strong {
    font-size: 17px;
    font-weight: 900;
    color: var(--c-navy-deep);
  }
  .final__step-text small {
    font-size: 17px;
    color: #5a6b85;
    font-weight: 700;
    letter-spacing: 0.04em;
  }
  .final__form .row { margin-bottom: 12px; }
  .final__form label {
    display: block; font-size: 17px; font-weight: 700;
    color: var(--c-navy-deep);
    margin-bottom: 4px;
  }
  .final__form label .req { color: #d64545; font-size: 12px; margin-left: 6px; }
  .final__form input, .final__form textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--c-line);
    padding: 10px 12px;
    font-size: 17px;
    font-family: inherit;
    background: #fff;
  }
  .final__form-submit {
    width: 100%;
    box-sizing: border-box;
    background: var(--c-navy); color: #fff;
    padding: 14px;
    font-size: 17px; font-weight: 700;
    border: 0;
    margin-top: 8px;
  }
  .final__form-note { font-size: 17px; color: #5a6b85; margin-top: 8px; text-align: center; }
  .final__form .form-sect-tag {
    font-size: 17px; font-weight: 700;
    color: var(--c-navy-deep);
    margin-bottom: 4px;
  }
  .final__form .form-sect-title {
    font-size: 17px; font-weight: 700;
    color: var(--c-accent);
    line-height: 1.5;
    margin-bottom: 16px;
  }
  .final__form .check-group {
    display: flex; flex-direction: column; gap: 6px;
    margin-top: 4px;
  }
  .final__form .check-inline {
    display: flex; align-items: flex-start; gap: 7px;
    font-size: 17px; font-weight: 400;
    color: #303030; margin-bottom: 0; cursor: pointer;
  }
  .final__form .check-inline input[type="checkbox"] {
    width: 14px; height: 14px; margin-top: 3px; flex-shrink: 0;
    accent-color: var(--c-navy);
  }
  .final__form .privacy-area {
    width: 100%; height: 180px;
    font-size: 17px; line-height: 1.75;
    background: #f8f9fc;
    border: 1px solid var(--c-line);
    padding: 10px 12px;
    resize: vertical; color: #5a6b85;
    font-family: inherit;
    overflow-y: auto;
  }
  .final__form .agree-row {
    display: flex; align-items: flex-start; gap: 7px;
    font-size: 17px; font-weight: 700;
    color: var(--c-navy-deep); cursor: pointer;
  }
  .final__form .agree-row input[type="checkbox"] {
    width: 14px; height: 14px; margin-top: 3px; flex-shrink: 0;
    accent-color: var(--c-navy);
  }

  /* ============== Footer (full company info) ============== */
  .site-footer {
    background: #0b2040;
    color: rgba(255,255,255,0.78);
    padding: 56px 0 28px;
  }
  .site-footer__main {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 280px 1fr 1fr;
    gap: 48px;
  }
  .footer-brand .vos-logo__main { color: #fff; }
  .footer-brand .vos-logo__sub { color: rgba(255,255,255,0.6); }
  .footer-brand .vos-logo__source { color: rgba(255,255,255,0.55); }
  .footer-brand p {
    font-size: 15px;
    color: rgba(255,255,255,0.6);
    line-height: 1.85;
    margin-top: 16px;
  }
  .footer-brand .pmark {
    margin-top: 16px;
    font-size: 13px;
    border: 1px solid rgba(255,255,255,0.25);
    color: rgba(255,255,255,0.85);
    padding: 6px 10px;
    display: inline-block;
    letter-spacing: 0.05em;
  }
  .footer-brand .pmark::before { content: "P "; font-weight: 900; color: var(--c-accent); margin-right: 4px; }

  .footer-col h5 {
    font-size: 16px;
    color: #fff;
    letter-spacing: 0.15em;
    margin-bottom: 16px;
    border-bottom: 1px solid rgba(255,255,255,0.18);
    padding-bottom: 8px;
  }
  .footer-col dl {
    font-size: 15px;
    line-height: 1.85;
  }
  .footer-col dt {
    color: rgba(255,255,255,0.55);
    font-weight: 700;
    letter-spacing: 0.04em;
    margin-top: 10px;
  }
  .footer-col dt:first-child { margin-top: 0; }
  .footer-col dd { color: rgba(255,255,255,0.92); margin: 0; }
  .footer-col dd a { color: rgba(255,255,255,0.92); text-decoration: underline; text-decoration-color: rgba(255,255,255,0.3); }
  .footer-col__partners { font-size: 15px; color: rgba(255,255,255,0.78); line-height: 1.85; }

  .site-footer__bottom {
    border-top: 1px solid rgba(255,255,255,0.12);
    margin-top: 40px;
    padding-top: 20px;
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    font-size: 14px;
    color: rgba(255,255,255,0.55);
  }
  .site-footer__bottom ul {
    display: flex;
    gap: 20px;
    list-style: none;
    padding: 0;            /* ブラウザ既定の padding-left:40px をリセット（横スクロールの原因） */
    margin: 0;
  }
  .site-footer__bottom ul a { color: rgba(255,255,255,0.85); }

  /* ============== SCROLL ANIMATIONS ============== */
  .fade-up {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity 0.7s ease, transform 0.7s ease;
  }
  .fade-up.is-visible { opacity: 1; transform: translateY(0); }

  .fade-left {
    opacity: 0;
    transform: translateX(-40px);
    transition: opacity 0.7s ease, transform 0.7s ease;
  }
  .fade-left.is-visible { opacity: 1; transform: translateX(0); }

  .fade-right {
    opacity: 0;
    transform: translateX(40px);
    transition: opacity 0.7s ease, transform 0.7s ease;
  }
  .fade-right.is-visible { opacity: 1; transform: translateX(0); }

  .scale-in {
    opacity: 0;
    transform: scale(0.88);
    transition: opacity 0.65s ease, transform 0.65s ease;
  }
  .scale-in.is-visible { opacity: 1; transform: scale(1); }

  /* Stagger delays for children */
  .stagger > .fade-up:nth-child(1) { transition-delay: 0s; }
  .stagger > .fade-up:nth-child(2) { transition-delay: 0.12s; }
  .stagger > .fade-up:nth-child(3) { transition-delay: 0.24s; }
  .stagger > .fade-up:nth-child(4) { transition-delay: 0.36s; }
  .stagger > .fade-up:nth-child(5) { transition-delay: 0.48s; }
  .stagger > .fade-left:nth-child(1) { transition-delay: 0s; }
  .stagger > .fade-left:nth-child(2) { transition-delay: 0.12s; }
  .stagger > .fade-right:nth-child(1) { transition-delay: 0.1s; }
  .stagger > .fade-right:nth-child(2) { transition-delay: 0.22s; }

  /* cef-grid: 9子要素を左から順に表示 (card, arrow, card, arrow ...) */
  .cef-grid > .fade-up:nth-child(1) { transition-delay: 0s; }
  .cef-grid > .fade-up:nth-child(2) { transition-delay: 0.09s; }
  .cef-grid > .fade-up:nth-child(3) { transition-delay: 0.18s; }
  .cef-grid > .fade-up:nth-child(4) { transition-delay: 0.27s; }
  .cef-grid > .fade-up:nth-child(5) { transition-delay: 0.36s; }
  .cef-grid > .fade-up:nth-child(6) { transition-delay: 0.45s; }
  .cef-grid > .fade-up:nth-child(7) { transition-delay: 0.54s; }
  .cef-grid > .fade-up:nth-child(8) { transition-delay: 0.63s; }
  .cef-grid > .fade-up:nth-child(9) { transition-delay: 0.72s; }

  /* ============== CTI FEATURE ROWS (zigzag) ============== */
  .cti-row-list { display: flex; flex-direction: column; gap: 80px; }
  .cti-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 72px;
    align-items: center;
  }
  .cti-row--reverse .cti-row__img { order: 2; }
  .cti-row--reverse .cti-row__body { order: 1; }
  .cti-row__img {
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 16px 48px rgba(0,26,67,.10);
  }
  .cti-row__img img { width: 100%; display: block; }
  .cti-row__badge {
    display: inline-block;
    background: var(--c-accent);
    color: #fff;
    font-size: 17px;
    font-weight: 900;
    letter-spacing: 0.12em;
    padding: 3px 12px 3px 10px;
    border-radius: 2px;
    margin-bottom: 14px;
  }
  .cti-row__label {
    display: block;
    font-size: 17px;
    color: var(--c-accent);
    font-weight: 700;
    letter-spacing: 0.18em;
    margin-bottom: 10px;
  }
  .cti-row__title {
    font-size: 28px;
    font-weight: 900;
    color: var(--c-navy-deep);
    line-height: 1.45;
    margin-bottom: 20px;
  }
  .cti-row__text {
    font-size: 17px;
    color: #4a5b75;
    line-height: 1.9;
    margin-bottom: 8px;
  }
  .cti-row__text .nobreak { white-space: nowrap; }
  .cti-row__text strong {
    color: var(--c-navy-deep);
    font-weight: 900;
    text-decoration: underline;
    text-decoration-color: #ffd54f;
    text-decoration-thickness: 3px;
    text-underline-offset: 5px;
    text-decoration-skip-ink: none;
  }
  .cti-row__title--underline {
    display: inline-block;
    padding-bottom: 3px;
    border-bottom: 3px solid var(--c-accent);
  }

  /* ============== CTI ROW 間の手書き風 視線誘導アロー (PC only) ============== */
  /* セクションをまたぐようにオーバーラップ配置（独立した帯にしない） */
  .cti-flow-arrow {
    width: 100%;
    height: 0;
    margin: -40px 0;
    position: relative;
    pointer-events: none;
    z-index: 5;
  }
  .cti-flow-arrow::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -120px;
    height: 240px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 28% auto;
    pointer-events: none;
  }
  .cti-flow-arrow--down-left::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 140'><path d='M 540 18 L 110 122' stroke='%231e73be' stroke-width='3.5' fill='none' stroke-linecap='round'/><path d='M 132 125 L 110 122 L 128 110' stroke='%231e73be' stroke-width='3.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  }
  .cti-flow-arrow--down-right::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 140'><path d='M 60 18 L 490 122' stroke='%231e73be' stroke-width='3.5' fill='none' stroke-linecap='round'/><path d='M 468 125 L 490 122 L 472 110' stroke='%231e73be' stroke-width='3.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  }

  /* ============== 02. 導入実績ロゴマーキー (FV直下・1行・右→左に無限ループ) ============== */
  .logos-marquee {
    background: #fff;
    padding: 10px 0;             /* さらに圧縮: 16px → 10px */
    overflow: hidden;
    position: relative;
  }
  .logos-marquee__label {
    text-align: center;
    font-size: 17px;
    font-weight: 700;
    color: #5a6b85;
    letter-spacing: 0.16em;
    margin-bottom: 8px;          /* 12px → 8px */
  }
  .logos-marquee__track {
    display: grid;
    grid-template-rows: 1fr 1fr;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    gap: 10px 56px;              /* 行間 14px → 10px */
    width: max-content;
    animation: logos-scroll 80s linear infinite;
  }
  .logos-marquee:hover .logos-marquee__track {
    animation-play-state: paused;
  }
  .logos-marquee__item {
    flex-shrink: 0;
    height: 38px;                /* 44px → 38px: さらに縦幅圧縮 */
    display: flex;
    align-items: center;
    justify-content: center;
  }
  /* ジグザグ配置を解除（1行目・2行目とも同じ位置で整列） */
  .logos-marquee__item img {
    height: 100%;
    width: auto;
    display: block;
    object-fit: contain;
  }
  /* 個別ロゴのサイズ微調整 */
  .logos-marquee__item img[src*="logo-01"] { transform: scale(1.3); transform-origin: center; }
  .logos-marquee__item img[src*="logo-03"] { transform: scale(0.65); transform-origin: center; }
  .logos-marquee__item img[src*="logo-04"] { transform: scale(1.4); transform-origin: center; }
  .logos-marquee__item img[src*="logo-05"] { transform: scale(1.2); transform-origin: center; }
  .logos-marquee__item img[src*="logo-06"] { transform: scale(1.25); transform-origin: center; }
  .logos-marquee__item img[src*="logo-12"] { transform: scale(1.3); transform-origin: center; }
  .logos-marquee__item img[src*="logo-13"] { transform: scale(1.2); transform-origin: center; }
  .logos-marquee__item img[src*="logo-15"] { transform: scale(1.25); transform-origin: center; }
  .logos-marquee__item img[src*="logo-23"] { transform: scale(1.3); transform-origin: center; }
  @keyframes logos-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
  }
  /* 左右にフェードを入れて流れを美しく */
  .logos-marquee::before,
  .logos-marquee::after {
    content: '';
    position: absolute;
    top: 0; bottom: 0;
    width: 80px;
    z-index: 2;
    pointer-events: none;
  }
  .logos-marquee::before {
    left: 0;
    background: linear-gradient(to right, #fff, rgba(255,255,255,0));
  }
  .logos-marquee::after {
    right: 0;
    background: linear-gradient(to left, #fff, rgba(255,255,255,0));
  }

  /* =====================================================================
     RESPONSIVE — TABLET / MOBILE
  ===================================================================== */

  /* PC では sp-only 要素を非表示（モバイル用<br>等） */
  .sp-only { display: none; }
  /* PC では <br class="sp-only-br"> を改行させない */
  .sp-only-br { display: none; }
  /* PC専用改行（モバイルでは無効化） */
  .pc-only-br { display: initial; }

  /* タブレット〜小型PC（〜960px） */
  @media (max-width: 960px) {
    /* アニメ用 transform が画面外にはみ出すのを防止 */
    /* 注：html に overflow-x を付けると position:sticky が壊れるため body のみに適用 */
    body { overflow-x: hidden; max-width: 100%; }
    html { max-width: 100%; }
    /* モバイルでは sp-only を表示 */
    .sp-only { display: initial; }
    /* モバイルでは <br class="sp-only-br"> も改行として表示 */
    .sp-only-br { display: initial; }
    /* モバイルでは pc-only-br を改行させない */
    .pc-only-br { display: none !important; }
    /* モバイルでは横方向のフェードを無効化（縦のみ）*/
    .fade-left, .fade-right { transform: translateY(20px) !important; }
    .fade-left.is-visible, .fade-right.is-visible { transform: translateY(0) !important; }
    /* HEADER: ナビ非表示 + 固定表示(常に最上部に表示) */
    .site-header {
      position: fixed !important;
      top: 0 !important;
      left: 0 !important;
      right: 0 !important;
      width: 100vw !important;      /* 100% はドキュメント横オーバーフロー幅を参照し441pxになるため、ビューポート基準の100vwに */
      max-width: 100vw !important;
      box-sizing: border-box !important;
      overflow: hidden !important;
      z-index: 100 !important;
      background: #fff !important;
      box-shadow: 0 2px 8px rgba(11, 36, 68, 0.08);
      padding-top: env(safe-area-inset-top, 0);
    }
    /* 固定ヘッダー分だけメイン領域に上余白を確保 */
    main { padding-top: 72px !important; }
    .site-header__inner { padding: 14px 16px; gap: 12px; min-height: 44px; box-sizing: border-box; }
    .site-header__nav { display: none; }
    .site-header__cta { padding: 8px 14px; font-size: 17px; }
    .header-logo { height: 36px; display: block; }
    .site-header__logo { display: inline-flex; align-items: center; }
    /* スティッキーを妨げる overflow を main から取り除く */
    main { overflow: visible !important; }
    .top-strip__inner { font-size: 17px; padding: 6px 16px; }
    .top-strip__crumbs { display: none; }

    /* FV: 縦積み + 中央寄せ */
    .fv {
      height: auto !important;
      max-height: none !important;
      min-height: 0 !important;
      padding: 32px 16px 40px;
    }
    .fv__product {
      position: relative !important;
      width: 100% !important;
      height: auto !important;
      margin-bottom: 24px;
      order: 1;
    }
    .fv__product::after { display: none !important; }
    .fv__product { overflow: hidden !important; }
    .fv__visual {
      width: 170% !important;
      max-width: none !important;
      height: auto !important;
      object-fit: contain !important;
      object-position: center !important;
      margin-left: -35% !important;
      margin-top: 12% !important;
    }
    .fv__inner {
      position: static !important;
      transform: none !important;
      width: 100% !important;
      max-width: 100% !important;
      margin: 0 !important;
      padding: 0 !important;
      order: 2;
      text-align: center !important;
      align-items: center !important;
    }
    .fv__eyebrow {
      display: inline-block;
      margin-bottom: 14px !important;
      padding: 6px 18px !important;
      font-size: 17px !important;
    }
    .fv__title { font-size: 36px !important; text-align: center; margin-bottom: 24px !important; }
    .fv__lead { font-size: 17px; text-align: center; }
    /* 3つの箇条書きは項目内テキスト左寄せ + ブロック全体は中央配置 */
    .fv__pillars {
      align-self: center !important;
      align-items: flex-start !important;
      text-align: left !important;
      margin: 0 auto 28px !important;
      padding: 0 !important;
      width: fit-content !important;
      max-width: 90%;
    }
    .fv__pillars li { font-size: 17px; text-align: left !important; }
    /* FV お知らせ: バッジを上、テキストを下に縦積み */
    .fv__news {
      max-width: 100%;
      padding: 14px 16px;
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      gap: 8px;
    }
    .fv__news-badge { display: inline-block; margin-right: 0; }
    .fv__news-text { font-size: 17px; }
    .fv__news-body { font-size: 17px; text-align: center; }
    /* CTAボタンを横並び固定 */
    .fv__cta-group {
      flex-direction: row !important;
      flex-wrap: nowrap !important;
      gap: 10px !important;
      justify-content: center;
      width: 100%;
    }
    .fv__cta {
      padding: 10px 14px 10px 20px !important;
      font-size: 17px !important;
      gap: 8px !important;
    }
    .fv__cta-arrow {
      width: 24px !important;
      height: 24px !important;
      font-size: 17px !important;
    }
    .fv__sub-cta { display: block; text-align: center; }

    /* LOGOS MARQUEE: スマホでは2行スクロール構成 */
    .logos-marquee { padding: 16px 0; overflow: hidden; }
    .logos-marquee__label { font-size: 17px; margin-bottom: 12px; }
    /* グリッドで 2 行展開：奇数番目は1行目、偶数番目は2行目に */
    .logos-marquee__track {
      display: grid !important;
      grid-template-rows: 1fr 1fr !important;
      grid-auto-flow: column !important;
      grid-auto-columns: max-content !important;
      gap: 14px 24px !important;
      animation-duration: 38s !important;
    }
    .logos-marquee__item { height: 38px; }
    .logos-marquee::before, .logos-marquee::after { width: 28px; }

    /* WORRY: 縦並び・カードを1列に */
    .worry { padding: 60px 16px; }
    /* スマホでは点線コネクター SVGを非表示（中央写真を囲まないため不要） */
    .worry__connectors { display: none !important; }
    .worry__title { font-size: 26px; margin-bottom: 32px; }
    .worry__title em { font-size: 1.2em; }
    /* モバイルでは「ありませんか？」を改行 */
    .worry__title-tail { display: block; margin-left: 0; }
    .worry__layout {
      display: flex !important;
      flex-direction: column !important;
      gap: 12px !important;
      grid-template-columns: 1fr !important;
      max-width: 100% !important;
    }
    .worry-card,
    .worry-card--tl, .worry-card--bl,
    .worry-card--tr, .worry-card--br, .worry-card--bc {
      grid-column: auto !important;
      grid-row: auto !important;
      max-width: 100% !important;
      width: 100% !important;
      box-sizing: border-box !important;
      justify-self: stretch !important;
      padding: 14px 14px !important;
      margin: 0 auto !important;
      font-size: 13.5px;
      min-height: 90px !important;
      height: 90px !important;
      gap: 12px !important;
    }
    /* モバイルでは吹き出しテイルを非表示 */
    .worry-card::after { display: none !important; }
    /* アイコンを縮めてテキスト領域を確保 */
    .worry-card .worry-card__icon {
      width: 56px !important;
      height: 56px !important;
    }
    /* 日本語の途中折り返しを防止（word-break: keep-all） */
    .worry-card p {
      word-break: keep-all !important;
      overflow-wrap: break-word !important;
      line-break: strict !important;
      line-height: 1.6 !important;
    }
    .worry-card strong {
      font-size: 1em !important;
    }
    .worry__photo {
      grid-column: auto !important;
      grid-row: auto !important;
      width: 200px !important;
      height: 200px !important;
      margin: 16px auto !important;
      order: -1;
    }
    .worry__callout {
      margin-top: 32px;
      padding: 22px 18px;
      font-size: 18px;
      line-height: 1.6;
    }
    .worry__callout strong { font-size: 1em; }

    /* WORRY__LAW: 5カードを縦並び */
    .worry__law { margin-top: 28px; padding: 24px 0 0 !important; }
    .worry__law-head { margin-bottom: 28px !important; padding: 0 !important; }
    .law__grid { max-width: 100% !important; gap: 16px !important; }
    .law__card { width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; }
    /* テキストの開始位置を統一・途中折り返しを防止 */
    .law__card-body {
      padding: 14px 18px 18px !important;
      box-sizing: border-box !important;
    }
    .law__card-desc {
      text-align: center !important;
      text-indent: 0 !important;
      word-break: keep-all !important;
      overflow-wrap: break-word !important;
      line-break: strict !important;
      font-size: 17px !important;
      line-height: 1.75 !important;
    }
    /* モバイル: 全ての strong に黄色マーカー (太字部分は全て強調) */
    .law__card-desc strong {
      word-break: keep-all !important;
      background: linear-gradient(transparent 62%, #ffd54f 62%, #ffd54f 92%, transparent 92%) !important;
      padding: 0 !important;
    }
    .worry__law-title {
      font-size: 20px !important;
      padding: 18px 16px !important;
      max-width: 100% !important;
      width: 100% !important;
      margin: 0 auto 18px !important;
      line-height: 1.5 !important;
      letter-spacing: 0 !important;
      box-sizing: border-box !important;
    }
    .worry__law-title em {
      text-decoration-thickness: 3px !important;
      text-underline-offset: 4px !important;
    }
    .worry__law-sub { font-size: 16px; padding: 0 4px; line-height: 1.8; }
    .worry__law-sub strong { font-size: 16px !important; }
    .law__bubble-outer { transform: scale(0.52); transform-origin: center top; margin-bottom: -326px; }

    /* PILLARS: 横並びを縦並びに */
    .pillars { padding: 60px 16px; }
    .pillars__title { font-size: 26px; }
    .pillar-row { gap: 12px; padding: 16px 0; }
    .pillar-row__num { font-size: 28px; min-width: 40px; }
    .pillar-row__body h3 {
      font-size: 17px;
      word-break: keep-all !important;
      overflow-wrap: anywhere !important;
      line-break: strict !important;
    }
    .pillar-row__body p {
      font-size: 17px;
      word-break: keep-all !important;
      overflow-wrap: anywhere !important;
      line-break: strict !important;
      line-height: 1.75 !important;
    }
    .pillar-row__body p strong {
      word-break: normal !important;
      display: inline;
      white-space: normal !important;       /* nowrap → normal: 長い強調文（例:日報管理…チェック）を折り返し可能に */
      overflow-wrap: anywhere !important;
      max-width: 100% !important;
    }
    /* pillars__inner の左右パディングをスマホで0に */
    .pillars__inner { padding: 0 16px !important; }

    /* EV1 / EV2 / EV3: 縦積み + 中央寄せ */
    .ev1__inner, .ev2__inner, .ev3__inner {
      grid-template-columns: minmax(0, 1fr) !important;  /* 1fr→minmax(0,1fr): 子のmin-contentで列が膨らむのを防ぎ、はみ出し解消 */
      gap: 28px !important;
      padding: 0 16px !important;
      text-align: center !important;
    }
    /* 子要素の明示的 grid-column を解除して 1 列縦積みに */
    .ev1__text, .ev1__photo,
    .ev2__text, .ev2__photo,
    .ev3__text, .ev3__photo {
      grid-column: 1 / -1 !important;
      min-width: 0 !important;
    }
    /* グリッド子要素が幅を超えないよう統一 */
    .ev1__title, .ev1__body, .ev1__cti-note, .ev1__compare {
      min-width: 0 !important;
      max-width: 100% !important;
      box-sizing: border-box !important;
    }
    .ev1, .ev2, .ev3 {
      padding: 60px 0 !important;
      clip-path: none !important;
      margin-top: 0 !important;
    }
    .ev1__title, .ev2__title, .ev3__title {
      font-size: 24px !important;
      text-align: center !important;
    }
    /* ev2 タイトルは「だれが、どこまで、進めているか。」を1行に収めるためサイズ調整 */
    .ev2__title {
      font-size: 20px !important;
      word-break: keep-all !important;
      line-break: strict !important;
      letter-spacing: -0.01em !important;
    }
    .ev2__text { text-align: center !important; }
    .ev-eyebrow, .ev1__title, .ev2__title, .ev3__title,
    .ev__body, .ev1__cti-note { text-align: center !important; }
    .ev__body, .ev1__cti-note { font-size: 17px !important; }
    .ev1__photo { min-height: 0; text-align: left; padding: 0; }
    /* EV1/EV2/EV3 中央上アイブロウのスマホ調整 */
    .ev__head { margin: 0 16px 28px; }
    .ev1__eyebrow,
    .ev-eyebrow { font-size: 18px !important; padding: 0 0 3px 0 !important; border-bottom-width: 2px !important; }
    .ev-eyebrow__num { margin-right: 6px !important; }
    /* EV3 チェックカードのモバイル対応 */
    .ev3__inner { grid-template-columns: 1fr !important; gap: 32px !important; }
    .ev3__cell { grid-template-columns: 1fr !important; }
    /* スマホ版は従来通り cover（クロップ）で見栄え優先 */
    .ev3__cell-img { min-height: 180px; background-size: cover !important; background-position: center !important; }
    .ev3__cell-img--nippou { background-position: left center !important; }
    .ev3__cell-img--ishi { background-position: left center !important; }
    .ev3__cell-img--kourei { background-position: right center !important; }
    .ev3__cell-body { text-align: center !important; padding: 14px 20px 16px !important; }
    .ev3__cell h4 { margin-bottom: 10px !important; padding-bottom: 4px !important; }
    .ev3__cell p { line-height: 1.55 !important; margin: 0 !important; }
    .ev3__cell h4 { font-size: 18px; padding-right: 0 !important; text-align: center !important; }
    .ev3__cell h4 small { text-align: center !important; }
    .ev3__cell p { text-align: center !important; }
    .ev3__cell-icon { display: none !important; }
    .ev3__callout { font-size: 17px !important; }
    .ev1__title { font-size: 24px !important; text-align: center !important; }
    .ev1__title-line { margin: 0 auto 18px; }
    .ev1__body { text-align: center !important; font-size: 17px; }
    .ev1__cti-note {
      text-align: left !important;
      padding: 16px 16px 16px 48px !important;
      position: relative;
      /* 親の水色背景からはみ出さないように box-sizing と幅・余白を厳密に制御 */
      box-sizing: border-box !important;
      width: auto !important;
      max-width: 100% !important;
      margin: 0 12px !important;
      overflow-wrap: break-word !important;
      word-break: keep-all !important;
    }
    .ev1__cti-note::before {
      top: 14px !important;
      left: 12px !important;
      transform: none !important;
      width: 24px !important;
      height: 24px !important;
      font-size: 17px !important;
    }
    /* strong が改行できず横はみ出しを起こすのを防止 */
    .ev1__cti-note strong {
      display: inline;
      white-space: normal !important;
      overflow-wrap: anywhere;
    }
    .ev1__compare {
      grid-template-columns: 1fr !important;
      gap: 10px !important;
    }
    /* ヘッダーラベル（導入前/導入後）は各カードに BEFORE/AFTER ラベルがあるため非表示 */
    .ba-head__before { display: none !important; }
    .ba-head__after { display: none !important; }
    .ba-head__spacer { display: none !important; }
    /* before/after カードと矢印を縦並び */
    /* BEFORE/AFTER ペアを 1 つの枠で囲む構造 */
    .ev1__compare {
      gap: 0 !important;
    }
    .ba-before, .ba-after {
      padding: 16px 16px !important;
      min-height: 0 !important;
      border-radius: 0 !important;
      border: 2px solid var(--c-accent) !important;
      box-shadow: none !important;
      /* バッジを上段・アイコンを左下・テキストを右下に配置（テキスト幅を確保） */
      display: grid !important;
      grid-template-columns: auto minmax(0, 1fr) !important;
      grid-template-areas: "badge badge" "icon text" !important;
      align-items: center !important;
      gap: 4px 12px !important;
    }
    .ba-before::before, .ba-after::before { grid-area: badge !important; justify-self: start !important; }
    .ba-icon { grid-area: icon !important; }
    .ba-text { grid-area: text !important; text-align: left !important; min-width: 0 !important; }
    /* BEFORE: ペアの「上半分」として border-bottom 無し */
    .ba-before {
      background: #f0f6ff !important;
      border-bottom: 0 !important;
      margin: 0 !important;
    }
    /* AFTER: ペアの「下半分」として border-top 無し + ペア間に余白 */
    .ba-after {
      background: #fff !important;
      border-top: 0 !important;
      margin: 0 0 28px 0 !important;
      padding-bottom: 18px !important;
    }
    .ev1__compare > .ba-after:last-of-type {
      margin-bottom: 0 !important;
    }
    /* 矢印エリア — グレー(BEFORE) と 白(AFTER) の境界線上に円アイコンを配置 */
    .ba-arrow {
      height: 0 !important;
      min-height: 0 !important;
      padding: 0 !important;
      margin: 0 !important;
      border: none !important;
      background: transparent !important;
      transform: none !important;
      position: relative !important;
      display: block !important;
      overflow: visible !important;
      z-index: 5 !important;
    }
    /* BEFORE/AFTER のラベルバッジ強化 */
    .ba-before::before, .ba-after::before {
      display: inline-block !important;
      padding: 4px 14px !important;
      font-size: 17px !important;
      font-weight: 900 !important;
      letter-spacing: 0.18em !important;
      margin-bottom: 12px !important;
      position: static !important;
      top: auto !important;
      left: auto !important;
    }
    .ba-before::before {
      content: 'BEFORE' !important;
      background: #94a8c2 !important;
      color: #fff !important;
    }
    .ba-after::before {
      content: 'AFTER' !important;
      background: var(--c-accent) !important;
      color: #fff !important;
    }
    /* シェブロン矢印 — BEFORE/AFTER 境界線上に重ねて表示（背景なし） */
    .ba-arrow span {
      position: absolute !important;
      top: 0 !important;
      left: 50% !important;
      transform: translate(-50%, -50%) !important;
      width: 38px !important;
      height: 38px !important;
      border-radius: 0 !important;
      background: transparent !important;
      color: var(--c-accent) !important;
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      font-size: 0 !important;
      line-height: 1 !important;
      box-shadow: none !important;
    }
    .ba-arrow span::before {
      content: "" !important;
      display: block !important;
      width: 14px !important;
      height: 14px !important;
      border-right: 3px solid var(--c-accent) !important;
      border-bottom: 3px solid var(--c-accent) !important;
      transform: translateY(-3px) rotate(45deg) !important;
    }
    .ba-icon { width: 48px !important; height: 48px !important; }
    .ba-text { font-size: 17px !important; }
    /* EV2 リストは左寄せに統一（中央寄せだとバラついて見える）*/
    .ev2__points {
      max-width: 360px;
      margin: 0 auto;
      text-align: left;
      padding-left: 0;
    }
    .ev2__points li {
      text-align: left;
      padding-left: 0 !important;
      text-indent: 0 !important;
      display: flex !important;
      align-items: baseline;
      gap: 8px;
    }
    .ev2__points li::before {
      flex-shrink: 0;
      display: inline-block;
      width: auto;
      margin: 0 !important;
      line-height: 1;
    }
    /* Before/After を縦積みに（カード幅を確保 / ペア区切り強化） */
    .ev1__compare { max-width: 360px; margin: 0 auto; }
    .ba-head { display: none !important; }
    .ba-row {
      grid-template-columns: 1fr !important;
      gap: 6px !important;
      margin-bottom: 40px !important;
      padding-bottom: 32px !important;
      border-bottom: 1px dashed #c5d3e3;
      font-size: 17px;
      text-align: left;
    }
    .ba-row:last-child {
      margin-bottom: 0 !important;
      padding-bottom: 0 !important;
      border-bottom: none;
    }
    .ba-before, .ba-after {
      padding: 16px 18px !important;
      font-size: 17px !important;
      line-height: 1.6 !important;
      text-align: left;
      position: relative;
      padding-top: 28px !important;
    }
    .ba-before::before, .ba-after::before {
      position: absolute;
      top: 8px; left: 12px;
      font-size: 12px;
      font-weight: 900;
      letter-spacing: 0.1em;
    }
    .ba-before::before { content: 'BEFORE'; color: #94a8c2; }
    .ba-after::before { content: 'AFTER'; color: #ffd54f; }
    .ba-arrow {
      transform: none !important;
      font-size: 0 !important;
      padding: 0 !important;
      height: 0 !important;
      min-height: 0 !important;
      align-self: stretch !important;
    }

    /* CTI HERO（新2カラム構成のモバイル最適化） */
    .cti-hero { padding: 48px 16px 56px !important; }
    .cti-hero__inner {
      grid-template-columns: 1fr !important;
      gap: 24px !important;
      padding: 0 !important;
    }
    .cti-hero__text {
      grid-column: 1 !important;
      text-align: center !important;
      align-items: center !important;
      display: flex !important;
      flex-direction: column !important;
    }
    .cti-hero__photo {
      grid-column: 1 !important;
      aspect-ratio: 16 / 10;
    }
    .cti-hero__title {
      font-size: 26px !important;
      line-height: 1.45 !important;
      color: var(--c-navy-deep) !important;
      text-shadow: none !important;
      text-align: center !important;
    }
    .cti-hero__title em { color: var(--c-accent) !important; }
    .cti-hero__sub {
      font-size: 17px;
      color: #3a4e6a !important;
      text-shadow: none !important;
      text-align: center !important;
    }
    .cti-hero__eyebrow {
      font-size: 18px !important;
      color: var(--c-accent) !important;
      text-align: center !important;
      align-self: center !important;
    }

    /* CTI EFFECTS: スマホ縦積み */
    .cti-effects { padding: 60px 16px 0 !important; }
    .cti-effects__inner { padding: 0 !important; }
    .cti-effects__hero {
      grid-template-columns: 1fr !important;
      gap: 32px !important;
      margin-bottom: 48px !important;
    }
    .cti-effects__hero-title { font-size: 28px !important; text-align: center; }
    .cti-effects__hero-line { margin-left: auto; margin-right: auto; }
    .cti-effects__hero-body {
      font-size: 17px;
      text-align: center;
      word-break: normal !important;
      overflow-wrap: break-word !important;
      line-break: strict !important;
    }
    .cti-effects__hero-body strong {
      font-size: 1em !important;
      word-break: normal !important;
    }
    .cti-effects__hero-badge {
      padding: 12px 14px !important;
      gap: 12px !important;
      box-sizing: border-box !important;
    }
    .cti-badge__icon {
      width: 38px !important;
      height: 30px !important;
      flex-shrink: 0 !important;
    }
    .cti-effects__hero-badge span {
      font-size: 17px !important;
      word-break: keep-all !important;
      overflow-wrap: break-word !important;
      line-break: strict !important;
    }
    .cti-effects__hero-photo { aspect-ratio: 16/10; }
    .cti-effects__hero-badge {
      min-width: 150px;
      bottom: 14px; right: 14px;
      padding: 14px 16px 16px;
    }
    .cti-effects__hero-badge span { font-size: 17px; }
    .cti-effects__divider { margin-bottom: 28px; }
    .cti-effects__divider span { font-size: 17px; }
    /* 5カードを縦積み・矢印は下向きに */
    .cef-grid {
      grid-template-columns: 1fr !important;
      gap: 12px !important;
      margin-bottom: 40px !important;
    }
    .cef-arrow { transform: rotate(90deg) !important; padding: 4px 0; }
    .cef-arrow.is-visible { transform: rotate(90deg) !important; }
    /* スマホでは cti-effects カードをコンパクトに */
    .cef-grid {
      border-width: 1px !important;
      padding: 14px 10px !important;
    }
    .cef-card {
      padding: 14px 12px 14px !important;
      box-shadow: 0 3px 10px rgba(11,36,68,0.06) !important;
    }
    .cef-num {
      top: 8px !important;
      left: 8px !important;
      width: 24px !important;
      height: 24px !important;
      font-size: 12px !important;
    }
    .cef-icon {
      width: 72px !important;
      height: 72px !important;
      margin-top: 4px !important;
      margin-bottom: 8px !important;
    }
    .cef-card h4 {
      font-size: 18px !important;
      min-height: 0 !important;
      margin-bottom: 10px !important;
      text-decoration-thickness: 2px !important;
      text-underline-offset: 4px !important;
    }
    .cef-card p { font-size: 15px !important; line-height: 1.7 !important; }
    .cef-arrow { font-size: 17px !important; padding: 2px 0 !important; }
    .cef-banner {
      padding: 14px 16px !important;
      max-width: 100% !important;
      flex-direction: column;
      align-items: center;
      text-align: center;
      margin-bottom: 40px !important;
    }
    .cef-banner__text { font-size: 17px; }

    /* CTI FEAT: 縦積み（画像→テキストの順で統一） */
    .cti-feat { padding: 60px 12px; }
    .cti-feat__inner { padding: 0 !important; max-width: 100% !important; }
    .cti-feat__title { font-size: 24px; }
    /* 各機能ペアを「カード」としてまとめて視覚的グループ化 */
    .cti-row-list { gap: 24px !important; }
    /* スマホでは縦積みになるため、PC専用のジグザグ視線誘導アローは非表示 */
    .cti-flow-arrow { display: none !important; }
    .cti-row,
    .cti-row--reverse {
      display: flex !important;
      flex-direction: column !important;
      grid-template-columns: 1fr !important;
      gap: 14px !important;
      padding: 0 !important;
      background: #fff !important;
      border: 1px solid #c5d3e3 !important;
      box-shadow: 0 4px 18px rgba(11, 36, 68, 0.06) !important;
      box-sizing: border-box !important;
      overflow: hidden !important;
      width: 100% !important;
      max-width: 100% !important;
    }
    /* どのrowでも画像が上に */
    .cti-row .cti-row__img,
    .cti-row--reverse .cti-row__img {
      order: 0 !important;
      width: 100% !important;
      max-width: 100% !important;
      margin: 0 !important;
      box-sizing: border-box !important;
      border-radius: 0 !important;
      box-shadow: none !important;
      overflow: hidden !important;
    }
    .cti-row .cti-row__img img,
    .cti-row--reverse .cti-row__img img {
      width: 100% !important;
      height: auto !important;
      display: block !important;
      max-width: 100% !important;
    }
    .cti-row .cti-row__body,
    .cti-row--reverse .cti-row__body {
      order: 1 !important;
      padding: 0 16px 18px !important;
      box-sizing: border-box !important;
      width: 100% !important;
      min-width: 0 !important;
      max-width: 100% !important;
      text-align: center !important;
    }
    .cti-row__title,
    .cti-row__title--underline { text-align: center !important; }
    .cti-row__text { text-align: center !important; }
    .cti-row__badge { display: inline-block; }
    .cti-row__title { font-size: 18px; word-break: keep-all; line-break: strict; overflow-wrap: break-word; }
    .cti-row__text { font-size: 17px; word-break: keep-all; line-break: strict; overflow-wrap: break-word; }
    .cti-row__text strong { word-break: keep-all; line-break: strict; overflow-wrap: break-word; }
    .cti-row__title--underline { word-break: keep-all !important; line-break: strict !important; overflow-wrap: break-word !important; max-width: 100%; }

    /* SOLVE-ALL: スマホでは「お悩み → 解決策」を視覚的に分離 */
    .solve-all { padding: 60px 16px; }
    .solve-all__inner {
      padding: 0 !important;
      max-width: 100% !important;
      width: 100% !important;
      box-sizing: border-box !important;
    }
    .solve-all__list {
      padding: 0 !important;
      margin: 0 !important;
      width: 100% !important;
      box-sizing: border-box !important;
    }
    .solve-all__title { font-size: 22px !important; padding: 24px 20px !important; }
    .solve-all__sub { font-size: 17px; }
    .solve-all__item {
      display: grid !important;
      grid-template-columns: 28px minmax(0, 1fr) !important;
      grid-template-rows: auto auto !important;
      grid-template-areas:
        "check  worry"
        "sol    solution" !important;
      gap: 14px 10px !important;
      padding: 16px 14px !important;
      background: #fff;
      border: 1px solid var(--c-line);
      border-radius: 8px;
      align-items: start;
      width: 100% !important;
      box-sizing: border-box !important;
      min-width: 0 !important;
      max-width: 100% !important;
    }
    .solve-all__worry,
    .solve-all__solution {
      min-width: 0 !important;
      overflow-wrap: break-word !important;
      word-break: normal !important;
      line-break: strict !important;
      font-size: 17px !important;
      line-height: 1.6 !important;
    }
    .solve-all__check {
      grid-area: check !important;
      align-self: center !important;
      width: 28px !important;
      height: 28px !important;
      border-width: 2px !important;
      justify-self: start !important;
      margin-top: 0 !important;
    }
    .solve-all__worry {
      grid-area: worry !important;
      align-self: center !important;
      font-size: 17px;
      color: #3a4e6a;
      font-weight: 500;
      line-height: 1.55;
    }
    .solve-all__arrow { display: none !important; }
    .solve-all__sol-badge {
      grid-area: sol !important;
      align-self: center !important;
      width: 28px !important;
      height: 28px !important;
      border-width: 2px !important;
      justify-self: start !important;
    }
    .solve-all__sol-badge::before {
      width: 14px !important;
      height: 7px !important;
      border-left-width: 3px !important;
      border-bottom-width: 3px !important;
    }
    .solve-all__solution {
      grid-area: solution !important;
      align-self: center !important;
      padding: 12px 14px;
      background: #f0f6ff;
      border-left: 4px solid var(--c-accent);
      border-radius: 0 4px 4px 0;
      font-size: 17px;
      font-weight: 700;
      color: var(--c-navy-deep);
      line-height: 1.6;
    }
    .solve-all__solution strong {
      color: var(--c-accent);
      font-weight: 900;
      font-size: 1.15em;
      text-decoration: none !important;
    }
    /* モバイル: 黄色下線は最後の strong (=2行目相当) のみ */
    .solve-all__solution strong:last-of-type {
      text-decoration: underline !important;
      text-decoration-color: #ffd54f !important;
      text-decoration-thickness: 1.5px !important;
      text-underline-offset: 2px !important;
      text-decoration-skip-ink: none !important;
    }

    /* VIDEOS */
    .videos { padding: 60px 0; }
    .videos__inner { padding: 0 16px !important; }
    .videos__head { flex-direction: column; align-items: center !important; gap: 12px !important; text-align: center; }
    .videos__title { font-size: 24px; }
    .videos__grid { grid-template-columns: minmax(0, 1fr) !important; gap: 20px; }
    .videos__count {
      font-size: 17px;
      border-left: none !important;
      padding-left: 0 !important;
      text-align: center;
    }
    /* "3本" の display: block を無効化してインライン表示に */
    .videos__count strong {
      display: inline !important;
      font-size: 1.4em;
      margin-right: 4px;
      color: var(--c-accent);
    }
    .video-thumb { width: 100%; box-sizing: border-box; }
    .video-thumb__img { height: 200px; }

    /* YT BAND */
    .yt-band { padding: 0; }
    .yt-band__title { font-size: 20px; }
    .yt-band__inner {
      grid-template-columns: minmax(0, 1fr) !important;  /* 1fr→minmax(0,1fr): 子のmin-contentで列が膨らみボタンがはみ出すのを防止 */
      padding: 40px 16px !important;
      gap: 20px !important;
      text-align: center;
      justify-items: center !important;
    }
    .yt-band__title, .yt-band__sub, .yt-band__btn { min-width: 0 !important; max-width: 100% !important; }
    .yt-band__sub { font-size: 15px !important; line-height: 1.8 !important; word-break: normal !important; line-break: strict !important; overflow-wrap: anywhere !important; }
    .yt-band__sub small { font-size: 15px !important; word-break: normal !important; line-break: strict !important; overflow-wrap: anywhere !important; display: inline-block; }
    .yt-band__btn {
      width: 100%; max-width: 100%; box-sizing: border-box;
      padding: 14px 16px !important;
      font-size: 17px !important;
      white-space: normal !important;
      text-align: center;
    }

    /* MIGRATION */
    .migration { padding: 56px 16px; }
    .migration__head { margin: 0 auto 24px !important; }
    .mig__head-title { padding: 10px 28px !important; font-size: 17px !important; }
    .migration__title { font-size: 24px; text-align: center !important; }
    .migration__inner { grid-template-columns: 1fr !important; gap: 24px !important; text-align: center !important; }
    /* 既存VOSユーザーバナーを中央配置 */
    .migration__banner {
      flex-direction: column;
      align-items: center !important;
      gap: 10px;
      padding: 16px 18px;
      text-align: center !important;
      border-left: none !important;
      border-top: 4px solid var(--c-accent) !important;
    }
    .migration__banner strong {
      align-self: center !important;
    }
    /* 01/02/03 行を縦積み・中央配置に */
    .migration__rows li {
      grid-template-columns: 1fr !important;
      justify-items: center !important;
      gap: 4px !important;
      text-align: center !important;
      padding: 18px 0 !important;
    }
    .migration__rows .num { font-size: 28px !important; }
    .migration__rows h4 { text-align: center !important; }
    .migration__rows p { text-align: center !important; }
    .migration__list { padding-left: 0; }
    .migration__list li { font-size: 17px; }

    /* FLOW: コンパクト化 */
    .flow { padding: 48px 16px; }
    .flow__title { font-size: 24px; }
    .flow__head { margin: 0 auto 24px !important; }
    .flow__steps {
      grid-template-columns: 1fr !important;
      display: flex !important;
      flex-direction: column !important;
      border: none !important;
      background: transparent !important;
      gap: 10px !important;
    }
    .flow__step {
      width: 100% !important;
      max-width: 100% !important;
      border: 1px solid var(--c-line) !important;
      background: #fff !important;
      padding: 12px 16px !important;
      text-align: left;
      display: grid !important;
      grid-template-columns: 56px minmax(0, 1fr) !important;  /* 1fr→minmax(0,1fr): テキストを折り返し可能に（はみ出し防止） */
      gap: 4px 14px !important;
      align-items: center !important;
      box-sizing: border-box !important;
    }
    .flow__step:last-child { border-bottom: 1px solid var(--c-line) !important; }
    .flow__step::after { display: none !important; }
    .flow__step-num {
      grid-row: 1 / span 3 !important;
      grid-column: 1 !important;
      align-self: center !important;
      margin-bottom: 0 !important;
      font-size: 9px !important;
      letter-spacing: 0.18em !important;
      text-align: center;
    }
    .flow__step-num em {
      font-size: 22px !important;
      margin-top: 2px !important;
      display: block !important;
    }
    .flow__step h4 {
      grid-column: 2 !important;
      grid-row: 1 !important;
      font-size: 17px !important;
      margin: 0 !important;
      line-height: 1.4 !important;
      min-width: 0 !important;
      overflow-wrap: anywhere !important;
    }
    .flow__step-desc, .flow__step p {
      grid-column: 2 !important;
      grid-row: 2 !important;
      font-size: 17px !important;
      margin: 0 !important;
      line-height: 1.55 !important;
      min-width: 0 !important;
      overflow-wrap: anywhere !important;
      word-break: normal !important;
    }

    /* FAQ */
    .faq-sec { padding: 60px 0; }
    .faq-sec__inner { display: block !important; padding: 0 16px !important; max-width: 100% !important; }
    .faq-sec__inner > div { width: 100%; max-width: 480px; margin: 0 auto; }
    .faq-sec__title { font-size: 24px; text-align: center !important; }
    .faq-sec__photo { display: none; }
    /* グリッド再設計：Q列を狭め、テキスト列を最大化 (minmax(0,1fr) で収縮可) */
    .faq-sec summary {
      grid-template-columns: 22px minmax(0, 1fr) 22px !important;
      gap: 8px !important;
      padding: 14px 12px !important;
      font-size: 13.5px !important;
      word-break: keep-all !important;
      overflow-wrap: break-word !important;
      line-break: strict !important;
    }
    .faq-sec summary::before {
      font-size: 17px !important;
    }
    .faq-sec summary::after {
      font-size: 18px !important;
    }
    .faq-sec .a {
      grid-template-columns: 22px minmax(0, 1fr) 22px !important;
      gap: 8px !important;
      padding: 6px 12px 18px !important;
      font-size: 17px !important;
      word-break: keep-all !important;
      overflow-wrap: break-word !important;
      line-break: strict !important;
    }
    .faq-sec .a::before {
      font-size: 17px !important;
    }

    /* SEMINAR */
    .seminar { padding: 60px 10px; }
    .seminar__title { font-size: 24px; text-align: center !important; word-break: keep-all !important; overflow-wrap: break-word !important; line-break: strict !important; }
    .seminar__inner { grid-template-columns: minmax(0, 1fr) !important; gap: 24px !important; padding: 0 6px !important; }
    .seminar__sub { font-size: 17px; text-align: center !important; word-break: keep-all !important; overflow-wrap: break-word !important; line-break: strict !important; }
    .seminar__panel { padding: 16px 8px !important; align-items: center !important; text-align: center !important; }
    /* CTA パネルのモバイル文章折り返し制御 */
    .seminar__cta-panel { padding: 22px 12px 24px !important; }
    .seminar__cta-title { font-size: 17px !important; word-break: keep-all !important; line-break: strict !important; overflow-wrap: break-word !important; }
    .seminar__cta-title em { word-break: keep-all !important; line-break: strict !important; overflow-wrap: break-word !important; display: inline; font-size: 0.9em; }
    .seminar__cta-lead { font-size: 17px !important; padding: 10px 14px !important; word-break: keep-all !important; line-break: strict !important; text-align: left !important; }
    .seminar__cta-intro { font-size: 17px !important; line-height: 1.7 !important; margin-bottom: 14px !important; word-break: keep-all !important; line-break: strict !important; text-align: center !important; }
    .seminar__cta-list { padding: 14px 14px 4px !important; font-size: 13.5px !important; line-height: 1.7 !important; text-align: left !important; max-width: 280px; margin: 0 auto 22px !important; }
    .seminar__cta-list li { word-break: keep-all !important; line-break: strict !important; overflow-wrap: break-word !important; padding-left: 14px !important; text-align: left !important; }
    .seminar__cta-btn { font-size: 15px !important; padding: 14px 8px !important; word-break: keep-all !important; line-break: strict !important; line-height: 1.4 !important; }
    .seminar__btn { word-break: normal !important; align-self: center !important; }
    .seminar__btn {
      font-size: 17px;
      padding: 14px 22px;
      display: inline-flex;
      flex-direction: column;
      align-items: center;
      gap: 4px;
      line-height: 1.5;
    }
    .seminar__btn-text {
      display: block;
      white-space: nowrap;
    }
    .seminar__btn-arrow {
      display: block;
      font-size: 17px;
      font-weight: 900;
      line-height: 1;
    }
    .seminar__photo { display: none; }

    /* FINAL CTA */
    .final { padding: 0; overflow: hidden !important; }
    .final__inner {
      grid-template-columns: 1fr !important;
      gap: 32px !important;
      padding: 32px 8px 56px !important;
      max-width: 100vw !important;
      box-sizing: border-box !important;
      overflow: hidden !important;
    }
    .final__head { padding: 40px 16px 0 !important; }
    /* 「お問い合わせフォーム」が折り返されないようにモバイルでサイズダウン */
    .final__head-title { font-size: 26px !important; letter-spacing: 0 !important; word-break: keep-all !important; line-break: strict !important; }
    .final__title {
      font-size: 22px !important;
      overflow-wrap: anywhere !important;
      word-break: keep-all !important;
      line-break: strict !important;
    }
    .final__sub {
      font-size: 17px;
      overflow-wrap: anywhere !important;
      word-break: keep-all !important;
      line-break: strict !important;
    }
    .final__btns { flex-direction: column; gap: 10px; align-items: stretch; width: 100% !important; box-sizing: border-box !important; max-width: 100% !important; }
    .final__btn { width: 100%; justify-content: center; box-sizing: border-box !important; padding: 14px 18px 14px 22px !important; position: relative; max-width: 100% !important; min-width: 0 !important; }
    .final__btn > span:first-child { text-align: center; }
    .final__btn .final__btn-arrow { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); }
    .final__col-left, .final__btns { word-break: keep-all !important; line-break: strict !important; overflow-wrap: anywhere !important; }
    .final__btn-primary, .final__btn-outline { width: 100%; text-align: center; }
    .final__tel { font-size: 26px !important; letter-spacing: 0.02em !important; overflow-wrap: anywhere !important; }
    .final__hours { font-size: 11.5px !important; line-height: 1.7 !important; overflow-wrap: anywhere !important; word-break: keep-all !important; }
    .final__contact { box-sizing: border-box !important; max-width: 100% !important; overflow: hidden !important; }
    .final__col-left {
      padding: 24px 16px !important;
      box-sizing: border-box !important;
      max-width: 100% !important;
      width: 100% !important;
      margin: 0 auto !important;
      overflow: hidden !important;
    }
    .final__form { padding: 24px 18px !important; }

    /* FOOTER */
    .site-footer__main {
      grid-template-columns: 1fr !important;
      gap: 24px !important;
    }
    /* フッター下部リンクを縦並びに */
    .site-footer__bottom {
      flex-direction: column !important;
      align-items: flex-start !important;
      gap: 16px !important;
      font-size: 13px !important;
    }
    .site-footer__bottom p {
      font-size: 13px !important;
      line-height: 1.7 !important;
      overflow-wrap: anywhere !important;
      word-break: normal !important;
      max-width: 100% !important;
    }
    .site-footer__bottom ul {
      flex-direction: column !important;
      gap: 10px !important;
      width: 100% !important;
    }
    .site-footer__bottom ul li {
      width: 100% !important;
    }
    .site-footer__bottom ul a {
      display: block !important;
      padding: 4px 0 !important;
    }
  }

  /* ============== スマホ追加最適化（新規セクション対応） ============== */
  @media (max-width: 720px) {
    /* 日本語の語の途中折り返しを全体で防止 */
    .worry-card p,
    .solve-all__title--v3,
    .solve-all__worry,
    .solve-all__solution,
    .law__card-desc,
    .worry__law-title,
    .worry__law-sub,
    .worry__summary-axis,
    .worry__summary-desc,
    .cti-transition__main,
    .cti-transition__lead,
    .cti-transition__sub,
    .cti-hero__title,
    .cti-hero__sub,
    .migration__title,
    .migration__rows p,
    .flow__step h4,
    .flow__step-desc,
    .ev1__title,
    .ev2__title,
    .ev3__title,
    .ev1__body,
    .ev1__cti-note,
    .ev2__points li,
    .ev3__sub,
    .ev3__callout,
    .cef-card h4,
    .cef-card p,
    .cef-banner__text,
    .cti-row__title,
    .cti-row__text,
    .mid-cta__text strong,
    .mid-cta__text span {
      word-break: keep-all !important;
      overflow-wrap: break-word !important;
      line-break: strict !important;
    }
    /* 業法カード説明文は keep-all だと長い強調文が折り返せず見切れるため通常折り返しを許可 */
    .law__card-desc,
    .law__card-desc strong {
      word-break: normal !important;
      overflow-wrap: anywhere !important;
    }
    /* worry__title もしっかりコンパクトに */
    .worry__title {
      padding: 0 8px;
      font-size: 22px !important;
      line-height: 1.5;
    }
    .worry__title em { font-size: 1.15em !important; }
    /* solve-all 新構成のモバイル調整 */
    .solve-all__intro {
      padding: 14px 20px !important;
      margin: 0 8px 22px !important;
      max-width: calc(100% - 16px) !important;
      box-sizing: border-box !important;
    }
    .solve-all__intro span { font-size: 17px !important; line-height: 1.5; }
    .solve-all__title--v3 {
      font-size: 17px !important;
      padding: 0 12px 24px !important;
      gap: 16px !important;
      line-height: 1.55 !important;
      max-width: 100% !important;
    }
    /* モバイルではグリッドを縦積みに変更 */
    .solve-all__title--v3 .solve-all__title-line1,
    .solve-all__title--v3 .solve-all__title-line2 {
      display: block !important;
      grid-template-columns: none !important;
      width: 100% !important;
      max-width: 100% !important;
      word-break: keep-all !important;
      overflow-wrap: break-word !important;
      line-break: strict !important;
      text-align: center !important;
    }
    .solve-all__title--v3 .solve-all__title-text {
      display: block !important;
      white-space: normal !important;
      margin-top: 4px;
    }
    .solve-all__title--v3 small {
      display: inline-block !important;
      white-space: nowrap !important;
      margin: 0 !important;
    }
    .solve-all__title--v3 em {
      font-size: 1.05em !important;
      margin: 0 2px !important;
    }
    .solve-all__title--v3 small {
      display: inline-block !important;
      margin-left: 0 !important;
      margin-right: 6px !important;
      margin-top: 0 !important;
      font-size: 0.95em !important;
      font-weight: 900 !important;
      color: var(--c-accent) !important;
    }
    /* CTI 転換セクションのモバイル padding */
    .cti-transition { padding: 48px 16px 56px !important; }
    .cti-transition__main { font-size: 22px !important; }
    .cti-transition__lead { font-size: 17px !important; text-align: center !important; }
    .cti-transition__sub { font-size: 17px !important; }
    .cti-transition__cta { width: 100%; max-width: 320px; justify-content: space-between; box-sizing: border-box; padding: 14px 18px 14px 22px; }
    .cti-transition__cta-text { font-size: 17px; }
    /* スマホでは縦並びに */
    .cti-transition__row { grid-template-columns: 1fr !important; gap: 20px !important; text-align: center !important; }
    .cti-transition__row .cti-transition__lead { text-align: center !important; }
    .cti-transition__row .cti-transition__cta-wrap { align-items: center !important; }
    .cti-transition__summary { padding: 20px 18px !important; }
    .cti-transition__summary-title { font-size: 17px !important; }
    .cti-transition__summary-list li { font-size: 17px !important; gap: 10px !important; }
    .cti-transition__summary-list li strong { font-size: 1.2em !important; }
    /* ミッド CTA バナーのモバイル padding */
    .mid-cta { padding: 24px 16px !important; }
    .mid-cta__inner {
      grid-template-columns: 1fr !important;
      gap: 16px !important;
      box-sizing: border-box !important;
    }
    /* テキストは中央配置に */
    .mid-cta__text {
      text-align: center !important;
      align-items: center !important;
    }
    .mid-cta__actions {
      flex-direction: column !important;
      width: 100% !important;
    }
    .mid-cta__btn {
      width: 100% !important;
      box-sizing: border-box !important;
      justify-content: center !important;
      padding: 12px 14px !important;
      font-size: 17px !important;
    }
    .mid-cta__text strong { font-size: 18px !important; }
    .mid-cta__text span { font-size: 17px !important; }
    /* VIDEO THUMB: フィットさせる */
    .video-thumb {
      width: 100% !important;
      box-sizing: border-box !important;
      max-width: 100% !important;
    }
    .video-thumb__img,
    .video-thumb__body {
      box-sizing: border-box !important;
      max-width: 100% !important;
    }
    /* お悩み結論まとめブロックのモバイル padding */
    .worry__summary {
      margin: 32px 0 0 !important;
      padding: 24px 12px 28px !important;
      box-sizing: border-box !important;
      max-width: 100% !important;
      width: 100% !important;
      text-align: center !important;
    }
    .worry__summary-title {
      text-align: center !important;
    }
    .worry__summary-eyebrow {
      display: inline-block !important;
      margin: 0 auto 14px !important;
    }
    .worry__summary-list {
      grid-template-columns: minmax(0, 1fr) !important;
    }
    .worry__summary-item {
      width: 100% !important;
      box-sizing: border-box !important;
      padding: 16px 16px !important;
      min-width: 0 !important;
    }
    .worry__summary-title {
      font-size: 18px !important;
      word-break: keep-all !important;
      overflow-wrap: break-word !important;
      line-break: strict !important;
    }
    .worry__summary-title em {
      word-break: keep-all !important;
      font-size: 1.1em !important;
    }
    .worry__summary-eyebrow { font-size: 17px !important; padding: 4px 14px !important; }
    .worry__summary-num { font-size: 24px !important; }
    .worry__summary-axis { font-size: 17px !important; }
    .worry__summary-desc { font-size: 17px !important; }
    .worry__summary-axis-note { display: block !important; margin-left: 0 !important; margin-top: 2px !important; }
    /* 業法カードのモバイル padding */
    .law__vos-callout { padding: 22px 18px 24px !important; margin: 36px 8px 0 !important; }
    .law__vos-callout-text { font-size: 17px !important; }
    /* セクション間ウェッジ — モバイル時のサイズ調整（細線ガイド + シングルシェブロン） */
    .section-wedge__shape { width: 24px !important; height: 44px !important; top: -36px !important; }
    .section-wedge__shape::before { width: 1.5px !important; height: 22px !important; top: 0 !important; }
    .section-wedge__shape::after  { width: 14px !important; height: 14px !important; top: 20px !important; border-right-width: 1.5px !important; border-bottom-width: 1.5px !important; }
    /* v-arrow モバイル時はコンパクトに */
    .v-arrow::before { width: 1.5px !important; height: 22px !important; top: -32px !important; }
    .v-arrow::after  { width: 14px !important; height: 14px !important; top: -16px !important; border-right-width: 1.5px !important; border-bottom-width: 1.5px !important; }
    /* law__down-arrow モバイル時 */
    .law__down-arrow { width: 22px !important; height: 44px !important; margin: 8px auto 24px !important; }
    .law__down-arrow::before { height: 22px !important; }
    .law__down-arrow::after  { width: 14px !important; height: 14px !important; top: 20px !important; border-right-width: 1.5px !important; border-bottom-width: 1.5px !important; }
    /* セルフ診断ブロックのモバイル padding */
    .law__self-check { padding: 20px 16px 24px !important; margin: 20px 8px 28px !important; }
    .law__self-check-title { font-size: 17px !important; }
    .law__self-check-item p { font-size: 17px !important; }
    .law__self-check-result { font-size: 17px !important; }
  }

  /* スマホ（〜540px）— 追加微調整 */
  @media (max-width: 540px) {
    .fv__title { font-size: 30px !important; }
    .fv__product { height: auto !important; }
    .worry__title { font-size: 22px; }
    .worry__title em { font-size: 1.15em; }
    .pillars__title, .ev1__title, .ev3__title,
    .cti-hero__title, .cti-feat__title, .solve-all__title,
    .videos__title, .migration__title, .flow__title,
    .faq-sec__title, .seminar__title, .final__title {
      font-size: 22px !important;
    }
    /* ev2 タイトルは「だれが、どこまで、進めているか。」を1行に収めるためさらに小さく */
    .ev2__title {
      font-size: 19px !important;
      letter-spacing: -0.02em !important;
    }
    .cti-hero__title { font-size: 26px !important; }
    .worry__callout { font-size: 17px; padding: 18px 14px; }
    .header-logo { height: 32px; }
    .site-header__cta { padding: 6px 10px; font-size: 17px; }
  }

  /* ============== 極小スマホ（〜380px：iPhone SE等）：はみ出し対策 ============== */
  @media (max-width: 380px) {
    .final__inner { padding: 24px 6px 48px !important; }
    .final__col-left { padding: 22px 12px !important; }
    .final__title { font-size: 19px !important; }
    .final__sub { font-size: 12.5px !important; }
    .final__tel { font-size: 22px !important; }
    .final__hours { font-size: 17px !important; }
    .final__btn { padding: 13px 14px 13px 16px !important; font-size: 17px !important; }
    .final__btn .final__btn-arrow { width: 26px !important; height: 26px !important; right: 12px !important; }
  }

  /* ============== スクロールインジケーター（右端固定） ============== */
  /* 注: サイドCTAと干渉するため非表示。サイドCTAがスクロール案内も兼ねる */
  .scroll-indicator {
    display: none !important;
    position: fixed;
    right: 28px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 90;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    opacity: 1;
    pointer-events: none;
  }
  .scroll-indicator__text {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.28em;
    color: var(--c-navy);
    opacity: 0.55;
    font-family: "Noto Sans JP", sans-serif;
  }
  .scroll-indicator__line {
    position: relative;
    width: 1px;
    height: 64px;
    background: linear-gradient(to bottom, rgba(22,58,110,0.25) 0%, rgba(22,58,110,0.55) 100%);
    overflow: hidden;
    border-radius: 1px;
  }
  .scroll-indicator__dot {
    position: absolute;
    top: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--c-accent);
    box-shadow: 0 0 6px rgba(30,115,190,0.6);
    animation: scrollDot 1.8s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  }
  @keyframes scrollDot {
    0%   { top: -8px; opacity: 0; }
    15%  { opacity: 1; }
    85%  { opacity: 1; }
    100% { top: 68px; opacity: 0; }
  }

  /* ============== フローティングボタン：個別説明はこちら ============== */
  .float-btn {
    position: fixed;
    bottom: 36px;
    right: 32px;
    z-index: 999;
    width: 92px;
    height: 92px;
    border-radius: 50%;
    background: linear-gradient(145deg, #2156a0 0%, #163a6e 60%, #0b2040 100%);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: 0.03em;
    text-decoration: none;
    /* 立体感：上面ハイライト＋底面影 */
    box-shadow:
      0 1px 0 rgba(255,255,255,0.18) inset,
      0 -2px 0 rgba(0,0,0,0.25) inset,
      0 8px 0 #0b2040,
      0 10px 20px rgba(11,32,64,0.55);
    border: 1px solid rgba(255,255,255,0.12);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease, transform 0.4s ease, box-shadow 0.15s, top 0.15s;
    transform: translateY(12px);
  }
  .float-btn.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }
  .float-btn:hover {
    box-shadow:
      0 1px 0 rgba(255,255,255,0.18) inset,
      0 -2px 0 rgba(0,0,0,0.25) inset,
      0 4px 0 #0b2040,
      0 6px 16px rgba(11,32,64,0.5);
    transform: translateY(4px);
  }
  .float-btn:active {
    box-shadow:
      0 1px 0 rgba(255,255,255,0.1) inset,
      0 -1px 0 rgba(0,0,0,0.2) inset,
      0 1px 0 #0b2040,
      0 2px 8px rgba(11,32,64,0.4);
    transform: translateY(7px);
  }
  .float-btn__text { display: block; }

  /* ===== 上に戻るボタン ===== */
  .back-to-top {
    position: fixed;
    right: 32px;
    bottom: 32px;
    z-index: 998;
    width: 52px;
    height: 52px;
    background: var(--c-navy);
    color: #fff;
    border: none;
    box-shadow:
      0 6px 16px rgba(11, 32, 64, 0.35),
      0 2px 4px rgba(11, 32, 64, 0.2);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity 0.3s, transform 0.3s, background 0.2s;
  }
  .back-to-top.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }
  .back-to-top:hover {
    background: var(--c-navy-deep);
    transform: translateY(-2px);
  }
  .back-to-top:active {
    transform: translateY(0);
  }
  @media (max-width: 720px) {
    .back-to-top {
      right: 14px;
      bottom: 16px;
      width: 42px;
      height: 42px;
    }
  }
  @media (max-width: 960px) {
    .back-to-top {
      bottom: 16px;
      right: 14px;
      width: 42px;
      height: 42px;
    }
    /* スマホでは縦長スクロールインジケーターを非表示（場所を奪うため） */
    .scroll-indicator { display: none; }
  }

  /* ============== スマホ：本文テキストを少し小さく＋行間ゆとりで読みやすく ============== */
  /* 見出し・バッジ・ボタンは据え置き、本文/説明/リスト系のみ 17px→15px */
  @media (max-width: 720px) {
    .fv__lead,
    .fv__pillars li,
    .fv__news-text,
    .fv__news-body,
    .pillars__sub,
    .pillar-row__body p,
    .worry-card p,
    .worry__law-sub,
    .worry__summary-axis,
    .worry__summary-desc,
    .ev1__body,
    .ev1__cti-note,
    .ev2 p,
    .ev2__points li,
    .ev3__sub,
    .ev3__callout,
    .ba-text,
    .cti-hero__sub,
    .cti-effects__hero-body,
    .cti-transition__sub,
    .cti-transition__summary-list li,
    .cti-transition__summary-note,
    .cti-row__text,
    .cti-feat__list li p,
    .solve-all__sub,
    .solve-all__worry,
    .solve-all__solution,
    .yt-band__sub,
    .migration__rows p,
    .migration__list li,
    .seminar__sub,
    .seminar__cta-intro,
    .seminar__cta-lead,
    .seminar__cta-list li,
    .final__sub,
    .final__hours,
    .final__contact-label,
    .law__card-desc,
    .law__vos-callout-text,
    .law__self-check-item p,
    .law__self-check-result,
    .faq-sec .a,
    .footer-brand p,
    .footer-col__partners,
    .mid-cta__text span {
      font-size: 15px !important;
      line-height: 1.8 !important;
    }
    /* リスト・箇条書きはやや詰めて行間調整 */
    .ev2__points li,
    .cti-transition__summary-list li,
    .seminar__cta-list li {
      line-height: 1.6 !important;
    }
    /* 業法カード説明文は2文節目(17〜18字)を1行に収めるため14px・語中で切らない */
    .law__card-desc {
      font-size: 14px !important;
      line-height: 1.85 !important;
      word-break: keep-all !important;
      overflow-wrap: anywhere !important;
    }
  }
