/* 事業投資・アライアンス支援事業ページ専用CSS。
   もとは pages/service__investment-alliance.html のインライン <style> にあった。
   読み込み位置は従来の <style> と同じ（/shared-site-shell.css の後）。 */
     :root {
       --orange-faint: #fdf3ec;
       --dark: #0b0e13;
       --dark-2: #14181f;
       --deep: #111820;
     }

     * { box-sizing: border-box; }

     html, body { max-width: 100%; overflow-x: hidden; }

     body {
       margin: 0;
       color: var(--text);
       background: var(--paper);
       font-family: "Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
       font-weight: 500;
       line-height: 1.75;
       letter-spacing: 0;
     }

     a { color: inherit; text-decoration: none; }
     img { max-width: 100%; display: block; }

     .nobr { display: inline; white-space: nowrap; }

     .container {
       max-width: var(--max);
       margin: 0 auto;
       padding: 0 var(--gutter);
     }

     /* ====== Header (shared chrome) ====== */
     .site-header {
       position: sticky;
       top: 0;
       z-index: 50;
       background: rgba(255, 255, 255, 0.92);
       backdrop-filter: saturate(180%) blur(10px);
       -webkit-backdrop-filter: saturate(180%) blur(10px);
       border-bottom: 1px solid var(--line);
     }

     .header-inner {
       display: flex;
       align-items: center;
       justify-content: space-between;
       gap: 24px;
       max-width: 1280px;
       margin: 0 auto;
       padding: 14px var(--gutter);
     }

     .brand { display: inline-flex; align-items: center; }
     .brand img { height: 22px; width: auto; }

     .global-nav { display: flex; align-items: stretch; gap: 28px; color: var(--ink); }

     .global-nav a {
       position: relative;
       display: inline-flex;
       flex-direction: column;
       align-items: center;
       justify-content: center;
       gap: 2px;
       padding: 6px 2px;
       color: var(--ink);
     }

     .global-nav .nav-en {
       font-size: 14px;
       font-weight: 800;
       letter-spacing: 0.08em;
       line-height: 1.15;
       text-transform: uppercase;
       transition: color var(--duration) var(--ease);
     }

     .global-nav .nav-ja {
       font-size: 10.5px;
       font-weight: 500;
       letter-spacing: 0.04em;
       line-height: 1.2;
       color: var(--muted);
       transition: color var(--duration) var(--ease);
     }

     .global-nav a::after {
       content: "";
       position: absolute;
       left: 50%;
       bottom: -2px;
       width: 0;
       height: 2px;
       background: var(--orange);
       transform: translateX(-50%);
       transition: width var(--duration) var(--ease);
     }

     .global-nav a:hover::after,
     .global-nav .is-current::after { width: 100%; }

     .global-nav a:hover .nav-en,
     .global-nav .is-current .nav-en { color: var(--orange-text); }

     .global-nav a:hover .nav-ja { color: var(--ink); }

     .header-actions { display: flex; align-items: center; gap: 12px; }

     .header-contact {
       display: inline-flex;
       flex-direction: column;
       align-items: center;
       justify-content: center;
       gap: 2px;
       min-height: 52px;
       padding: 0 22px;
       background: var(--ink);
       color: #ffffff;
       transition: background var(--duration) var(--ease);
     }

     .header-contact .nav-en {
       font-size: 13px;
       font-weight: 800;
       letter-spacing: 0.1em;
       line-height: 1.15;
       text-transform: uppercase;
     }

     .header-contact .nav-ja {
       font-size: 10px;
       font-weight: 500;
       letter-spacing: 0.04em;
       line-height: 1.2;
       color: rgba(255, 255, 255, 0.7);
     }

     .header-contact:hover { background: var(--orange); }
     .header-contact:hover .nav-ja { color: rgba(255, 255, 255, 0.9); }

     .menu-toggle {
       display: none;
       width: 40px;
       height: 40px;
       align-items: center;
       justify-content: center;
       background: transparent;
       border: 1px solid var(--line);
       cursor: pointer;
     }

     .menu-toggle span,
     .menu-toggle span::before,
     .menu-toggle span::after {
       content: "";
       display: block;
       width: 18px;
       height: 2px;
       background: var(--ink);
       position: relative;
     }
     .menu-toggle span::before { position: absolute; top: -6px; }
     .menu-toggle span::after { position: absolute; top: 6px; }

     /* ====== Buttons ====== */
     .button {
       display: inline-flex;
       align-items: center;
       justify-content: center;
       gap: 10px;
       min-height: 56px;
       padding: 0 26px;
       font-size: 15px;
       font-weight: 800;
       letter-spacing: 0.02em;
       border: 1px solid transparent;
       cursor: pointer;
       transition: background var(--duration) var(--ease), color var(--duration) var(--ease), border-color var(--duration) var(--ease);
     }

     .button .arrow { display: inline-block; transition: transform var(--duration) var(--ease); }
     .button:hover .arrow { transform: translateX(3px); }

     .button.primary { background: var(--ink); color: #ffffff; border-color: var(--ink); }
     .button.primary:hover { background: var(--orange); border-color: var(--orange); }

     .button.primary-light { background: #ffffff; color: var(--ink); border-color: #ffffff; }
     .button.primary-light:hover { background: var(--orange); color: #ffffff; border-color: var(--orange); }

     .button.ghost { background: transparent; color: var(--ink); border-color: var(--line-strong); }
     .button.ghost:hover { border-color: var(--ink); background: var(--ink); color: #ffffff; }

     .button.ghost-light { background: transparent; color: #ffffff; border-color: rgba(255, 255, 255, 0.5); }
     .button.ghost-light:hover { border-color: #ffffff; background: rgba(255, 255, 255, 0.1); }

     .button.small { min-height: 46px; padding: 0 18px; font-size: 13.5px; }

     .eyebrow {
       margin: 0 0 18px;
       color: var(--orange-dark);
       font-size: 12px;
       font-weight: 900;
       letter-spacing: 0.16em;
       text-transform: uppercase;
     }

     /* ====== Hero (light, alliance image + scrim, solid focus card) ====== */
     .ia-hero {
       position: relative;
       overflow: hidden;
       isolation: isolate;
       border-bottom: 1px solid var(--line);
     }

     .ia-hero::before {
       content: "";
       position: absolute;
       inset: 0;
       background-image: url("/assets/images/investment-alliance/investment-hero-alliance-platform.png");
       background-image: image-set(url("/assets/images/investment-alliance/investment-hero-alliance-platform.webp") type("image/webp"), url("/assets/images/investment-alliance/investment-hero-alliance-platform.png") type("image/png"));
       background-size: cover;
       background-position: center right;
       z-index: -2;
     }

     .ia-hero::after {
       content: "";
       position: absolute;
       inset: 0;
       background: linear-gradient(90deg, rgba(249, 250, 251, 0.97) 0%, rgba(249, 250, 251, 0.9) 38%, rgba(249, 250, 251, 0.6) 66%, rgba(249, 250, 251, 0.3) 100%);
       z-index: -1;
     }

     .ia-hero-inner {
       position: relative;
       display: grid;
       grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
       gap: 52px;
       align-items: stretch;
       max-width: var(--max);
       margin: 0 auto;
       padding: 92px var(--gutter);
     }

     .ia-hero-text { display: flex; flex-direction: column; justify-content: center; }

     .ia-breadcrumb {
       margin-bottom: 22px;
       color: var(--muted);
       font-size: 12px;
       font-weight: 700;
     }

     /* padding はインライン要素の行送りを変えないため、見た目を保ったままタップ領域だけ 44px にする。 */
     .ia-breadcrumb a { margin: 0 -5px; padding: 14px 5px; color: var(--text); transition: color var(--duration) var(--ease); }
     .ia-breadcrumb a:hover { color: var(--orange-dark); }
     /* 区切りの「/」は罫線用の --line-strong (#c9c9c9) を流用していて 1.58:1
        だった。文字である以上 4.5:1 が要るので --muted に寄せる。 */
     .ia-breadcrumb span { margin: 0 8px; color: var(--muted); }

     .ia-hero .eyebrow {
       display: inline-flex;
       align-items: center;
       gap: 10px;
       margin-bottom: 20px;
       letter-spacing: 0.2em;
     }

     .ia-hero .eyebrow::before {
       content: "";
       display: inline-block;
       width: 34px;
       height: 1px;
       background: var(--orange);
     }

     .ia-hero h1 {
       margin: 0 0 24px;
       color: var(--ink);
       font-size: clamp(36px, 4.4vw, 60px);
       font-weight: 900;
       line-height: 1.1;
       letter-spacing: -0.01em;
       overflow-wrap: anywhere;
     }

     .ia-hero .lead {
       margin: 0 0 30px;
       max-width: 600px;
       color: var(--text);
       font-size: 16px;
       font-weight: 500;
       line-height: 1.95;
     }

     .ia-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }

     .ia-hero-card {
       align-self: stretch;
       display: flex;
       flex-direction: column;
       background: var(--paper);
       border: 1px solid var(--ink);
       box-shadow: 0 30px 70px -40px rgba(0, 0, 0, 0.45);
     }

     .ia-hero-card-head {
       padding: 26px 26px 24px;
       color: #ffffff;
       background: var(--ink);
     }

     .ia-hero-card-head .eyebrow { color: var(--orange); margin-bottom: 12px; letter-spacing: 0.18em; }
     .ia-hero-card-head .eyebrow::before { display: none; }

     .ia-hero-card-head h2 {
       margin: 0 0 12px;
       color: #ffffff;
       font-size: 19px;
       font-weight: 900;
       line-height: 1.5;
     }

     .ia-hero-card-head p {
       margin: 0;
       color: rgba(255, 255, 255, 0.74);
       font-size: 13px;
       line-height: 1.85;
     }

     .ia-hero-card-list { flex: 1; display: grid; grid-auto-rows: 1fr; }

     .ia-hero-card-list div {
       display: flex;
       align-items: center;
       justify-content: space-between;
       gap: 14px;
       padding: 16px 26px;
       border-top: 1px solid var(--line);
     }

     .ia-hero-card-list div:first-child { border-top: 0; }
     .ia-hero-card-list strong { color: var(--ink); font-size: 15px; font-weight: 800; }
     .ia-hero-card-list span {
       color: var(--orange-dark);
       font-size: 10.5px;
       font-weight: 800;
       letter-spacing: 0.12em;
       text-transform: uppercase;
     }

     /* ====== Anchor strip ====== */
     .ia-anchors {
       display: grid;
       grid-template-columns: repeat(5, minmax(0, 1fr));
       gap: 1px;
       background: var(--line);
       border-bottom: 1px solid var(--line);
     }

     .ia-anchors a {
       display: flex;
       align-items: center;
       justify-content: center;
       gap: 7px;
       min-height: 62px;
       padding: 14px 12px;
       background: var(--paper);
       color: var(--ink);
       font-size: 13.5px;
       font-weight: 800;
       letter-spacing: 0.02em;
       text-align: center;
       transition: background var(--duration) var(--ease), color var(--duration) var(--ease);
     }

     .ia-anchors a::after {
       content: "↓";
       color: var(--orange-text);
       font-size: 12px;
       transition: transform var(--duration) var(--ease);
     }

     .ia-anchors a:hover { background: var(--ink); color: #ffffff; }
     .ia-anchors a:hover::after { transform: translateY(2px); }

     /* ====== Sections ====== */
     .section {
       position: relative;
       padding: 100px 0;
       border-bottom: 1px solid var(--line);
     }

     .section-alt { background: var(--soft); }

     .section-dark { color: #ffffff; background: var(--deep); border-bottom: 1px solid #1d2630; }
     .section-dark .eyebrow { color: var(--orange); }
     .section-dark .section-head h2 { color: #ffffff; }
     .section-dark .section-head .summary { color: rgba(255, 255, 255, 0.78); }

     .section-head {
       display: grid;
       grid-template-columns: 0.9fr 1.1fr;
       gap: 48px;
       align-items: end;
       margin-bottom: 50px;
     }

     .section-head h2 {
       margin: 0;
       color: var(--ink);
       font-size: clamp(27px, 3.2vw, 42px);
       font-weight: 900;
       line-height: 1.26;
       letter-spacing: -0.005em;
       overflow-wrap: anywhere;
     }

     .section-head .summary {
       margin: 0;
       color: var(--text);
       font-size: 15.5px;
       font-weight: 500;
       line-height: 1.95;
     }

     /* ====== Overview (image + 2x2 matrix) ====== */
     .ia-overview {
       display: grid;
       grid-template-columns: minmax(0, 1fr) minmax(0, 1.04fr);
       gap: 48px;
       align-items: center;
     }

     .ia-shot {
       margin: 0;
       border: 1px solid var(--line);
       background: var(--paper);
       overflow: hidden;
       box-shadow: 0 28px 60px -42px rgba(0, 0, 0, 0.3);
     }

     .ia-shot img {
       width: 100%;
       aspect-ratio: 16 / 10;
       object-fit: cover;
       object-position: center;
     }

     .ia-shot figcaption {
       display: flex;
       align-items: center;
       gap: 10px;
       padding: 16px 20px;
       border-top: 1px solid var(--line);
       color: var(--muted);
       font-size: 13px;
       font-weight: 700;
     }

     .ia-shot figcaption::before {
       content: "";
       width: 7px; height: 7px;
       border-radius: 50%;
       background: var(--orange);
       flex: none;
     }

     .ia-matrix {
       display: grid;
       grid-template-columns: repeat(2, minmax(0, 1fr));
       border-top: 1px solid var(--ink);
       border-left: 1px solid var(--line);
     }

     .ia-matrix article {
       display: flex;
       flex-direction: column;
       gap: 12px;
       min-height: 166px;
       padding: 26px 24px;
       background: var(--paper);
       border-right: 1px solid var(--line);
       border-bottom: 1px solid var(--line);
     }

     .ia-matrix .num { color: var(--muted); font-size: 13px; font-weight: 900; letter-spacing: 0.08em; }
     .ia-matrix h3 { margin: 0; color: var(--ink); font-size: 18px; font-weight: 900; line-height: 1.4; }
     .ia-matrix p { margin: 0; color: var(--text); font-size: 13px; line-height: 1.85; }

     /* ====== Card grids (support areas / criteria / consultation) ====== */
     .ia-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
     .ia-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }

     .ia-card {
       display: flex;
       flex-direction: column;
       gap: 14px;
       padding: 28px 26px;
       background: var(--paper);
       border: 1px solid var(--line);
       transition: border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
     }

     .ia-card:hover { border-color: var(--line-strong); box-shadow: 0 16px 40px -28px rgba(0, 0, 0, 0.22); }

     /* Support Areas — photo cards (image bg + bottom scrim, no icons) */
     .ia-area {
       position: relative;
       display: flex;
       flex-direction: column;
       justify-content: flex-end;
       gap: 11px;
       min-height: 372px;
       padding: 28px 26px;
       overflow: hidden;
       isolation: isolate;
       border: 1px solid var(--line);
       background: var(--dark);
       color: #ffffff;
       transition: border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
     }

     .ia-area::before {
       content: "";
       position: absolute;
       inset: 0;
       z-index: -2;
       background-image: var(--img);
       background-size: cover;
       background-position: center;
       transition: transform 700ms var(--ease);
     }

     @supports (background-image: image-set(url("/assets/images/investment-alliance/investment-capital-partnership.webp") type("image/webp"))) {
       .ia-area::before {
         background-image: image-set(var(--img-webp) type("image/webp"), var(--img) type("image/png"));
       }
     }

     /* テキストブロック追従の暗幕。カード高は 372px 固定だがテキストの行数は
        幅によって変わり、390px では見出しと本文が最大 40px 上へずれる。
        % 指定だとその位置で暗幕が 0.08〜0.35 しかなく、白の見出しが 2.03:1
        まで落ちていた。下端からの px で止めれば行数が増えても同じ濃度に乗る。
        本文の上端は下端から最大 195px、見出しの上端は最大 234px。 */
     .ia-area::after {
       content: "";
       position: absolute;
       inset: 0;
       z-index: -1;
       background: linear-gradient(
         to top,
         rgba(8, 10, 14, 0.95) 0,
         rgba(8, 10, 14, 0.92) 90px,
         rgba(8, 10, 14, 0.86) 150px,
         rgba(8, 10, 14, 0.74) 200px,
         rgba(8, 10, 14, 0.52) 245px,
         rgba(8, 10, 14, 0.18) 295px,
         rgba(8, 10, 14, 0) 100%
       );
     }

     .ia-area:hover {
       border-color: var(--line-strong);
       box-shadow: 0 24px 56px -30px rgba(0, 0, 0, 0.5);
     }

     .ia-area:hover::before { transform: scale(1.06); }

     /* ブランドオレンジは写真の上では色の入れ替えでは救えない（明るくしても
        暗くしても 1.00〜2.06:1）。カテゴリだけ下地を敷き、下のタグと同じ
        「写真の上に置いたチップ」の意匠に寄せる。0.82 の下地なら写真が
        真っ白でも 5:1 を超える。 */
     .ia-area-cat {
       align-self: flex-start;
       padding: 4px 10px;
       background: rgba(8, 10, 14, 0.82);
       -webkit-backdrop-filter: blur(3px);
       backdrop-filter: blur(3px);
       color: var(--orange);
       font-size: 11px;
       font-weight: 900;
       letter-spacing: 0.18em;
       text-transform: uppercase;
     }

     .ia-area h3 {
       margin: 0;
       color: #ffffff;
       font-size: 20px;
       font-weight: 900;
       line-height: 1.4;
       text-shadow: 0 1px 10px rgba(0, 0, 0, 0.4);
     }

     .ia-area p {
       margin: 0;
       color: rgba(255, 255, 255, 0.84);
       font-size: 13.5px;
       line-height: 1.85;
     }

     .ia-area .tag-row { margin-top: 4px; }

     .ia-area .tag {
       background: rgba(255, 255, 255, 0.1);
       border-color: rgba(255, 255, 255, 0.28);
       color: rgba(255, 255, 255, 0.92);
       -webkit-backdrop-filter: blur(3px);
       backdrop-filter: blur(3px);
     }

     .ia-area--capital { --img: url("/assets/images/investment-alliance/investment-capital-partnership.png");
--img-webp: url("/assets/images/investment-alliance/investment-capital-partnership.webp"); }
     .ia-area--alliance { --img: url("/assets/images/investment-alliance/investment-strategic-alliance-network.png");
--img-webp: url("/assets/images/investment-alliance/investment-strategic-alliance-network.webp"); }
     .ia-area--ma { --img: url("/assets/images/investment-alliance/investment-ma-succession-review.png");
--img-webp: url("/assets/images/investment-alliance/investment-ma-succession-review.webp"); }
     .ia-area--growth { --img: url("/assets/images/investment-alliance/investment-growth-marketing-support.png");
--img-webp: url("/assets/images/investment-alliance/investment-growth-marketing-support.webp"); }
     .ia-area--commerce { --img: url("/assets/images/investment-alliance/investment-commerce-media-operations.png");
--img-webp: url("/assets/images/investment-alliance/investment-commerce-media-operations.webp"); }
     .ia-area--engagement { --img: url("/assets/images/investment-alliance/investment-post-deal-value-creation.png");
--img-webp: url("/assets/images/investment-alliance/investment-post-deal-value-creation.webp"); }

     .ia-card h3 { margin: 0; color: var(--ink); font-size: 19px; font-weight: 900; line-height: 1.42; }
     .ia-card p { margin: 0; color: var(--text); font-size: 13.5px; line-height: 1.9; }

     .tag-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 4px; }

     .tag {
       display: inline-flex;
       align-items: center;
       padding: 5px 11px;
       background: var(--soft);
       border: 1px solid var(--line);
       color: var(--muted);
       font-size: 11.5px;
       font-weight: 700;
       letter-spacing: 0.02em;
     }

     .ia-card--dark {
       background: rgba(255, 255, 255, 0.05);
       border-color: rgba(255, 255, 255, 0.16);
     }

     .ia-card--dark:hover { border-color: rgba(255, 255, 255, 0.32); box-shadow: none; }
     .ia-card--dark h3 { color: #ffffff; }
     .ia-card--dark p { color: rgba(255, 255, 255, 0.76); }

     /* ====== Consultation themes (image panel + text, faint section bg) ====== */
     .ia-consult-section {
       background:
         linear-gradient(180deg, rgba(247, 247, 247, 0.9), rgba(247, 247, 247, 0.95)),
         url("/assets/images/investment-alliance/investment-consultation-section-background.png") center / cover no-repeat;
       background: linear-gradient(180deg, rgba(247, 247, 247, 0.9), rgba(247, 247, 247, 0.95)),
         image-set(url("/assets/images/investment-alliance/investment-consultation-section-background.webp") type("image/webp"), url("/assets/images/investment-alliance/investment-consultation-section-background.png") type("image/png")) center / cover no-repeat;
     }

     .ia-consult {
       display: grid;
       grid-template-columns: 38% minmax(0, 1fr);
       min-height: 224px;
       background: var(--paper);
       border: 1px solid var(--line);
       overflow: hidden;
       isolation: isolate;
       transition: border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
     }

     .ia-consult:hover {
       border-color: var(--line-strong);
       box-shadow: 0 24px 54px -32px rgba(0, 0, 0, 0.3);
     }

     .ia-consult-media {
       position: relative;
       overflow: hidden;
     }

     .ia-consult-media::before {
       content: "";
       position: absolute;
       inset: 0;
       background-image: var(--img);
       background-size: cover;
       background-position: center;
       transition: transform 700ms var(--ease);
     }

     @supports (background-image: image-set(url("/assets/images/investment-alliance/investment-consultation-capital-alliance.webp") type("image/webp"))) {
       .ia-consult-media::before {
         background-image: image-set(var(--img-webp) type("image/webp"), var(--img) type("image/png"));
       }
     }

     .ia-consult-media::after {
       content: "";
       position: absolute;
       inset: 0;
       background: linear-gradient(105deg, rgba(8, 10, 14, 0.04) 0%, rgba(8, 10, 14, 0.12) 78%, rgba(255, 255, 255, 0.28) 100%);
     }

     .ia-consult:hover .ia-consult-media::before { transform: scale(1.06); }

     .ia-consult-body {
       display: flex;
       flex-direction: column;
       justify-content: center;
       gap: 9px;
       padding: 30px 30px;
       border-left: 1px solid var(--line);
     }

     .ia-consult-cat {
       color: var(--orange-dark);
       font-size: 11px;
       font-weight: 900;
       letter-spacing: 0.16em;
       text-transform: uppercase;
     }

     .ia-consult h3 { margin: 0; color: var(--ink); font-size: 19px; font-weight: 900; line-height: 1.45; }
     .ia-consult p { margin: 0; color: var(--text); font-size: 13.5px; line-height: 1.9; }

     .ia-consult--capital { --img: url("/assets/images/investment-alliance/investment-consultation-capital-alliance.png");
--img-webp: url("/assets/images/investment-alliance/investment-consultation-capital-alliance.webp"); }
     .ia-consult--partner { --img: url("/assets/images/investment-alliance/investment-consultation-partner-search-v2.png");
--img-webp: url("/assets/images/investment-alliance/investment-consultation-partner-search-v2.webp"); }
     .ia-consult--ma { --img: url("/assets/images/investment-alliance/investment-consultation-ma-options.png");
--img-webp: url("/assets/images/investment-alliance/investment-consultation-ma-options.webp"); }
     .ia-consult--growth { --img: url("/assets/images/investment-alliance/investment-consultation-growth-after-investment-v2.png");
--img-webp: url("/assets/images/investment-alliance/investment-consultation-growth-after-investment-v2.webp"); }

     /* ====== Criteria (dark section with deal-room bg) ====== */
     .ia-criteria { position: relative; overflow: hidden; isolation: isolate; }

     .ia-criteria::before {
       content: "";
       position: absolute;
       inset: 0;
       background-image: url("/assets/images/investment-alliance/investment-deal-execution-room.png");
       background-image: image-set(url("/assets/images/investment-alliance/investment-deal-execution-room.webp") type("image/webp"), url("/assets/images/investment-alliance/investment-deal-execution-room.png") type("image/png"));
       background-size: cover;
       background-position: center;
       z-index: -2;
     }

     .ia-criteria::after {
       content: "";
       position: absolute;
       inset: 0;
       background: linear-gradient(90deg, rgba(13, 18, 25, 0.95) 0%, rgba(13, 18, 25, 0.86) 55%, rgba(13, 18, 25, 0.74) 100%);
       z-index: -1;
     }

     /* ====== Process (numbered chain) ====== */
     .ia-chain {
       position: relative;
       display: grid;
       grid-template-columns: repeat(5, minmax(0, 1fr));
       gap: 24px;
       padding-top: 6px;
     }

     .ia-chain::before {
       content: "";
       position: absolute;
       top: 37px;
       left: 31px;
       right: 31px;
       height: 2px;
       background: repeating-linear-gradient(90deg, var(--line-strong) 0 7px, transparent 7px 15px);
       z-index: 0;
     }

     .ia-chain-node {
       position: relative;
       z-index: 1;
       display: flex;
       flex-direction: column;
       gap: 20px;
     }

     .ia-chain-marker {
       position: relative;
       display: inline-flex;
       align-items: center;
       justify-content: center;
       width: 62px;
       height: 62px;
       border-radius: 50%;
       background: var(--paper);
       border: 1.5px solid var(--orange);
       color: var(--ink);
       font-size: 16px;
       font-weight: 900;
     }

     .ia-chain-marker::after {
       content: "";
       position: absolute;
       inset: 6px;
       border-radius: 50%;
       border: 1px solid rgba(245, 126, 53, 0.22);
     }

     .ia-chain-body { display: flex; flex-direction: column; gap: 10px; padding-right: 8px; }
     .ia-chain-label { color: var(--orange-dark); font-size: 11px; font-weight: 900; letter-spacing: 0.14em; text-transform: uppercase; }
     .ia-chain-node h3 { margin: 0; color: var(--ink); font-size: 18px; font-weight: 900; line-height: 1.4; }
     .ia-chain-node p { margin: 0; color: var(--text); font-size: 13px; line-height: 1.85; }

     /* ====== Case (FamilyTech) ====== */
     .ia-case {
       display: grid;
       grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
       border: 1px solid var(--line);
       background: var(--paper);
       overflow: hidden;
     }

     .ia-case-visual {
       position: relative;
       min-height: 100%;
       overflow: hidden;
       background: #e9edf1;
     }

     .ia-case-visual img.ia-case-photo {
       position: absolute;
       inset: 0;
       width: 100%;
       height: 100%;
       object-fit: cover;
       object-position: center top;
     }

     .ia-case-visual::after {
       content: "";
       position: absolute;
       inset: 0;
       background: linear-gradient(180deg, rgba(10, 12, 16, 0.18) 0%, rgba(10, 12, 16, 0.04) 38%, rgba(10, 12, 16, 0.06) 100%);
     }

     .ia-case-tag {
       position: absolute;
       top: 18px;
       left: 18px;
       z-index: 2;
       padding: 6px 12px;
       background: rgba(11, 14, 19, 0.82);
       color: #ffffff;
       font-size: 10.5px;
       font-weight: 900;
       letter-spacing: 0.14em;
       text-transform: uppercase;
     }

     .ia-case-logo {
       position: absolute;
       left: 18px;
       bottom: 18px;
       right: 18px;
       z-index: 2;
       display: flex;
       align-items: center;
       padding: 14px 18px;
       background: rgba(255, 255, 255, 0.96);
       border: 1px solid var(--line);
     }

     .ia-case-logo img { height: 30px; width: auto; }

     .ia-case-body { padding: 34px; }

     .ia-case-body h3 { margin: 0 0 14px; color: var(--ink); font-size: 23px; font-weight: 900; line-height: 1.4; }
     .ia-case-body > p { margin: 0 0 22px; color: var(--text); font-size: 14.5px; line-height: 1.95; }

     .ia-case-service {
       display: flex;
       align-items: center;
       gap: 16px;
       margin-bottom: 22px;
       padding: 16px;
       background: var(--soft);
       border: 1px solid var(--line);
     }

     .ia-case-service img {
       width: 124px;
       height: 86px;
       object-fit: cover;
       border: 1px solid var(--line);
       background: #ffffff;
       flex: none;
     }

     .ia-case-service div { min-width: 0; }
     .ia-case-service strong { display: block; margin-bottom: 4px; color: var(--ink); font-size: 14px; font-weight: 900; }
     .ia-case-service p { margin: 0; color: var(--muted); font-size: 12.5px; line-height: 1.7; }

     .ia-data {
       margin: 0 0 24px;
       border-top: 1px solid var(--line);
     }

     .ia-data div {
       display: grid;
       grid-template-columns: 130px minmax(0, 1fr);
       gap: 18px;
       padding: 13px 0;
       border-bottom: 1px solid var(--line);
     }

     .ia-data dt { color: var(--muted); font-size: 12.5px; font-weight: 900; letter-spacing: 0.04em; }
     .ia-data dd { margin: 0; color: var(--ink); font-size: 13.5px; font-weight: 700; }

     .ia-case-actions { display: flex; flex-wrap: wrap; gap: 12px; }

     /* ====== FAQ ====== */
     .ia-faq { display: grid; gap: 12px; }

     .ia-faq details {
       background: var(--paper);
       border: 1px solid var(--line);
       transition: border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
     }

     .ia-faq details:hover { border-color: var(--line-strong); }

     .ia-faq details[open] {
       border-color: var(--line-strong);
       box-shadow: 0 18px 44px -30px rgba(0, 0, 0, 0.28);
     }

     .ia-faq summary {
       display: grid;
       grid-template-columns: 44px minmax(0, 1fr) 30px;
       align-items: center;
       gap: 18px;
       padding: 20px 26px;
       cursor: pointer;
       list-style: none;
     }

     .ia-faq summary::-webkit-details-marker { display: none; }

     .ia-faq-badge {
       display: grid;
       place-items: center;
       width: 44px;
       height: 44px;
       border: 1px solid var(--line);
       background: var(--orange-faint);
       color: var(--orange-dark);
       font-size: 16px;
       font-weight: 900;
       letter-spacing: 0.02em;
       transition: background var(--duration) var(--ease), color var(--duration) var(--ease), border-color var(--duration) var(--ease);
     }

     .ia-faq details[open] .ia-faq-badge {
       background: var(--orange);
       border-color: var(--orange);
       color: #ffffff;
     }

     .ia-faq-q {
       color: var(--ink);
       font-size: 15.5px;
       font-weight: 800;
       line-height: 1.6;
     }

     .ia-faq summary::after {
       content: "+";
       justify-self: end;
       display: grid;
       place-items: center;
       width: 30px;
       height: 30px;
       border-radius: 50%;
       border: 1px solid var(--line-strong);
       color: var(--orange-dark);
       font-size: 18px;
       font-weight: 700;
       line-height: 1;
       transition: background var(--duration) var(--ease), color var(--duration) var(--ease), border-color var(--duration) var(--ease);
     }

     .ia-faq details[open] summary::after {
       content: "−";
       background: var(--orange);
       border-color: var(--orange);
       color: #ffffff;
     }

     .ia-faq p {
       position: relative;
       margin: 0;
       padding: 20px 26px 26px 88px;
       border-top: 1px solid var(--line);
       color: var(--text);
       font-size: 14px;
       line-height: 1.95;
     }

     .ia-faq p::before {
       content: "A";
       position: absolute;
       top: 20px;
       left: 26px;
       display: grid;
       place-items: center;
       width: 44px;
       height: 44px;
       border: 1px solid var(--line);
       background: var(--soft);
       color: var(--muted);
       font-size: 16px;
       font-weight: 900;
     }

     /* ====== Contact CTA (dark, image bg) ====== */
     .ia-cta {
       position: relative;
       color: #ffffff;
       overflow: hidden;
       isolation: isolate;
       border-bottom: 1px solid #1d2229;
     }

     .ia-cta::before {
       content: "";
       position: absolute;
       inset: 0;
       background-image: url("/assets/images/investment-alliance/investment-contact-cta-dark.png");
       background-image: image-set(url("/assets/images/investment-alliance/investment-contact-cta-dark.webp") type("image/webp"), url("/assets/images/investment-alliance/investment-contact-cta-dark.png") type("image/png"));
       background-size: cover;
       background-position: center;
       z-index: -2;
     }

     .ia-cta::after {
       content: "";
       position: absolute;
       inset: 0;
       background: linear-gradient(90deg, rgba(7, 10, 16, 0.93) 0%, rgba(7, 10, 16, 0.78) 52%, rgba(7, 10, 16, 0.56) 100%);
       z-index: -1;
     }

     .ia-cta .eyebrow { color: var(--orange); }

     .ia-cta-grid {
       display: grid;
       grid-template-columns: minmax(0, 1fr) auto;
       gap: 48px;
       align-items: center;
       margin-bottom: 30px;
     }

     .ia-cta h2 {
       margin: 0 0 18px;
       color: #ffffff;
       font-size: clamp(27px, 3.2vw, 40px);
       font-weight: 900;
       line-height: 1.26;
       overflow-wrap: anywhere;
     }

     .ia-cta-grid > div:first-child p {
       margin: 0;
       max-width: 640px;
       color: rgba(255, 255, 255, 0.84);
       font-size: 15px;
       line-height: 1.95;
     }

     .ia-cta-actions { display: flex; flex-direction: column; gap: 14px; min-width: 248px; }
     .ia-cta-actions .button { width: 100%; }

     .ia-notice {
       margin: 0;
       padding: 18px 20px;
       border: 1px solid rgba(255, 255, 255, 0.18);
       background: rgba(255, 255, 255, 0.04);
       color: rgba(255, 255, 255, 0.66);
       font-size: 12.5px;
       line-height: 1.85;
     }

     /* ====== Footer (shared chrome) ====== */
     .footer { background: #0b0b0c; color: #c9c9c9; padding: 64px 0 32px; }

     .footer-top {
       display: grid;
       grid-template-columns: 1.3fr repeat(4, 1fr);
       gap: 36px;
       padding-bottom: 40px;
       border-bottom: 1px solid rgba(255, 255, 255, 0.12);
     }

     .footer-brand .footer-logo { display: inline-flex; align-items: center; margin-bottom: 18px; }
     .footer-brand .footer-logo img { height: 24px; width: auto; }
     .footer-brand p { color: rgba(255, 255, 255, 0.6); font-size: 13px; line-height: 1.85; }

     .footer-col strong {
       display: block;
       margin-bottom: 14px;
       color: #ffffff;
       font-size: 13px;
       font-weight: 800;
       letter-spacing: 0.08em;
     }

     .footer-col a {
       display: block;
       margin-top: 8px;
       color: rgba(255, 255, 255, 0.62);
       font-size: 13px;
       transition: color var(--duration) var(--ease);
     }

     .footer-col a:hover { color: var(--orange); }

     .footer-bottom {
       display: flex;
       justify-content: space-between;
       align-items: center;
       flex-wrap: wrap;
       gap: 12px;
       padding-top: 24px;
       color: rgba(255, 255, 255, 0.4);
       font-size: 12px;
     }

     /* ====== Responsive ====== */
     @media (max-width: 1366px) {
       .section { padding: 88px 0; }
       .ia-hero-inner { padding: 84px var(--gutter); gap: 44px; }
     }

     @media (max-width: 1100px) {
       .section-head { grid-template-columns: 1fr; gap: 18px; align-items: start; margin-bottom: 42px; }
       .ia-hero-inner { grid-template-columns: 1fr; gap: 40px; }
       .ia-hero::after { background: linear-gradient(90deg, rgba(249, 250, 251, 0.95) 0%, rgba(249, 250, 251, 0.86) 60%, rgba(249, 250, 251, 0.7) 100%); }
       .ia-overview { grid-template-columns: 1fr; gap: 34px; align-items: start; }
       .ia-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
       .ia-case { grid-template-columns: 1fr; }
       .ia-case-visual { min-height: 300px; }
       .ia-cta-grid { grid-template-columns: 1fr; gap: 28px; }
       .ia-cta-actions { min-width: 0; }
     }

     @media (max-width: 960px) {
       :root { --gutter: 24px; }
       .global-nav, .header-contact { display: none; }
       .menu-toggle { display: inline-flex; }
       .section { padding: 72px 0; }
       .ia-hero-inner { padding: 64px var(--gutter); }
       .ia-anchors { grid-template-columns: repeat(3, minmax(0, 1fr)); }
       .ia-chain { grid-template-columns: 1fr; gap: 0; padding-top: 0; }
       .ia-chain::before { display: none; }
       .ia-chain-node {
         flex-direction: row;
         gap: 20px;
         padding: 22px 0;
         border-top: 1px solid var(--line);
       }
       .ia-chain-node:first-child { border-top: 0; padding-top: 0; }
       .ia-chain-marker { flex: none; }
       .ia-chain-body { padding-right: 0; }
     }

     @media (max-width: 720px) {
       .section { padding: 58px 0; }
       .ia-hero-inner { padding: 50px var(--gutter); }
       .section-head h2 { font-size: 26px; }
       .ia-anchors { grid-template-columns: repeat(2, minmax(0, 1fr)); }
       .ia-grid-3, .ia-grid-2 { grid-template-columns: 1fr; }
       .ia-matrix { grid-template-columns: 1fr; }
       .ia-consult { grid-template-columns: 1fr; min-height: 0; }
       .ia-consult-media { min-height: 172px; }
       .ia-consult-body { border-left: 0; border-top: 1px solid var(--line); padding: 24px 24px; }
       .ia-case-body { padding: 26px 22px; }
       .ia-case-service { flex-direction: column; align-items: flex-start; }
       .ia-case-service img { width: 100%; height: 150px; }
       .ia-data div { grid-template-columns: 110px minmax(0, 1fr); gap: 12px; }
       .ia-faq summary { grid-template-columns: 38px minmax(0, 1fr) 28px; gap: 14px; padding: 18px 18px; }
       .ia-faq-badge { width: 38px; height: 38px; font-size: 14px; }
       .ia-faq p { padding: 18px 18px 22px 70px; }
       .ia-faq p::before { top: 18px; left: 18px; width: 38px; height: 38px; font-size: 14px; }
       .footer-top { grid-template-columns: 1fr 1fr; gap: 28px; }
       .footer-brand { grid-column: 1 / -1; }
       .button { min-height: 52px; font-size: 14.5px; padding: 0 22px; }
       .ia-hero-actions .button { flex: 1 1 auto; }
     }

     @media (max-width: 480px) {
       .ia-hero-actions { flex-direction: column; align-items: stretch; }
       .ia-hero-actions .button { width: 100%; }
       .ia-anchors { grid-template-columns: 1fr; }
       .ia-data div { grid-template-columns: 1fr; gap: 3px; }
       .footer-top { grid-template-columns: 1fr; }
       .footer-bottom { flex-direction: column; gap: 8px; align-items: flex-start; }
     }

     @media (prefers-reduced-motion: reduce) {
       * { transition-duration: 1ms !important; animation-duration: 1ms !important; }
     }
