/*
Theme Name: altruloop_holdings
Theme URI: https://altruloop.com/
Author: altruloop
Description: 株式会社altruloopホールディングス コーポレートサイト（刷新版）。現行テーマとは別テーマとして作成し、公開日に有効化して切り替える。
Version: 0.4.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: Proprietary
Text Domain: altruloop_holdings
*/

/* ============================================================
   このファイルの構成
    1. 共通トークン / ベース
    2. オープニング（廃止）
    3. アイコン
    4. ヘッダー / モバイルナビ
    5. 一文字アニメーション
    7. 共通パーツ（ボタン・リンク・表示アニメーション）
    8. お問い合わせ帯 / フッター
    9. 下層ページ共通（パンくず・本文・会社概要テーブル）
   11. 実績 / ホワイトペーパー
   12. FAQ
   14. 印刷・その他
   15. 代表紹介ブロック
   16. 資料ダウンロード（whitepaper）
   17. 発信・関連サイト（代表紹介）
   18. Contact Form 7
   19. カード内リンクの下線を打ち消す
   22. メンバー紹介（一覧・個別）
   32. 本文見出し h2（以前のペン線。資料DL・実績などの本文の h2）
   33. お知らせ（一覧・カテゴリー別・詳細）
   34. メンバー詳細：名前の下の手書きローマ字
   36. トップページ・共通部分（各セクションは assets/css/top.css）
   37. 事業・サービス（/service/）
   38. お問い合わせ（/inquiry/）
   39. 会社概要（/about/）
   40. 採用情報（/recruit/）
   41. 下層ページのタイトル・見出し（会社概要・事業サービス・メンバー紹介・代表紹介・お知らせ・お問い合わせ）
   42. プライバシーポリシー・勧誘方針・お客様本位の業務運営方針（/privacy/・/solicitation-policy/・/fd-policy/）
   43. 代表紹介（/ceo-introduction/）
   44. 共通の締め（ページの一番下「経営のいちばん近くに。」）
   45. 準備中のページ（税務など）
   46. お知らせ一覧（月ごとの年表）
   47. お知らせの記事（淡い帯＋白い紙）
   48. 共通ヘッダー（header.php。2026年10月 改訂版）
   49. 事業・サービス（page-service.php。2026年10月 改訂版）
   50. ページ名の手書きのまるを外す（2026年10月）
   51. 会社概要 2026年10月 改訂版（地図・区分・リンクの矢印）
   52. ご支援事例（archive-works.php。2026年10月 改訂版）
   53. お問い合わせ 2026年10月 改訂版（左に図、右にフォーム）
   54. 代表紹介 2026年10月 改訂版（page-ceo-introduction.php）
   ============================================================ */


/* ============================================================
   1. 共通トークン / ベース
   ============================================================ */
  :root{
    --blue:#003885;
    --orange:#FF7F00;
    --navy:#003885;
    --deep:#00265A;
    --orange-deep:#E06E00;
    --orange-ink:#C25F00;
    --ice:#F2F6FC;
    --paper:#FFFFFF;
    --ink:#0C1420;
    --sub:#3f3f4a;
    --line:#DEE6F1;
    --frame:#C3D3E8;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{background:var(--paper); color:var(--ink);
    font-family:'Hiragino Kaku Gothic ProN','Hiragino Sans','ヒラギノ角ゴ ProN W3',
                'BIZ UDPGothic','Meiryo',sans-serif;
    font-size:clamp(1rem, 0.859rem + 0.38vw, 1.188rem);
    line-height:2;
    letter-spacing:0.07em;
    font-feature-settings:"chws";
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    overflow-x:hidden;}
  ::selection{ background:var(--blue); color:#fff; }
  a{color:inherit; text-decoration:none;}
  img{display:block; max-width:100%;}
  button{font-family:inherit; cursor:pointer; border:none; background:none;}
  ol,ul{list-style:none;}
  .skip-link{ position:absolute; left:-9999px; top:0; z-index:999; background:var(--navy); color:#fff; padding:12px 20px; font-size:13px; }
  .skip-link:focus{ left:0; }
  :focus-visible{ outline:2px solid var(--orange); outline-offset:3px; }

/* ============================================================
   2. オープニング（廃止）
   トップページのオープニングは使わないため、表示しない。
   header.php などに #opening の HTML が残っていても出ないようにしています。
   ============================================================ */
  #opening{ display:none !important; }

/* ============================================================
   3. アイコン
   ============================================================ */
  .ic{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.4;
       stroke-linecap:square; stroke-linejoin:miter; flex-shrink:0; }
  .ic-sm{ width:15px; height:15px; stroke-width:1.5; }
  .ic-xs{ width:14px; height:14px; stroke-width:1.5; }
  .ic-xl{ width:54px; height:54px; stroke-width:1.1; }
  .icon-frame{ width:44px; height:44px; border:1px solid var(--frame); color:var(--blue);
    display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
    transition: border-color .35s ease, background .35s ease; }

/* ============================================================
   4. ヘッダー
   ============================================================ */
  header{ position:fixed; top:0; left:0; right:0; z-index:80;
    display:flex; align-items:center; justify-content:space-between;
    padding:20px 4%; transition: background .35s ease, border-color .35s ease, padding .35s ease;
    border-bottom:1px solid transparent; }
  header.solid{ background:rgba(255,255,255,0.94); backdrop-filter:blur(8px);
    border-bottom-color:var(--line); padding:14px 4%; }
  .brand{ display:flex; align-items:center; }
  .brand-logo{ height:60px; width:auto; display:block; }
  @media(max-width:640px){ .brand-logo{ height:42px; } }
  nav.main{ display:flex; align-items:center; gap:4px; }
  nav.main ul{ display:flex; gap:2px; }
  nav.main ul a{ display:block; font-size:13px; font-weight:500; padding:10px 16px; letter-spacing:.04em;
    transition: color .2s, background .2s; }
  nav.main ul a:hover{ color:var(--blue); background:var(--ice); }
  .cta-btn{ display:inline-flex !important; align-items:center; gap:8px; background:var(--navy); color:#fff;
    padding:12px 24px; font-size:12.5px; font-weight:700; letter-spacing:.06em; margin-left:10px;
    transition: background .2s, transform .2s; }
  .cta-btn:hover{ background:var(--deep); transform:translateY(-1px); }
  @media(max-width:1000px){ nav.main ul{ display:none; } }

  /* 4b. モバイルナビ */
  .nav-toggle{ display:none; width:44px; height:44px; position:relative; z-index:95; margin-left:8px; }
  .nav-toggle span{ position:absolute; left:11px; width:22px; height:1.5px; background:var(--navy);
    transition: transform .3s ease, opacity .2s ease; }
  .nav-toggle span:nth-child(1){ top:16px; }
  .nav-toggle span:nth-child(2){ top:22px; }
  .nav-toggle span:nth-child(3){ top:28px; }
  body.nav-open .nav-toggle span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
  body.nav-open .nav-toggle span:nth-child(2){ opacity:0; }
  body.nav-open .nav-toggle span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }
  .drawer{ position:fixed; inset:0; z-index:90; background:var(--paper); padding:100px 8% 60px;
    transform:translateY(-100%); transition: transform .5s cubic-bezier(.76,0,.24,1);
    overflow-y:auto; visibility:hidden; }
  body.nav-open .drawer{ transform:translateY(0); visibility:visible; }
  .drawer ul{ border-top:1px solid var(--line); }
  .drawer li{ border-bottom:1px solid var(--line); }
  .drawer a{ display:block; padding:22px 4px; font-size:16px; color:var(--navy); font-weight:700; letter-spacing:.06em; }
  .drawer .drawer-cta{ margin-top:36px; display:flex; flex-direction:column; gap:12px; }
  @media(max-width:1000px){
    .nav-toggle{ display:block; }
    header .cta-btn{ display:none !important; }
    body.nav-open{ overflow:hidden; }
  }

/* ============================================================
   5. 一文字ずつのアニメーション
   ============================================================ */
  .split span{ display:inline-block; opacity:0; transform:translateY(.45em); }
  .split.in span{ animation: charIn .7s cubic-bezier(.2,.75,.3,1) forwards;
    animation-delay: calc(var(--i) * 0.032s); }
  @keyframes charIn{ to{ opacity:1; transform:translateY(0); } }

/* ============================================================
   7. 共通パーツ
   ============================================================ */
  .link{ display:inline-flex; align-items:center; gap:10px; font-size:13px; font-weight:600; color:var(--blue);
    letter-spacing:.06em; border-bottom:1px solid var(--frame); padding-bottom:6px;
    transition: border-color .25s, gap .25s; }
  .link:hover{ border-color:var(--blue); gap:16px; }
  .btn-primary{ display:inline-flex; align-items:center; gap:9px; background:var(--orange); color:#fff;
    padding:17px 36px; font-size:13px; font-weight:700; letter-spacing:.06em;
    transition: background .2s, transform .2s; }
  .btn-primary:hover{ background:var(--orange-deep); transform:translateY(-2px); }
  .btn-secondary{ display:inline-flex; align-items:center; gap:9px; border:1px solid var(--navy); color:var(--navy);
    padding:17px 34px; font-size:13px; font-weight:500; letter-spacing:.06em; transition: background .2s; }
  .btn-secondary:hover{ background:var(--ice); }
  .reveal{ opacity:0; transform:translateY(28px); transition: opacity .8s ease, transform .8s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }

/* ============================================================
   8. お問い合わせ帯（下層ページ） / フッター
   ============================================================ */
  .contact-band{ border-top:1px solid var(--line); }
  .contact-band a{ display:block; padding:100px 6%; transition: background .35s ease; }
  .contact-band a:hover{ background:var(--ice); }
  .contact-inner{ max-width:1240px; margin:0 auto; display:flex; justify-content:space-between;
    align-items:center; gap:40px; flex-wrap:wrap; }
  .contact-inner .t{ font-size:clamp(26px,4vw,54px); font-weight:700; color:var(--navy); letter-spacing:.1em; }
  .contact-inner .s{ margin-top:20px; font-size:16px; color:var(--sub); letter-spacing:.04em; }
  .contact-inner .go{ width:72px; height:72px; border:1px solid var(--navy); color:var(--navy);
    display:flex; align-items:center; justify-content:center; font-size:22px; transition: background .3s, color .3s; }
  .contact-band a:hover .go{ background:var(--navy); color:#fff; }

  /* フッター（footer.php）：紺地・ロゴと住所＋3列のメニュー */
  .ft{ position:relative; background:#001b45; color:#c9d6ea; padding:72px 0 40px; font-size:14px; line-height:1.8; }
  .ft a{ color:inherit; text-decoration:none; }
  .ft ul{ list-style:none; margin:0; padding:0; }
  .ft p{ margin:0; }
  .ft__in{ max-width:1200px; margin:0 auto; padding:0 clamp(20px,5vw,64px); }
  .ft__grid{ display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:48px; }
  .ft__logo img{ height:52px; width:auto; display:block; }
  .ft__addr{ margin-top:24px; line-height:2; }
  .ft__nav{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
  .ft__nav h4{ margin:0 0 14px; color:#fff; font-size:14px; font-weight:700; letter-spacing:.08em; }
  .ft__nav h4.is-sp{ margin-top:32px; }
  .ft__nav li{ margin-top:10px; }
  .ft__nav li a{ display:block; line-height:1.5; }
  .ft__nav li a span{ display:block; margin-top:2px; font-size:12px; color:#8fa6c8; }
  .ft__nav a:hover, .ft__bottom a:hover{ color:#fff; text-decoration:underline; }
  .ft__bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-top:64px; padding-top:28px;
    border-top:1px solid rgba(255,255,255,.14); font-size:12px; }
  .ft__bottom ul{ display:flex; flex-wrap:wrap; gap:8px 24px; }
  @media(max-width:900px){ .ft__grid{ grid-template-columns:1fr; } }
  @media(max-width:640px){ .ft__nav{ grid-template-columns:1fr 1fr; } }

  .to-top{ position:fixed; right:24px; bottom:24px; z-index:70; width:44px; height:44px;
    background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center;
    opacity:0; pointer-events:none; transition:opacity .3s; }
  .to-top.show{ opacity:1; pointer-events:auto; }

  @media(prefers-reduced-motion: reduce){
    *{ animation-duration:.001s !important; animation-iteration-count:1 !important; }
    .split span{ opacity:1 !important; transform:none !important; }
  }

/* ============================================================
   9. 下層ページ共通（パンくず・本文・会社概要テーブル）
   ※ ページタイトルは 41（template-parts/page-hero.php）
   ============================================================ */
  .breadcrumb{ margin-bottom:34px; }
  .breadcrumb ol{ display:flex; flex-wrap:wrap; align-items:center; gap:10px;
    padding:0; margin:0; font-size:11px; letter-spacing:.06em; color:var(--sub); }
  .breadcrumb li{ display:flex; align-items:center; gap:10px; }
  .breadcrumb li+li::before{ content:'\203A'; color:var(--frame); font-size:12px; line-height:1; }
  .breadcrumb a{ color:var(--sub); transition: color .2s; }
  .breadcrumb a:hover{ color:var(--blue); }
  .breadcrumb [aria-current]{ color:var(--navy); }

  .entry{ max-width:860px; margin:0 auto; padding:110px 6%; }
  .entry-wide{ max-width:1240px; }
  .entry h2{ font-size:clamp(20px,2.4vw,28px); color:var(--navy); font-weight:700; line-height:1.75;
    margin:64px 0 28px; }
  .entry h2:first-child{ margin-top:0; }
  .entry h3{ font-size:17px; color:var(--navy); font-weight:700; line-height:1.8; margin:40px 0 16px; }
  .entry p{ font-size:16px; line-height:2.15; color:var(--ink); margin-bottom:22px; }
  .entry ul, .entry ol{ margin:0 0 26px; padding-left:0; }
  .entry ul li{ position:relative; padding-left:20px; font-size:14px; line-height:2; color:var(--ink); }
  .entry ul li::before{ content:''; position:absolute; left:0; top:14px; width:8px; height:1px; background:var(--orange); }
  .entry ol{ counter-reset:n; }
  .entry ol li{ counter-increment:n; position:relative; padding-left:30px; font-size:14px; line-height:2; }
  .entry ol li::before{ content:counter(n,decimal-leading-zero); position:absolute; left:0;
    font-size:11px; color:var(--blue); font-weight:700; top:6px; letter-spacing:.06em; }
  .entry a{ color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
  .entry img{ margin:26px 0; }
  .entry table{ width:100%; border-collapse:collapse; margin:26px 0; font-size:13.5px; }
  .entry th, .entry td{ border:1px solid var(--line); padding:14px 16px; text-align:left; vertical-align:top; }
  .entry th{ background:var(--ice); color:var(--navy); font-weight:700; width:30%; }
  .entry blockquote{ border-left:2px solid var(--blue); padding:6px 0 6px 22px; margin:26px 0;
    color:var(--sub); font-size:14px; line-height:2.1; }

  /* 会社概要テーブル */
  .info-table{ border-top:1px solid var(--line); }
  .info-row{ display:grid; grid-template-columns:180px 1fr; padding:22px 0;
    border-bottom:1px solid var(--line); font-size:14px; }
  .info-row .k{ color:var(--sub); display:flex; align-items:center; gap:9px; }
  .info-row .k .ic{ color:var(--blue); }
  .info-row .v{ color:var(--ink); line-height:1.9; }
  @media(max-width:640px){ .info-row{ grid-template-columns:1fr; gap:6px; } }

/* ============================================================
   11. 実績 / ホワイトペーパー
   ============================================================ */
  .card-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .p-card{ border:1px solid var(--line); background:var(--paper); display:flex; flex-direction:column;
    transition: transform .35s ease, border-color .35s ease; }
  .p-card:hover{ transform:translateY(-4px); border-color:var(--navy); }
  .p-card .thumb{ aspect-ratio:16/10; background:var(--ice); border-bottom:1px solid var(--line);
    display:flex; align-items:center; justify-content:center; overflow:hidden; }
  .p-card .thumb img{ width:100%; height:100%; object-fit:cover; }
  .p-card .thumb .ph{ font-size:10px; letter-spacing:.2em; color:var(--sub); }
  .p-card .body{ padding:24px 22px 26px; display:flex; flex-direction:column; gap:12px; flex-grow:1; }
  .p-card .meta{ display:flex; gap:10px; align-items:center; font-size:11px; color:var(--sub); }
  .p-card .cat{ border:1px solid var(--frame); color:var(--blue); padding:4px 9px; letter-spacing:.06em; }
  .p-card h2, .p-card h3{ font-size:15px; color:var(--navy); font-weight:700; line-height:1.75; }
  .p-card .ex{ font-size:12.5px; color:var(--sub); line-height:1.9; }
  .p-card .go{ margin-top:auto; font-size:12px; color:var(--blue); font-weight:600; }
  @media(max-width:900px){ .card-grid{ grid-template-columns:1fr 1fr; } }
  @media(max-width:600px){ .card-grid{ grid-template-columns:1fr; } }

  .pagination{ display:flex; justify-content:center; gap:8px; margin-top:56px; flex-wrap:wrap; }
  .pagination .page-numbers{ min-width:42px; height:42px; display:inline-flex; align-items:center;
    justify-content:center; border:1px solid var(--line); font-size:13px; color:var(--ink); padding:0 12px; }
  .pagination .page-numbers:hover{ border-color:var(--navy); }
  .pagination .current{ background:var(--navy); color:#fff; border-color:var(--navy); }

/* ============================================================
   12. FAQ
   ============================================================ */
  .faq-list{ border-top:1px solid var(--line); }
  .faq-item{ border-bottom:1px solid var(--line); }
  .faq-q{ width:100%; text-align:left; display:flex; gap:18px; align-items:flex-start;
    padding:26px 8px; font-size:15px; color:var(--navy); font-weight:700; line-height:1.8; }
  .faq-q .mark{ color:var(--orange-ink); font-size:13px; letter-spacing:.06em; flex-shrink:0; padding-top:3px; }
  .faq-q .sign{ margin-left:auto; width:16px; height:16px; position:relative; flex-shrink:0; margin-top:6px; }
  .faq-q .sign::before, .faq-q .sign::after{ content:''; position:absolute; background:var(--blue);
    left:0; top:7px; width:16px; height:2px; transition: transform .3s ease; }
  .faq-q .sign::after{ transform:rotate(90deg); }
  .faq-item.open .sign::after{ transform:rotate(0deg); }
  .faq-a{ display:none; padding:0 8px 30px 46px; font-size:14px; line-height:2.1; color:var(--sub); }
  .faq-item.open .faq-a{ display:block; }

/* ============================================================
   14. 印刷・その他
   ============================================================ */
  .screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  @media print{
    header, footer, .to-top{ display:none !important; }
    body{ color:#000; }
  }

/* ============================================================
   15. 代表紹介ブロック
   ============================================================ */
  .member{ display:grid; grid-template-columns:minmax(0,1fr) 1fr; gap:64px; align-items:center; margin-bottom:20px; }
  .member-photo{ aspect-ratio:4/5; position:relative; overflow:hidden; }
  .member-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
  .member .quote{ font-size:15px; color:var(--sub); line-height:2.1;
    border-left:2px solid var(--blue); padding-left:22px; margin:0 0 26px; }
  .member .name{ font-size:16px; color:var(--navy); font-weight:700; }
  .member .role{ font-size:12.5px; color:var(--sub); margin-top:6px; }
  @media(max-width:820px){ .member{ grid-template-columns:1fr; gap:32px; } }

/* ============================================================
   16. 資料ダウンロード（whitepaper）
   ============================================================ */
  .tax-filter{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:40px; }
  .tax-filter a{ font-size:12.5px; color:var(--sub); border:1px solid var(--line);
    padding:9px 18px; transition: border-color .25s, color .25s, background .25s; }
  .tax-filter a:hover{ border-color:var(--navy); color:var(--navy); }
  .tax-filter a.is-current{ background:var(--navy); border-color:var(--navy); color:#fff; }

  .wp-single{ padding:90px 6% 70px; }
  .wp-single-inner{ max-width:1240px; margin:0 auto; display:grid;
    grid-template-columns:1fr 400px; gap:60px; align-items:start; }
  .wp-slider{ position:relative; border:1px solid var(--line); background:var(--ice); }
  .wp-slide{ display:none; }
  .wp-slide.is-active{ display:block; }
  .wp-slide img{ width:100%; height:auto; }
  .wp-slider-dots{ display:flex; gap:8px; justify-content:center; padding:16px 0;
    border-top:1px solid var(--line); background:var(--paper); }
  .wp-dot{ width:8px; height:8px; border-radius:50%; background:var(--frame); padding:0; }
  .wp-dot.is-active{ background:var(--blue); }
  .wp-single-info{ margin-top:40px; }
  .wp-cats{ display:flex; flex-wrap:wrap; gap:8px; }
  .wp-cats .cat{ font-size:11px; color:var(--blue); border:1px solid var(--frame); padding:5px 11px; }
  .wp-date{ display:block; margin-top:16px; font-size:12px; color:var(--sub); letter-spacing:.06em; }

  .wp-single-right{ position:sticky; top:110px; }
  .wp-form-box{ border:1px solid var(--line); background:var(--paper); padding:32px 30px 34px; }
  .wp-form-title{ display:flex; align-items:center; gap:10px; font-size:17px; color:var(--navy);
    font-weight:700; letter-spacing:.06em; padding-bottom:20px; border-bottom:1px solid var(--line); }
  .wp-form-desc{ margin:22px 0 24px; font-size:12.5px; line-height:1.95; color:var(--sub); }
  .wp-field{ margin-bottom:18px; }
  .wp-field label{ display:flex; align-items:center; gap:9px; font-size:12.5px;
    color:var(--navy); font-weight:700; margin-bottom:9px; }
  .wp-field .req{ font-size:0; background:none; padding:0; border:none; line-height:1; }
  .wp-field .req::before{ content:'*'; font-size:22px; color:var(--orange);
    line-height:1; position:relative; top:4px; }
  .wp-field .opt{ font-size:0; background:none; padding:0; border:none; }
  .wp-field input{ width:100%; border:1px solid var(--frame); background:var(--paper);
    padding:13px 15px; font-family:inherit; font-size:14px; color:var(--ink); }
  .wp-field input:focus{ outline:2px solid var(--blue); outline-offset:1px; }
  .wp-form-btn{ width:100%; justify-content:center; text-align:center; margin-top:10px; border:none; cursor:pointer; }
  .wp-form-note{ margin-top:20px; font-size:10.5px; line-height:1.95; color:var(--sub); }
  .wp-form-note a{ color:var(--blue); text-decoration:underline; }
  @media(max-width:980px){
    .wp-single-inner{ grid-template-columns:1fr; gap:44px; }
    .wp-single-right{ position:static; }
  }

/* ============================================================
   17. 発信・関連サイト（代表紹介）
   ============================================================ */
  .connect-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:8px; }
  .connect-card{ border:1px solid var(--line); background:var(--paper); padding:30px 26px 28px;
    display:flex; flex-direction:column; position:relative; overflow:hidden;
    transition: transform .35s ease, border-color .35s ease; }
  .connect-card::before{ content:''; position:absolute; top:0; left:0; right:0; height:3px;
    background:var(--blue); transform:scaleX(0); transform-origin:left; transition: transform .4s ease; }
  a.connect-card:hover{ transform:translateY(-4px); border-color:var(--navy); }
  a.connect-card:hover::before{ transform:scaleX(1); }
  .connect-card.is-static{ background:var(--ice); }
  .connect-label{ font-size:11px; letter-spacing:.22em; color:var(--orange-ink); font-weight:700; }
  .connect-card h3{ font-size:17px; color:var(--navy); font-weight:700; line-height:1.7; margin:14px 0 0; }
  .connect-card p{ font-size:13px; line-height:1.95; color:var(--sub); margin:14px 0 0; flex-grow:1; }
  .connect-go{ margin-top:22px; font-size:12.5px; color:var(--blue); font-weight:600; letter-spacing:.04em; }
  .connect-sns{ display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; }
  .connect-sns a{ font-size:12.5px; color:var(--navy); border:1px solid var(--frame);
    background:var(--paper); padding:9px 16px; letter-spacing:.04em;
    transition: border-color .25s, background .25s, color .25s; }
  .connect-sns a:hover{ border-color:var(--navy); background:var(--navy); color:#fff; }
  @media(max-width:900px){ .connect-grid{ grid-template-columns:1fr; } }

/* ============================================================
   18. Contact Form 7（入力欄・送信ボタン・エラー表示の共通）
   ============================================================ */
  .wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel],
  .wpcf7 textarea, .wpcf7 select{
    width:100%; border:1px solid var(--frame); background:var(--paper);
    padding:14px 16px; font-family:inherit; font-size:14px; color:var(--ink); }
  .wpcf7 textarea{ min-height:190px; resize:vertical; }
  .wpcf7 input:focus, .wpcf7 textarea:focus, .wpcf7 select:focus{
    outline:2px solid var(--blue); outline-offset:1px; }
  .wpcf7 ::placeholder{ color:#9AA7B8; }
  .wpcf7 input[type=submit], .wpcf7 button[type=submit]{
    display:block; margin:44px auto 0; border:none; cursor:pointer;
    background:var(--orange); color:#fff; padding:17px 48px;
    font-family:inherit; font-size:14px; font-weight:700; letter-spacing:.06em;
    transition: background .2s, transform .2s; }
  .wpcf7 input[type=submit]:hover{
    background:var(--orange-deep); transform:translateY(-2px); }
  .wpcf7 .recaptcha{ text-align:center; margin-top:20px; font-size:11px; color:var(--sub); }
  .wpcf7-not-valid-tip{ font-size:12px; color:#C0392B; margin-top:8px; display:block; }
  .wpcf7-response-output{ border:1px solid var(--line) !important; background:var(--ice);
    padding:16px 20px !important; margin:30px 0 0 !important; font-size:13px; }
  .wpcf7-spinner{ margin:14px auto 0; display:block; }

/* ============================================================
   19. カード内リンクの下線を打ち消す
   ============================================================ */
  .entry .p-card, .entry .p-card a,
  .entry .tax-filter a,
  .entry .connect-card, .entry .connect-card a,
  .entry .link{ text-decoration:none; }

/* ============================================================
   22. メンバー紹介
     一覧 /member/          … 写真・所属・名前
     個別 /member/スラッグ/ … 写真・所属・名前・自己紹介文
   ============================================================ */
  /* ---------- 一覧 ---------- */
  .mbl{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:56px 32px; }
  .entry .mbl-card{ display:block; color:inherit; text-decoration:none; }
  .mbl-photo{ position:relative; aspect-ratio:4/5; background:var(--ice); overflow:hidden; }
  /* マウスを乗せると、写真のうしろに淡い青の面が少しずれて現れる（ずらす量10px＜カードの間32pxなので隣と重ならない） */
  .mbl-photo-wrap{ position:relative; }
  .mbl-photo-wrap::before{ content:""; position:absolute; inset:0; z-index:0; background:#d6e4f5; transform:translate(0,0); transition:transform .45s cubic-bezier(.2,.8,.2,1); }
  .mbl-photo-wrap .mbl-photo{ z-index:1; transition:transform .45s cubic-bezier(.2,.8,.2,1); }
  .mbl-card:is(:hover,:focus-visible) .mbl-photo-wrap::before{ transform:translate(10px,10px); }
  .mbl-card:is(:hover,:focus-visible) .mbl-photo-wrap .mbl-photo{ transform:translate(-4px,-4px); }
  @media (hover:none){ .mbl-photo-wrap::before{ display:none; } .mbl-card .mbl-photo-wrap .mbl-photo{ transform:none !important; } }
  @media (prefers-reduced-motion:reduce){ .mbl-photo-wrap::before, .mbl-photo-wrap .mbl-photo{ transition:none; } }
  /* カードの出方：画面に入ると下からふわっと（JSが動くときだけ .is-anim が付く） */
  .mbl.is-anim .mbl-card{ opacity:0; transform:translateY(22px); }
  .mbl.is-anim .mbl-card.is-in{ animation:mblIn .7s cubic-bezier(.2,.8,.2,1) forwards; }
  @keyframes mblIn{ to{ opacity:1; transform:none; } }
  .entry .mbl-photo img{ width:100%; height:100%; object-fit:cover; margin:0; }
  /* ---------- 肩書き：「 / 」「・」の区切りごとのまとまり（.rl）で改行する ---------- */
  .mbl-role .rl, .mbd-role .rl{ display:inline-block; max-width:100%; word-break:auto-phrase; overflow-wrap:anywhere; }   /* まとまりの途中では改行しない（長すぎるときは言葉の区切りで、それでも収まらなければ途中で） */
  .entry .mbl-role{ flex-wrap:wrap; column-gap:.3em; align-content:flex-start; }   /* カードの肩書きは横並び（flex）なので、まとまりごとに折り返す */
  /* 肩書きの補足（role_sub）：オレンジの肩書きの下に、同じオレンジで小さく */
  .entry .mbl-role .rl-sub{ flex-basis:100%; min-width:0; margin-top:2px; font-size:11px; font-weight:700; line-height:1.6; letter-spacing:.02em; color:var(--orange-ink); word-break:auto-phrase; overflow-wrap:anywhere; }   /* 上の肩書きと同じオレンジ・同じ太さ（文字は小さめ） */
  /* 個別ページ：肩書きが複数ある人（roles）は1行ずつ。左に細い線を付けてまとまりに見せる */
  .mbd-roles{ list-style:none; margin:0; padding:2px 0 2px 14px; border-left:2px solid var(--orange); display:grid; gap:4px; }
  .mbd-roles li{ margin:0; padding:0; font-size:14px; font-weight:700; line-height:1.6; color:var(--orange-ink); letter-spacing:.04em; }
  .mbd-roles li::before{ content:none; }

  /* ---------- 一覧：分野で絞り込むボタン・カードの分野 ---------- */
  .entry .mbl-filter{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 40px; }
  .entry .mbl-filter button{ font:inherit; font-size:13px; font-weight:700; line-height:1.4; letter-spacing:.04em; padding:9px 18px;
    border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--ink); cursor:pointer; transition:background-color .2s, border-color .2s, color .2s; }
  .entry .mbl-filter button:hover{ border-color:var(--blue); color:var(--blue); }
  .entry .mbl-filter button.is-on{ background:var(--blue); border-color:var(--blue); color:#fff; }
  .entry .mbl-filter button:focus-visible{ outline:2px solid var(--blue); outline-offset:3px; }
  .entry .mbl-count{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }  /* 読み上げ用（画面には出さない） */
  .entry .mbl-field{ margin:8px 0 0; display:flex; flex-wrap:wrap; gap:2px 14px; font-size:11px; font-weight:700; line-height:1.6; color:var(--blue); }
  .entry .mbl-field span::before{ content:""; display:inline-block; width:8px; height:8px; margin-right:6px; border-radius:50%; background:var(--orange); vertical-align:1px; }   /* 分野ごとにオレンジの点 */
  .entry .mbl-card[hidden]{ display:none; }   /* 絞り込みで隠したカード */
  @media(max-width:760px){
    .entry .mbl-filter{ margin-bottom:28px; gap:6px; }
    .entry .mbl-filter button{ padding:8px 14px; font-size:12px; }
  }

  /* ---------- 一覧の集合写真（本文と同じ幅） ---------- */
  .mbl-group{ position:relative; margin-top:44px; }
  .mbl-group__band{ max-width:1240px; margin:0 auto; padding:0 6%; box-sizing:content-box; }   /* 横幅・左右の余白はタイトル・一覧と同じ */
  .mbl-group__inner{ position:relative; }
  .mbl-group__img{ position:relative; z-index:1; display:block; width:100%; height:auto; aspect-ratio:2560/1070; object-fit:cover; object-position:50% 20%; background:#e8eceb; }   /* 写真は頭の上に余白・膝の上までに切り抜き済み（2560×1070）。写真そのままの比率で表示（20% は古い写真が残っていたときに同じ範囲を見せるため） */
  /* 集合写真の下から一覧を始める */
  .mbl-group + .entry{ box-sizing:content-box; max-width:1240px; padding:56px 6% 110px; }
  @media(max-width:760px){
    .mbl-group{ margin-top:32px; }
    .mbl-group + .entry{ padding:40px 6% 88px; }
  }

  /* マウスを乗せたときの動き
     ・2枚目の写真がある人（.has-swap）はふわっと切り替え、ない人は写真が少しだけ寄る（写真の上の装飾はなし） */
  .entry .mbl-photo img.is-main{ transition:transform .8s ease; }
  .entry .mbl-photo img.is-hover{ position:absolute; inset:0; opacity:0; transition:opacity .5s ease; }
  .entry .mbl-photo img.is-hover:not([src]){ visibility:hidden; }  /* 読み込む前は何も出さない */
  .mbl-card.has-swap:is(:hover,:focus-visible) .mbl-photo img.is-hover{ opacity:1; }
  .mbl-card.is-photo:not(.has-swap):is(:hover,:focus-visible) .mbl-photo img.is-main{ transform:scale(1.04); }
  @media (hover:none){ .entry .mbl-photo img.is-hover{ display:none; } }  /* スマホなど：1枚目だけ */
  @media (prefers-reduced-motion:reduce){ .entry .mbl-photo img.is-main, .entry .mbl-photo img.is-hover{ transition:none; } }
  .mbl-initial, .mbd-initial{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    font-weight:700; color:var(--frame); line-height:1; }
  .mbl-initial{ font-size:64px; }
  .entry .mbl-role{ margin:16px 0 0; min-height:3.4em; display:flex; align-items:flex-start;
    font-size:12.5px; font-weight:700; line-height:1.7; color:var(--orange-ink); letter-spacing:.04em; }
  .entry .mbl-name{ margin:4px 0 0; display:flex; align-items:center; justify-content:space-between; gap:12px;
    font-size:19px; font-weight:700; color:#3A3D42; line-height:1.5; letter-spacing:.08em; transition:color .2s; }
  .mbl-name .go{ font-size:14px; color:var(--blue); transition:transform .25s; }
  .mbl-card:hover .mbl-name{ color:var(--blue); }
  .mbl-card:hover .mbl-name .go{ transform:translateX(4px); }
  .mbl-card:focus-visible{ outline-offset:6px; }
  /* 所属の行数が違っても、同じ段の所属・名前の位置をそろえる */
  @supports (grid-template-rows: subgrid){
    .entry .mbl-card{ display:grid; grid-row:span 4; grid-template-rows:subgrid; row-gap:0; }   /* 写真・肩書・名前・分野の4段（横の行で高さをそろえる） */
    .entry .mbl-role{ min-height:0; align-self:start; }
    .entry .mbl-name{ align-self:start; }
    .entry .mbl-field{ align-self:start; }
  }
  @media(max-width:700px){
    .mbl{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 16px; }
    .mbl-initial{ font-size:44px; }
    .entry .mbl-name{ font-size:16px; }
  }

  /* ---------- 個別 ---------- */
  .mbd{ padding:150px 6% 120px; }
  .mbd-inner{ max-width:1240px; margin:0 auto; }
  .mbd-grid{ position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:72px; align-items:start; }
  /* 案C：写真のうしろに淡い青の面を少しずらして重ねる（写真ごとスクロールに付いてくる） */
  .mbd-ph{ position:sticky; top:120px; margin:0 24px 24px 0; }
  .mbd-ph::before{ content:""; position:absolute; inset:0; transform:translate(24px,24px); background:#d6e4f5; }
  .mbd-photo{ position:relative; aspect-ratio:4/5; background:var(--ice); overflow:hidden; }
  .mbd-body{ padding-top:48px; }
  /* 背景の大きな輪：トップページのファーストビューと同じ（太い淡い輪が、ページの上・右・下の壁にぶつかって切れて見える）
 */
  .mbd{ position:relative; overflow:hidden; }
  .mbd-inner{ position:relative; z-index:1; }
  .mbd .pg-crumb{ position:relative; z-index:2; }   /* パンくずは輪より前に */

  /* 名前の下の分野タグ */
  .mbd-fields{ display:flex; flex-wrap:wrap; gap:6px; margin-top:18px; }
  .mbd-fields span{ font-size:12px; font-weight:700; line-height:1.5; letter-spacing:.04em; padding:4px 12px; border-radius:999px; background:#fff; border:1px solid #a8caef; color:var(--blue); }
  .mbd-fields span::before{ content:""; display:inline-block; width:7px; height:7px; margin-right:6px; border-radius:50%; background:var(--orange); vertical-align:1px; }
  .mbd-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
  /* 個別ページ：写真にマウスを乗せると2枚目（photo_hover）にふわっと切り替える */
  .mbd-photo img.is-hover{ position:absolute; inset:0; opacity:0; transition:opacity .5s ease; }
  .mbd-photo.has-swap:hover img.is-hover{ opacity:1; }
  @media (hover:none){ .mbd-photo img.is-hover{ display:none; } }   /* スマホなど：1枚目だけ（2枚目は読み込まない） */
  @media (prefers-reduced-motion:reduce){ .mbd-photo img.is-hover{ transition:none; } }
  .mbd-initial{ font-size:120px; }
  .mbd-role{ font-size:14px; font-weight:700; line-height:1.8; color:var(--orange-ink); letter-spacing:.04em; }
  .mbd-name{ margin-top:8px; font-size:clamp(30px,3.6vw,46px); font-weight:700; color:#3A3D42;
    line-height:1.4; letter-spacing:.1em; }
  .mbd-text{ margin-top:48px; padding-top:40px; border-top:1px solid var(--line); }   /* ローマ字を名前の下の小さな文字にしたので、間を少し詰めた（以前は80px） */
  .mbd-text p{ max-width:36em; font-size:16px; line-height:2.15; color:var(--ink); }
  .mbd-text p + p{ margin-top:1.2em; }
  .mbd-sec{ margin-top:56px; }
  .mbd-sec h2{ margin-bottom:12px; font-size:15px; font-weight:700; color:var(--navy); letter-spacing:.08em; line-height:1.6; }
  .mbd-career div{ display:grid; grid-template-columns:120px minmax(0,1fr); gap:20px; padding:10px 0; }
  .mbd-career dt{ font-size:13px; line-height:1.9; color:var(--sub); letter-spacing:.04em; }
  .mbd-career dd{ font-size:15px; line-height:1.9; color:var(--ink); }
  .mbd-quals{ display:flex; flex-wrap:wrap; gap:8px; }
  .mbd-quals li{ font-size:13px; line-height:1.7; color:var(--ink); border:1px solid var(--frame); padding:5px 14px; }
  /* 個別ページの下：前後のメンバー（写真付きの小さなカード） */
  .mbd-nav{ margin-top:96px; }
  .mbd-pn{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .mbd-pn__card{ display:flex; align-items:center; gap:16px; padding:14px; border:1px solid var(--line); border-radius:12px; background:#fff;
    color:inherit; text-decoration:none; transition:border-color .25s, transform .25s, box-shadow .25s; }
  .mbd-pn__card:hover{ border-color:#a8caef; transform:translateY(-3px); box-shadow:0 10px 24px -14px rgba(0,56,133,.35); }
  .mbd-pn__card.is-next{ flex-direction:row-reverse; text-align:right; }
  .mbd-pn__ph{ position:relative; flex:none; width:84px; aspect-ratio:4/5; border-radius:8px; overflow:hidden; background:var(--ice); }
  .mbd-pn__ph img{ width:100%; height:100%; object-fit:cover; display:block; }
  .mbd-pn__ini{ position:absolute; inset:0; display:grid; place-items:center; font-size:28px; font-weight:700; color:#c3d4ea; }
  .mbd-pn__tx{ display:flex; flex-direction:column; min-width:0; }
  .mbd-pn__tx small{ font-size:11px; color:var(--sub); letter-spacing:.04em; }
  .mbd-pn__tx b{ font-size:17px; font-weight:700; letter-spacing:.06em; color:#3A3D42; line-height:1.5; transition:color .2s; }
  .mbd-pn__card:hover .mbd-pn__tx b{ color:var(--blue); }
  .mbd-pn__tx > span{ font-size:11px; font-weight:700; line-height:1.6; color:var(--orange-ink); word-break:auto-phrase; overflow-wrap:anywhere; }
  .mbd-nav__back{ display:inline-flex; margin-top:28px; }
  @media(max-width:760px){
    .mbd-pn{ grid-template-columns:1fr; }
    .mbd-pn__card.is-next{ flex-direction:row; text-align:left; }   /* スマホは縦に並ぶので、どちらも左そろえ */
    .mbd-pn__ph{ width:68px; }
  }
  @media(max-width:860px){
    .mbd{ padding:130px 6% 96px; }
    .mbd-grid{ grid-template-columns:1fr; gap:40px; }
    .mbd-ph{ position:relative; top:auto; max-width:320px; margin:0 16px 16px 0; }   /* スマホ・タブレット：写真は付いてこない */
    .mbd-ph::before{ transform:translate(16px,16px); }
    .mbd-body{ padding-top:8px; }
    .mbd-initial{ font-size:88px; }
    .mbd-career div{ grid-template-columns:96px minmax(0,1fr); gap:14px; }
  }

/* ============================================================
   32. 本文見出し（h2）：文字の長さぶんの淡い青マーカー
   ============================================================ */
  .h2-pen{ position:relative; display:inline-block; isolation:isolate; padding:0 .1em; }
  .h2-pen svg{ position:absolute; z-index:-1; left:-.15em; bottom:-.2em;
    width:calc(100% + .3em); height:.75em; overflow:visible; pointer-events:none; }
  .h2-pen path{ fill:none; stroke:#D9E3F0; stroke-width:15; stroke-linecap:round; stroke-linejoin:round;
    stroke-dasharray:1; stroke-dashoffset:1; }
  .is-in > .h2-pen path{ animation:h2PenDraw 1.1s cubic-bezier(.65,0,.35,1) .1s forwards; }
  @keyframes h2PenDraw{ to{ stroke-dashoffset:0; } }
  @media(prefers-reduced-motion: reduce){
    .h2-pen path{ stroke-dashoffset:0; animation:none; }
  }

/* ============================================================
   33. お知らせ（一覧 /news/ ・カテゴリー別一覧・詳細）
   ============================================================ */
  /* 共通：カテゴリーのラベル */
  .nw-cat{ display:inline-block; font-size:11.5px; color:var(--navy); border:1px solid var(--frame); padding:2px 12px;
    line-height:1.7; letter-spacing:.06em; white-space:nowrap; }
  a.nw-cat{ transition:border-color .2s; }
  a.nw-cat:hover{ border-color:var(--navy); }

  /* ---------- 一覧 ---------- */
  .nw-index{ max-width:1240px; box-sizing:content-box; margin:0 auto; padding:0 6% 120px; }
  .nw-filter{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:40px; }
  .nw-filter a{ font-size:13px; color:var(--sub); border:1px solid var(--line); padding:7px 18px; line-height:1.6;
    transition:border-color .2s, color .2s; }
  .nw-filter a:hover{ border-color:var(--navy); color:var(--navy); }
  .nw-filter a.is-current{ background:var(--navy); border-color:var(--navy); color:#fff; }

  .nw-rows{ border-top:1px solid var(--line); }
  .nw-rows li{ border-bottom:1px solid var(--line); }
  .nw-rows a{ display:grid; grid-template-columns:200px minmax(0,1fr) 32px; gap:32px; align-items:start; padding:32px 8px;
    transition:background .25s; }
  .nw-rows a:hover{ background:var(--ice); }
  .nw-rows__meta{ display:flex; flex-direction:column; align-items:flex-start; gap:10px; padding-top:2px; }
  .nw-rows time, .nwd-meta time, .nwd-side__list time{ font-size:13.5px; color:var(--sub); letter-spacing:.08em; }
  .nw-rows__ttl{ display:block; font-size:17px; font-weight:700; color:var(--navy); line-height:1.75; }
  .nw-rows__ex{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
    margin-top:8px; font-size:14px; line-height:1.9; color:var(--sub); }
  .nw-rows__go{ color:var(--blue); font-size:16px; padding-top:2px; transition:transform .25s; }
  .nw-rows a:hover .nw-rows__go{ transform:translateX(4px); }
  .nw-empty{ color:var(--sub); }
  .nw-index .pagination .nav-links{ display:flex; justify-content:center; gap:8px; flex-wrap:wrap; }

  /* ---------- 詳細 ---------- */
  .nwd-crumb{ max-width:1240px; box-sizing:content-box; margin:0 auto; padding:130px 6% 0; }
  .nwd-crumb .breadcrumb{ margin-bottom:0; }
  .nwd-layout{ max-width:1240px; box-sizing:content-box; margin:0 auto; padding:0 6% 120px;
    display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:72px; align-items:start; }
  .nwd-main{ padding-top:40px; min-width:0; }
  .nwd-head{ padding-bottom:36px; border-bottom:1px solid var(--line); }
  .nwd-meta{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
  .nwd-title{ margin-top:18px; font-size:clamp(22px,2.8vw,32px); font-weight:700; color:var(--navy); line-height:1.6; letter-spacing:.06em; }
  .nwd-thumb{ margin:40px 0 0; }
  .nwd-thumb img{ width:100%; height:auto; }
  .entry.nwd-body{ max-width:none; margin:0; padding:48px 0 0; }
  .nwd-foot{ margin-top:64px; padding-top:32px; border-top:1px solid var(--line); }
  .nwd-pn{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
  .nwd-pn a{ display:flex; flex-direction:column; gap:4px; font-size:14px; font-weight:700; color:#3A3D42; line-height:1.7; transition:color .2s; }
  .nwd-pn a span{ font-size:11.5px; font-weight:400; color:var(--sub); letter-spacing:.04em; }
  .nwd-pn a:hover{ color:var(--blue); }
  .nwd-pn .is-next{ grid-column:2; text-align:right; }
  .nwd-back{ margin-top:40px; }

  /* 右側：最新のお知らせ・カテゴリー */
  .nwd-side{ position:sticky; top:110px; padding-top:40px; }
  .nwd-side__ttl{ font-size:13px; font-weight:700; color:var(--navy); letter-spacing:.08em; padding-bottom:12px; border-bottom:2px solid var(--navy); }
  .nwd-side__list{ margin-bottom:40px; }
  .nwd-side__list li{ border-bottom:1px solid var(--line); }
  .nwd-side__list a{ display:flex; flex-direction:column; gap:4px; padding:16px 2px; }
  .nwd-side__list time{ font-size:12px; }
  .nwd-side__list span{ font-size:13.5px; line-height:1.7; color:var(--ink); transition:color .2s; }
  .nwd-side__list a:hover span{ color:var(--navy); }
  .nwd-side__cats{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
  .nwd-side__cats a{ font-size:12.5px; color:var(--sub); border:1px solid var(--line); padding:5px 14px; line-height:1.7;
    transition:border-color .2s, color .2s; }
  .nwd-side__cats a:hover{ border-color:var(--navy); color:var(--navy); }

  @media(max-width:900px){
    .nwd-layout{ grid-template-columns:1fr; gap:0; }
    .nwd-side{ position:static; padding-top:72px; }
  }
  @media(max-width:640px){
    .nw-rows a{ grid-template-columns:minmax(0,1fr); gap:12px; padding:26px 4px; }
    .nw-rows__meta{ flex-direction:row; align-items:center; }
    .nw-rows__go{ display:none; }
    .nwd-crumb{ padding-top:110px; }
    .nwd-pn{ grid-template-columns:1fr; }
    .nwd-pn .is-next{ grid-column:1; text-align:left; }
  }

/* ============================================================
   34. メンバー詳細：名前の下のローマ字
   トップページの英字ラベル（「Our Team」など .tp-en）と同じ書体・大きさ・色（Jost は functions.php で読み込み）
   ============================================================ */
  .nm{ position:relative; display:inline-block; }
  .nm-en{ display:block; margin-top:10px; font-family:'Jost','Futura','Century Gothic',sans-serif; font-size:15px; font-weight:400;
    letter-spacing:.08em; line-height:1.6; color:var(--navy); white-space:nowrap; user-select:none;
    opacity:0; transform:translateY(6px); animation:nmIn .8s ease .3s forwards; }   /* 少し下からふわっと出る */
  @keyframes nmIn{ to{ opacity:1; transform:none; } }
  @media(prefers-reduced-motion: reduce){
    .nm-en{ opacity:1; transform:none; animation:none; }
  }

/* ============================================================
   36. トップページ・共通部分（2026年10月 改訂版）
   ・トップページの各セクションのデザインは assets/css/top.css（トップページだけで読み込む）
   ・ここは .tp の色・見出し（.tp-en 英字ラベル・Jost／.tp-ttl h2・淡い青マーカー）・
     ボタン・写真枠など、トップページと 37・39 で共通に使う部分
   ============================================================ */
  .tp{ --tp-deep:#00265e; --tp-mid:#1d5fbf; --tp-pale:#f2f6fb; --tp-ink:#1b2840; --tp-sub:#5a6a85; --tp-line:#dbe3ee;
    --tp-c:#1e9fd8;      /* コンサルティング事業の色 */
    --tp-hd:100px;       /* 固定ヘッダーの高さ（ファーストビューの上の余白） */
    --tp-en:'Jost','Futura','Century Gothic',sans-serif;   /* 英字（トップページで読み込み） */
    --tp-mark:#d3e2f6;   /* 見出しマーカー（淡い青） */
    color:var(--tp-ink); line-height:1.9; letter-spacing:.04em; }
  @media(max-width:640px){ .tp{ --tp-hd:82px; } }
  .tp p, .tp h1, .tp h2, .tp h3{ margin:0; }
  .tp ul{ list-style:none; margin:0; padding:0; }
  .tp-wrap{ max-width:1200px; margin:0 auto; padding:0 clamp(20px,5vw,64px); }
  .tp-sec{ padding:clamp(88px,11vw,152px) 0; }

  /* ---------- 見出し（共通） ---------- */
  .tp .sec-head{ margin-bottom:clamp(40px,5vw,64px); }

  /* ---------- 見出し（トップページ） ---------- */
  /* 英字ラベル（Jost）＋ h2（文字幅ぶんの淡い青マーカー） */
  .tp .tp-en{ display:block; margin-bottom:14px; font-family:var(--tp-en); font-weight:400; font-size:15px; letter-spacing:.08em; line-height:1.6; color:var(--navy); }
  .tp .tp-ttl{ font-size:clamp(26px,3.2vw,38px); font-weight:700; line-height:1.5; letter-spacing:.04em; color:var(--tp-ink); }
  .tp .tp-ttl span{ background:linear-gradient(transparent 64%, var(--tp-mark) 64%); padding:0 2px;
    -webkit-box-decoration-break:clone; box-decoration-break:clone; }

  /* ---------- 「〜を見る」リンク ---------- */
  .tp .more{ display:inline-flex; align-items:center; gap:12px; font-weight:700; color:var(--navy); font-size:15px; }
  .tp .more i{ width:30px; height:30px; border:1px solid var(--navy); border-radius:50%; display:grid; place-items:center; transition:background-color .2s; }
  .tp .more i svg{ width:12px; height:12px; stroke:var(--navy); transition:stroke .2s; }
  .tp .more:hover i{ background:var(--navy); }
  .tp .more:hover i svg{ stroke:#fff; }

  /* ---------- ボタン ---------- */
  .tp-btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:64px; min-width:260px; padding:0 36px;
    font-weight:700; font-size:16px; letter-spacing:.06em; transition:background-color .2s, color .2s, border-color .2s; }
  .tp-btn svg{ width:18px; height:18px; flex:none; }
  .tp-btn--cta{ background:var(--orange); color:#fff; }
  .tp-btn--cta:hover{ background:var(--orange-deep); }
  .tp-btn--line{ border:1px solid var(--navy); color:var(--navy); background:#fff; }
  .tp-btn--line:hover{ background:var(--navy); color:#fff; }
  .tp-btn--line-w{ border:1px solid rgba(255,255,255,.7); color:#fff; }
  .tp-btn--line-w:hover{ background:#fff; color:var(--navy); }

  /* ---------- 写真の枠（写真がない間は淡い背景） ---------- */
  .tp-ph{ position:relative; overflow:hidden; background:var(--tp-pale); display:grid; place-items:center;
    color:#9fb3cf; font-size:13px; letter-spacing:.1em; }
  .tp-ph::after{ content:''; position:absolute; width:140%; aspect-ratio:1; border-radius:50%; border:1px solid #dde7f4; right:-90%; bottom:-90%; pointer-events:none; }
  .tp-ph img{ position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover; object-position:center 25%; display:block; }

  /* ---------- スマホ ---------- */
  @media (max-width:640px){ .tp-btn{ width:100%; min-width:0; } }

  /* ※ トップページの各セクション（ファーストビュー〜締め）のデザインは assets/css/top.css に移しました */

/* ============================================================
   37. 事業・サービス（/service/）
   page-service.php の <div class="tp sv"> の中だけに効きます。
   ページタイトル（.pg-hero）と h2（.pg-h2）は 41（会社概要と共通）。
   ============================================================ */
  /* h2 の下の余白は、このページでは各ブロックの側でとる */
  .tp.sv .pg-h2{ margin-bottom:0; }
  /* リード＋3事業の図 */
  .sv-intro{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; padding-top:24px; padding-bottom:96px; }
  .tp .sv-intro__lead p{ max-width:34em; margin:0 0 1.2em; font-size:1.06rem; line-height:2; }
  .sv-intro__lead strong{ font-weight:700; color:var(--navy); }
  .sv-rings{ width:100%; max-width:500px; justify-self:center; }
  .sv-rings a{ text-decoration:none; }
  .sv-rings circle{ fill:rgba(0,56,133,.05); stroke:var(--navy); stroke-width:1.5; transition:fill .2s; }
  .sv-rings a:hover circle, .sv-rings a:focus-visible circle{ fill:rgba(0,56,133,.14); }
  .sv-rings a:focus-visible{ outline:none; }
  .sv-rings a:focus-visible circle{ stroke-width:3; }
  .sv-rings text{ fill:var(--navy); text-anchor:middle; font-family:inherit; }
  .sv-rings .r-name{ font-size:19px; font-weight:700; }
  .sv-rings .r-sub{ font-size:12px; fill:var(--tp-sub); }
  .sv-rings circle.r-hub{ fill:var(--navy); stroke:none; }
  .sv-rings .r-icon{ pointer-events:none; }
  .sv-rings .r-icon path[fill="#003885"]{ fill:#fff; }
  .sv-rings .r-icon path[fill="#5185C5"]{ fill:#9FBDE6; }

  /* 事業ごとのセクション */
  .sv-biz{ border-top:1px solid var(--tp-line); padding:80px 0; scroll-margin-top:100px; }
  .sv-biz__head{ display:grid; grid-template-columns:300px 1fr; gap:48px; }
  .tp .sv-biz__desc{ max-width:38em; line-height:2; }
  .tp .sv-biz__entity{ margin-top:18px; font-size:.9rem; color:var(--tp-sub); }

  /* 士業：3分野のリンク */
  .sv-fields{ display:grid; grid-template-columns:repeat(3,1fr); margin:48px 0 0 348px; border-left:1px solid var(--tp-line); }
  .sv-field{ display:flex; flex-direction:column; padding:4px 28px 8px; border-right:1px solid var(--tp-line); }
  .tp .sv-field h3{ font-size:1.2rem; font-weight:700; color:var(--navy); }
  .tp .sv-field__office{ margin:4px 0 14px; font-size:.85rem; color:var(--tp-sub); }
  .tp .sv-field ul{ margin:0 0 20px; font-size:.95rem; line-height:1.75; }
  .sv-field li, .sv-biz__body li{ padding-left:1em; text-indent:-1em; }
  .sv-field li::before, .sv-biz__body li::before{ content:'・'; }
  .sv-field__more{ margin-top:auto; display:inline-flex; align-items:center; gap:.5em; font-size:.92rem; font-weight:700; color:var(--navy); }
  .sv-arrow{ width:22px; height:12px; flex:none; transition:transform .2s; }
  .sv-field:hover .sv-arrow, .sv-field:focus-visible .sv-arrow{ transform:translateX(4px); }
  .sv-field:focus-visible{ outline:2px solid var(--navy); outline-offset:4px; }

  /* 金融・コンサル：1分野型 */
  .sv-biz__body{ margin:40px 0 0 348px; display:flex; justify-content:space-between; align-items:flex-end; gap:32px; flex-wrap:wrap; }
  .tp .sv-biz__body ul{ display:grid; grid-template-columns:repeat(2,minmax(0,auto)); gap:6px 40px; font-size:.98rem; }
  .tp .sv-biz__note{ margin:14px 0 0 348px; font-size:.85rem; color:var(--tp-sub); }
  .sv-biz__note a{ color:var(--navy); text-decoration:underline; text-underline-offset:3px; }

  /* ボタン */
  .sv-btn-line{ display:inline-flex; align-items:center; gap:14px; padding:14px 26px; border:1.5px solid var(--navy); border-radius:999px;
    color:var(--navy); font-weight:700; white-space:nowrap; transition:background .2s, color .2s; }
  .sv-btn-line:hover, .sv-btn-line:focus-visible{ background:var(--navy); color:#fff; }
  .sv-btn-main{ display:inline-flex; align-items:center; gap:14px; padding:18px 40px; border-radius:999px;
    background:var(--orange); color:#fff; font-weight:700; transition:background .2s; }
  .sv-btn-main:hover, .sv-btn-main:focus-visible{ background:var(--orange-deep); }

  /* 連携の例（青背景） */
  .sv-cross{ position:relative; overflow:hidden; background:var(--navy); color:#fff; padding:96px 0; }
  .sv-cross::after{ content:''; position:absolute; right:-180px; top:-180px; width:520px; height:520px;
    border:1.5px solid rgba(255,255,255,.14); border-radius:50%; pointer-events:none; }
  .tp .sv-cross .pg-h2{ color:#fff; }
  .tp .sv-cross .pg-h2 span{ background-image:linear-gradient(rgba(255,255,255,.24),rgba(255,255,255,.24)); }
  .tp .sv-cross__lead{ margin:28px 0 48px; max-width:40em; color:rgba(255,255,255,.86); }
  .sv-cases{ position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
  .sv-case{ border-top:1px solid rgba(255,255,255,.35); padding-top:22px; }
  .tp .sv-case h3{ margin:0 0 14px; font-size:1.15rem; font-weight:700; }
  .sv-case dl{ margin:0; font-size:.92rem; line-height:1.7; }
  .sv-case dl > div{ display:grid; grid-template-columns:7.5em 1fr; padding:6px 0; border-bottom:1px dashed rgba(255,255,255,.2); }
  .sv-case dt{ color:#a9c4ea; }
  .sv-case dd{ margin:0; }

  /* ご相談の窓口 */
  .sv-cta{ padding:96px 0 120px; text-align:center; }
  .tp .sv-cta p{ margin:20px auto 36px; max-width:32em; color:var(--tp-sub); }
  .sv-cta__btns{ display:flex; justify-content:center; gap:16px; flex-wrap:wrap; }

  @media (max-width:960px){
    .sv-intro{ grid-template-columns:1fr; gap:40px; }
    .sv-biz__head{ grid-template-columns:1fr; gap:20px; }
    .sv-fields, .sv-biz__body, .tp .sv-biz__note{ margin-left:0; }
    .sv-cases{ grid-template-columns:1fr; gap:20px; }
  }
  @media (max-width:680px){
    .sv-intro{ padding-bottom:64px; }
    .sv-biz{ padding:56px 0; }
    .sv-fields{ grid-template-columns:1fr; border-left:0; margin-top:32px; }
    .sv-field{ border-right:0; border-top:1px solid var(--tp-line); padding:22px 0; }
    .tp .sv-biz__body ul{ grid-template-columns:1fr; }
    .sv-biz__body{ flex-direction:column; align-items:flex-start; }
    .sv-cross{ padding:64px 0; }
    .sv-case dl > div{ grid-template-columns:6.5em 1fr; }
    .sv-cta{ padding:64px 0 88px; }
  }
  @media (prefers-reduced-motion:reduce){
    .sv-arrow, .sv-rings circle, .sv-btn-line, .sv-btn-main{ transition:none; }
  }
/* ============================================================
   38. お問い合わせ（/inquiry/）
   page-inquiry.php の <div class="iq"> の中だけに効きます。
   フォントはサイト共通のまま。
   ============================================================ */

  /* お問い合わせページだけ、ヘッダーを常に白背景に（上の青帯と重なるため） */
  body.is-inquiry header{ background:rgba(255,255,255,0.94); backdrop-filter:blur(8px);
    border-bottom-color:var(--line); padding:14px 4%; }
  /* フッター手前のお問い合わせ帯は、このページでは不要 */
  body.is-inquiry .contact-band{ display:none; }

  .iq{ --iq-hd:89px; --iq-line:#d4d4d4; --iq-loop:#cad9ef; --iq-err:#d32f2f;
    padding-top:var(--iq-hd); font-size:16px; line-height:1.8; letter-spacing:normal; color:var(--ink); }
  @media(max-width:640px){ .iq{ --iq-hd:71px; } }
  .iq a{ color:var(--blue); }

  /* ---------- 上：窓口の図（青帯） ---------- */
  .iq-visual{ position:relative; display:flex; flex-direction:column; padding:24px 6% 64px;
    background:var(--blue); color:#fff; overflow:hidden; }
  .iq-visual > *{ position:relative; z-index:1; }
  .iq-visual .iq-deco{ position:absolute; z-index:0; right:-8%; bottom:-45%; width:min(95%,880px); pointer-events:none; }
  .iq-visual .iq-deco path{ fill:none; stroke:#fff; stroke-opacity:.07; stroke-width:46; stroke-linecap:round; }

  /* ページタイトル（パンくず・h1）は、ほかのページと同じ共通のデザイン（41）。
     .iq は上に固定ヘッダーぶんの余白（--iq-hd）を持つので、その分を引いて同じ位置にする */
  .iq .pg-top .pg-hero{ padding-top:calc(160px - var(--iq-hd)); padding-bottom:24px; }
  .iq .pg-top{ letter-spacing:.07em; line-height:2; }  /* 文字の間隔もほかのページと同じに（.iq は letter-spacing:normal のため） */
  /* お問い合わせだけ、タイトル部分の背景もすぐ下の窓口の図と同じ青に（青い帯がタイトルから続く） */
  .iq .pg-top{ background:var(--blue); color:#fff; }
  .iq .pg-top .pg-crumb{ color:rgba(255,255,255,.75); }
  .iq .pg-top .pg-crumb a{ color:#fff; }
  .iq .pg-top .pg-crumb a:hover{ color:#fff; text-decoration:underline; }
  .iq .pg-top .pg-title{ color:#fff; }
  .iq .pg-top .pg-title-loop path{ stroke:rgba(202,217,239,.5); }
  @media(max-width:760px){ .iq .pg-top .pg-hero{ padding-top:calc(120px - var(--iq-hd)); } }
  @keyframes iqDraw{ to{ stroke-dashoffset:0; } }

  .iq-mapwrap{ width:100%; max-width:760px; margin:8px auto 0; }
  .iq-map{ display:block; width:100%; overflow:visible; font-family:inherit; letter-spacing:normal; }
  .iq-map .iq-ring{ fill:none; stroke:var(--iq-loop); stroke-opacity:.35; stroke-width:16; stroke-linecap:round;
    stroke-dasharray:1; stroke-dashoffset:1; animation:iqDraw 1.8s .5s cubic-bezier(.55,.1,.25,1) forwards; }
  .iq-map .iq-ring-fill{ fill:none; stroke:var(--orange); stroke-width:5; stroke-linecap:round;
    stroke-dasharray:1; stroke-dashoffset:1; transition:stroke-dashoffset .6s cubic-bezier(.4,.1,.2,1); }
  .iq-map .iq-link{ fill:none; stroke:var(--orange); stroke-width:3; stroke-linecap:round; stroke-dasharray:1; stroke-dashoffset:1; }
  .iq-map .iq-link.is-draw{ transition:stroke-dashoffset .6s cubic-bezier(.55,.1,.25,1); stroke-dashoffset:0; }

  .iq-map .node{ cursor:pointer; outline:none; }
  .iq-map .node .hit{ fill:transparent; }
  .iq-map .node .dot{ fill:#fff; transition:fill .2s; }
  .iq-map .node text{ fill:#fff; font-size:24px; font-weight:700; }
  .iq-map .node text .of{ fill:var(--iq-loop); font-size:15px; font-weight:500; }
  .iq-map .node:hover text, .iq-map .node:focus-visible text{ text-decoration:underline; }
  .iq-map .node.is-on .dot{ fill:var(--orange); }
  .iq-map .node.is-on text, .iq-map .node.is-on text .of{ fill:var(--orange); }

  .iq-map .hub{ cursor:pointer; outline:none; }
  .iq-map .hub .disc{ fill:#fff; stroke:var(--orange); stroke-width:0; transition:stroke-width .25s; }
  .iq-map .hub:hover .disc, .iq-map .hub:focus-visible .disc{ stroke-width:3; }
  .iq-map .hub.is-on .disc{ stroke-width:5; }
  /* 中央のロゴ：図のループが描かれたあとにアイコン→文字の順に現れ、入力が終わると小さく弾む */
  .iq-map .hub .hub-icon, .iq-map .hub .hub-pop{ transform-box:fill-box; transform-origin:center; }
  .iq-map .hub .hub-icon{ opacity:0; animation:iqIconIn .9s cubic-bezier(.2,1.1,.3,1) 1.4s forwards; }
  @keyframes iqIconIn{ 0%{ opacity:0; transform:scale(.4) rotate(-8deg); } 60%{ opacity:1; transform:scale(1.07) rotate(1deg); } 100%{ opacity:1; transform:none; } }
  .iq-map .hub .hub-word{ opacity:0; animation:iqFade .6s ease 1.9s forwards; }
  @keyframes iqFade{ to{ opacity:1; } }
  .iq-map .hub.is-complete .hub-pop{ animation:iqPop .6s cubic-bezier(.2,1.1,.3,1); }
  @keyframes iqPop{ 0%{ transform:scale(1); } 40%{ transform:scale(1.12); } 100%{ transform:scale(1); } }

  .iq-route{ margin:8px 0 0; font-size:16px; text-align:center; min-height:1.8em; color:#fff; }
  .iq-route b{ color:#fff; border-bottom:2px solid var(--orange); }

  /* ---------- 下：フォーム ---------- */
  .iq-panel{ padding:0 0 120px; scroll-margin-top:var(--iq-hd); }
  .iq-box{ width:min(760px, calc(100% - 40px)); margin:72px auto 0; }
  .iq-team{ margin:0 0 44px; }
  .iq-team img{ display:block; width:100%; aspect-ratio:16/7; object-fit:cover; object-position:center 25%; }
  .iq-team-ph{ display:grid; place-items:center; width:100%; aspect-ratio:16/7; border:1px dashed #999; color:#999; font-size:13px; }
  .iq-team figcaption{ margin-top:10px; font-size:13px; font-weight:700; color:var(--blue); }

  .iq-reqnote{ margin:0 0 36px; font-size:13px; }
  .iq-reqnote span, .iq-key em{ color:var(--orange); font-style:normal; }

  .iq-row{ padding:0 0 34px; }
  .iq-key{ display:block; margin-bottom:4px; font-size:16px; font-weight:700; color:var(--blue); }
  .iq-key em{ margin-left:4px; transition:color .2s; }
  .is-done .iq-key em{ color:var(--blue); }
  .iq-help{ margin:10px 0 0; font-size:13px; }
  .iq-pair{ display:grid; grid-template-columns:1fr 1fr; gap:0 32px; }

  /* 入力欄（style.css「18. Contact Form 7」の枠線デザインより優先させるため .iq .wpcf7 から指定） */
  .iq .wpcf7 .iq-input, .iq .wpcf7 .iq-select{ width:100%; font:inherit; font-size:18px; color:var(--ink);
    background-color:transparent; border:0; border-bottom:1px solid var(--blue); border-radius:0;
    padding:10px 0 12px; outline:none; transition:border-color .2s, box-shadow .2s; }
  .iq .wpcf7 .iq-input:focus, .iq .wpcf7 .iq-select:focus{ outline:none; border-bottom-color:var(--blue); box-shadow:0 1px 0 var(--blue); }
  .iq .wpcf7 .iq-input::placeholder, .iq .wpcf7 .iq-textarea::placeholder{ color:#a8a8a8; }
  .iq .wpcf7 .iq-select{ appearance:none; -webkit-appearance:none; cursor:pointer; padding-right:32px;
    background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(-45deg,transparent 50%,var(--ink) 50%);
    background-position:calc(100% - 12px) 50%,calc(100% - 6px) 50%; background-size:6px 6px; background-repeat:no-repeat; }
  .iq .wpcf7 .iq-select.is-empty{ color:#a8a8a8; }
  .iq .wpcf7 .iq-select option, .iq .wpcf7 .iq-select optgroup{ color:var(--ink); }
  .iq .wpcf7 .iq-textarea{ display:block; width:100%; min-height:220px; margin-top:10px; padding:14px 16px;
    font:inherit; font-size:16px; color:var(--ink); background:#fff; border:1px solid var(--blue); border-radius:0; resize:vertical; outline:none; }
  .iq .wpcf7 .iq-textarea:focus{ outline:none; border-color:var(--blue); box-shadow:0 0 0 1px var(--blue); }

  /* エラー */
  .iq-err{ display:none; margin:8px 0 0; font-size:13px; color:var(--iq-err); }
  .is-invalid .iq-err{ display:block; }
  .iq .wpcf7 .is-invalid .iq-input, .iq .wpcf7 .is-invalid .iq-select{ border-bottom-color:var(--iq-err); }
  .iq .wpcf7 .is-invalid .iq-textarea{ border-color:var(--iq-err); }
  .iq .wpcf7-not-valid-tip{ display:none; } /* 画面側のエラー文と重なるため */

  /* 同意・ボタン */
  .iq-foot{ padding-top:8px; }
  .iq-privacy{ margin:0 0 16px; font-size:13px; }
  .iq-agree .wpcf7-list-item{ margin:0; }
  .iq-agree label{ display:inline-flex; gap:10px; align-items:center; font-size:16px; cursor:pointer; }
  .iq-agree input{ width:20px; height:20px; margin:0; accent-color:var(--blue); }

  .iq-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:36px; }
  .iq-btn{ flex:1; min-width:220px; width:100%; padding:22px 0; font:inherit; font-size:17px; font-weight:700;
    letter-spacing:.08em; text-align:center; border:0; cursor:pointer; transition:background .2s; }
  .iq-btn-main{ background:var(--orange); color:#fff; }
  .iq-btn-main:hover{ background:var(--orange-deep); }
  .iq-btn:focus-visible{ outline:3px solid var(--blue); outline-offset:3px; }
  .iq-btn[disabled]{ opacity:.6; cursor:wait; }
  .iq-btn small{ margin-left:8px; font-size:13px; font-weight:500; opacity:.9; }
  .iq-after{ margin:22px 0 0; font-size:13px; }
  .iq-after a{ font-weight:700; text-decoration:none; white-space:nowrap; }

  .iq .wpcf7-response-output{ margin:24px 0 0 !important; }
  /* reCAPTCHAの表記（style.css「18」の中央寄せを左寄せに） */
  .iq .wpcf7 .iq-recaptcha{ margin:16px 0 0; text-align:left; font-size:11px; line-height:1.8; color:var(--sub); }
  .iq .wpcf7 .iq-recaptcha a{ color:var(--sub); text-decoration:underline; }

  /* ---------- 完了 ---------- */
  .iq-done:focus{ outline:none; }
  .iq .iq-done .pg-h2{ margin:0 0 20px; }  /* 見出しのデザインは共通（41） */
  .iq-done p{ margin:0 0 6px; }

  /* 入力の進み具合バー（フォームの上に固定） */
  .iq-mbar{ position:sticky; top:var(--iq-hd); z-index:40; height:4px; background:var(--iq-line); }
  .iq-mbar span{ display:block; width:100%; height:100%; background:var(--orange); transform-origin:left; transform:scaleX(0); transition:transform .4s; }

  /* ---------- レスポンシブ ---------- */
  @media(max-width:860px){
    .iq-visual{ padding:16px 16px 36px; }
    .iq-mapwrap{ width:92%; max-width:480px; }
    .iq-map .node text{ font-size:25px; }
    .iq-map .node text .of{ display:none; }
    .iq-route{ font-size:15px; }
    .iq-panel{ padding-bottom:88px; }
    .iq-box{ margin-top:44px; }
    .iq-team img, .iq-team-ph{ aspect-ratio:4/3; }
  }
  @media(max-width:560px){
    .iq-pair{ grid-template-columns:1fr; }
  }
  @media(prefers-reduced-motion: reduce){
    .iq *{ animation:none !important; transition:none !important; }
    .iq-map .iq-ring{ stroke-dashoffset:0; } .iq-map .hub .hub-icon, .iq-map .hub .hub-word{ opacity:1; }
  }

/* ============================================================
   39. 会社概要（/about/）
   page-about.php の <div class="tp p-group"> の中だけに効きます。
   ページタイトル（.pg-hero）と h2（.pg-h2）は 41（事業・サービスと共通）。
   ヘッダー・フッターは共通のまま。
   ============================================================ */
  .p-group{ --pg-navy:#003885; --pg-orange:#ff7f00; --pg-ink:#1d2736; --pg-sub:#5d6878; --pg-rule:#d8dee7; --pg-loop:#a8caef; --pg-header-h:89px; /* 固定ヘッダーの高さ（スクロール後。スマホは下のメディアクエリで 71px） */ --pg-w:1240px; color:var(--pg-ink); line-height:1.9; font-feature-settings:"palt"; }
  .p-group a{ color:inherit }
  /* 左右の端は共通のページヒーロー（9）と同じ位置にそろえる */
  .p-group .p-group__inner{ box-sizing:content-box; max-width:var(--pg-w); margin:0 auto; padding:0 6% }
  .p-group .p-group__photo{ padding:24px 0 0 }
  .p-group .p-group__photo-fig{ max-width:880px;margin:0 auto }
  .p-group .p-group__photo-fig img{ display:block;width:100%;height:auto }
  /* ---------- 体制図（事務所紹介資料の体制図に準拠） ---------- */
  .p-group .p-group__chart-sec{ padding:88px 0 120px }
  .p-group .p-org{ position:relative;--n:7;--g:16px;--drop:40px;--box:100px;--gap-svc:76px }
  .p-group .p-org__hd{ display:flex;align-items:center;justify-content:center;gap:14px;width:fit-content;max-width:100%;margin:0 auto; padding:20px 64px;background:var(--pg-navy);color:#fff;font-size:clamp(17px,1.9vw,21px);font-weight:700;letter-spacing:.04em;line-height:1.3 }
  .p-group .p-org__mark{ display:block; width:40px; height:40px; flex:none }  /* altruloop のアイコン（白） */
  .p-group .p-org__stem{ display:block;width:2px;height:var(--drop);margin:0 auto;background:var(--pg-navy);transform-origin:top;transform:scaleY(0) }
  .p-group .p-org__cols{ position:relative;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:0 var(--g);padding-top:var(--drop) }
  .p-group .p-org__bar{ position:absolute;top:0;height:2px;background:var(--pg-navy); left:calc((100% - (var(--n) - 1) * var(--g)) / (var(--n) * 2));right:calc((100% - (var(--n) - 1) * var(--g)) / (var(--n) * 2));transform:scaleX(0) }
  .p-group .p-org__col{ position:relative }
  .p-group .p-org__col::before{ content:"";position:absolute;left:50%;top:calc(var(--drop) * -1);width:2px;height:var(--drop);margin-left:-1px;background:var(--pg-navy);transform-origin:top;transform:scaleY(0) }
  /* 会社・事務所から業務への線 */
  .p-group .p-org__col::after{ content:"";position:absolute;left:50%;top:var(--box);width:1px;height:var(--gap-svc);margin-left:-.5px;background:var(--pg-navy);transform-origin:top;transform:scaleY(0) }
  .p-group .p-org__box{ position:relative;z-index:1;display:grid;place-items:center;height:var(--box);padding:10px 8px;background:var(--pg-navy);color:#fff; text-align:center;text-decoration:none;font-size:14.5px;font-weight:700;line-height:1.5;letter-spacing:.02em;opacity:0; box-shadow:inset 0 -4px 0 transparent;transition:opacity .5s,box-shadow .2s }
  .p-group .p-org__box:hover, .p-group .p-org__box:focus-visible{ box-shadow:inset 0 -4px 0 var(--pg-orange) }
  .p-group .p-org__lead{ position:relative;z-index:1;margin:6px 0 0;text-align:right;font-size:12px;font-weight:700;color:var(--pg-navy);line-height:1.6;opacity:0;transition:opacity .5s }
  .p-group .p-org__svc{ position:relative;z-index:1;list-style:none;margin:calc(var(--gap-svc) - 26px) 0 0;padding:0 }
  .p-group .p-org__svc li{ margin:0 0 8px;padding:10px 6px;border:1px solid var(--pg-navy);background:#fff;text-align:center;font-size:13px;line-height:1.5;opacity:0;transition:opacity .5s }
  /* 横断の破線 */
  .p-group .p-org__tie{ position:absolute;z-index:2;left:-12px;right:-12px;top:calc(var(--drop) + var(--box) + 46px);margin:0;height:0; border-top:1.5px dashed var(--pg-orange);text-align:center;transform:scaleX(0) }
  .p-group .p-org__tie span{ position:relative;top:-.85em;padding:0 14px;background:#fff;font-size:12px;font-weight:700;color:var(--pg-orange);letter-spacing:.04em }
  /* 描画の順番 */
  .p-group .p-org.is-in .p-org__stem{ transition:transform .35s ease-out;transform:scaleY(1) }
  .p-group .p-org.is-in .p-org__bar{ transition:transform .5s .35s ease-out;transform:scaleX(1) }
  .p-group .p-org.is-in .p-org__col::before{ transition:transform .3s .85s ease-out;transform:scaleY(1) }
  .p-group .p-org.is-in .p-org__box, .p-group .p-org.is-in .p-org__lead{ opacity:1;transition-delay:1.05s }
  .p-group .p-org.is-in .p-org__col::after{ transition:transform .4s 1.4s ease-out;transform:scaleY(1) }
  .p-group .p-org.is-in .p-org__tie{ transition:transform .7s 1.5s ease-out;transform:scaleX(1) }
  .p-group .p-org.is-in .p-org__svc li{ opacity:1;transition-delay:1.9s }
  .p-group .p-org.is-in .p-org__svc li:nth-child(2){ transition-delay:2s }
  .p-group .p-org.is-in .p-org__svc li:nth-child(3){ transition-delay:2.1s }
  .p-group .p-org.is-in .p-org__svc li:nth-child(4){ transition-delay:2.2s }
  .p-group .p-org.is-in .p-org__svc li:nth-child(5){ transition-delay:2.3s }
  /* 数字入りの一文 */
  .p-group .p-group__body{ position:relative }
  .p-group .js-pg-sec{ scroll-margin-top:calc(var(--pg-header-h) + 24px) }
  /* ---------- 会社概要（HD） ---------- */
  .p-group .p-group__hd{ padding:40px 0 0 }
  .p-group .p-group__hd-grid{ display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:64px;align-items:start }
  .p-group .p-group__hd-photo{ margin:0;aspect-ratio:4/5;border:1px solid var(--pg-rule);display:grid;place-items:center;overflow:hidden }
  .p-group .p-group__hd-photo span{ font-size:12px;color:var(--pg-sub) }
  .p-group .p-group__hd-photo img{ width:100%;height:100%;object-fit:cover;display:block }
  .p-group .p-group__table{ margin:0;border-top:2px solid var(--pg-navy) }
  .p-group .p-group__table div{ display:grid;grid-template-columns:140px minmax(0,1fr);gap:24px;padding:18px 0;border-bottom:1px solid var(--pg-rule) }
  .p-group .p-group__table dt{ font-weight:700;font-size:14px;color:var(--pg-navy) }
  .p-group .p-group__table dd{ margin:0;font-size:15px }
  .p-group .p-group__table a{ color:var(--pg-navy);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--pg-loop) }
  .p-group .p-group__table a:hover{ text-decoration-color:var(--pg-navy) }
  /* ---------- 各社・各事務所 ---------- */
  .p-group .p-group__chapter{ padding:120px 0 0 }
  .p-group .p-group__chapter:last-child{ padding-bottom:140px }
  .p-group .p-group__org{ display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:72px;align-items:start;padding:64px 0;border-top:1px solid var(--pg-rule) }
  .p-group .pg-h2 + .p-group__org{ border-top:2px solid var(--pg-navy) }
  .p-group .p-group__org:nth-of-type(even){ grid-template-columns:minmax(0,7fr) minmax(0,5fr) }
  .p-group .p-group__org:nth-of-type(even) .p-group__org-photo{ order:2 }
  .p-group .p-group__org-photo{ margin:0;aspect-ratio:4/5;border:1px solid var(--pg-rule);display:grid;place-items:center;overflow:hidden }
  .p-group .p-group__org-photo span{ font-size:12px;color:var(--pg-sub) }
  .p-group .p-group__org-photo img{ width:100%;height:100%;object-fit:cover;display:block }
  .p-group .p-group__org-body{ padding-top:8px }
  /* 分野名：ループで囲む */
  .p-group .p-group__field{ position:relative;display:inline-block;margin:0 0 20px;padding:6px 22px;font-size:14px;font-weight:700;color:var(--pg-navy);letter-spacing:.06em;line-height:1.6 }
  .p-group .p-group__field span{ position:relative;z-index:1 }
  .p-group .p-group__field svg{ position:absolute;inset:-4px -6px;width:calc(100% + 12px);height:calc(100% + 8px);overflow:visible }
  .p-group .p-group__field path{ fill:none;stroke:var(--pg-loop);stroke-width:7;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1 }
  .p-group .p-group__field.is-in path{ transition:stroke-dashoffset 1s cubic-bezier(.6,.1,.3,1);stroke-dashoffset:0 }
  .p-group .p-group__org-name{ margin:0 0 20px;font-size:clamp(24px,2.8vw,32px);font-weight:700;line-height:1.4;letter-spacing:.04em }
  .p-group .p-group__org-lead{ margin:0 0 36px;font-size:16px;max-width:30em }
  .p-group .p-group__spec{ margin:0;display:grid;grid-template-columns:1fr 1fr;column-gap:32px;border-top:1px solid var(--pg-rule) }
  .p-group .p-group__spec div{ padding:14px 0;border-bottom:1px solid var(--pg-rule) }
  .p-group .p-group__spec div.is-wide{ grid-column:1 / -1 }
  .p-group .p-group__spec dt{ font-size:12px;color:var(--pg-sub);line-height:1.6 }
  .p-group .p-group__spec dd{ margin:2px 0 0;font-size:14.5px }
  .p-group .p-group__logos-h{ margin:20px 0 10px;font-size:12px;color:var(--pg-sub) }
  .p-group .p-group__logos{ list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px }
  .p-group .p-group__logos li{ min-width:0;aspect-ratio:5/2;border:1px solid var(--pg-rule);display:grid;place-items:center;padding:0 10% }
  .p-group .p-group__logos img{ display:block;max-width:100%;max-height:44%;width:auto;height:auto;object-fit:contain }
  .p-group .p-group__links{ list-style:none;margin:32px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:14px 36px }
  .p-group .p-group__links a{ font-size:15px;font-weight:700;color:var(--pg-navy);text-decoration:underline;text-underline-offset:6px; text-decoration-thickness:2px;text-decoration-color:var(--pg-loop);transition:text-decoration-color .2s }
  .p-group .p-group__links a:hover{ text-decoration-color:var(--pg-orange) }
  .p-group .p-group__links a.is-ext::after{ content:"";display:inline-block;width:.75em;height:.75em;margin-left:6px;vertical-align:.05em;background:currentColor; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M4 1h7v7M11 1 4.5 7.5M8.5 11H1V3.5' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M4 1h7v7M11 1 4.5 7.5M8.5 11H1V3.5' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E") center/contain no-repeat }
  /* ---------- CTA ---------- */
  .p-group .p-group__cta{ background:var(--pg-navy);color:#fff;padding:88px 0 }
  .p-group .p-group__cta-in{ display:flex;align-items:center;justify-content:space-between;gap:32px 48px;flex-wrap:wrap }
  .p-group .p-group__cta-h{ margin:0 0 10px;font-size:clamp(20px,2.6vw,28px);font-weight:700;letter-spacing:.04em;line-height:1.5 }
  .p-group .p-group__cta-p{ margin:0;font-size:15px;opacity:.85 }
  .p-group .p-group__cta-btn{ display:inline-block;padding:18px 56px;background:var(--pg-orange);color:#fff !important;font-weight:700; text-decoration:none;letter-spacing:.08em;border-radius:2px;transition:background .2s }
  .p-group .p-group__cta-btn:hover{ background:#e56f00 }
  /* ---------- タブレット ---------- */
  @media (max-width:1100px){
    .p-group .p-org{ --g:10px }
    .p-group .p-org__box{ font-size:12.5px }
    .p-group .p-org__svc li{ font-size:12px;padding:9px 4px }
  }
  @media (max-width:900px){
    .p-group .p-org__cols{ grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 16px;padding-top:0 }
    .p-group .p-org__bar, .p-group .p-org__col::before, .p-group .p-org__col::after{ display:none }
    .p-group .p-org__tie{ position:relative;grid-column:1 / -1;top:auto;left:auto;right:auto;margin:22px 0 4px }
    .p-group .p-org__box{ height:auto;min-height:80px }
    .p-group .p-org__svc{ margin-top:12px }
    .p-group .p-org__hd{ width:100%;padding:18px 20px }
  }
  @media (max-width:900px){
    .p-group .p-group__hd{ padding-top:88px }
    .p-group .p-group__hd-grid{ grid-template-columns:1fr;gap:32px }
    .p-group .p-group__hd-photo{ aspect-ratio:16/9;order:-1 }
    .p-group .p-group__org, .p-group .p-group__org:nth-of-type(even){ grid-template-columns:minmax(0,1fr);gap:28px;padding:56px 0 }
    .p-group .p-group__org:nth-of-type(even) .p-group__org-photo{ order:0 }
    .p-group .p-group__org-photo{ aspect-ratio:16/10 }
  }
  /* ---------- スマホ：体制図を縦の系統図に ---------- */
  @media (max-width:640px){
    .p-group{ --pg-header-h:71px }
  }
  @media (max-width:760px){
    .p-group .p-group__chart-sec{ padding:64px 0 80px }
    .p-group .p-group__photo{ padding-top:16px }
    .p-group .p-group__hd{ padding-top:72px }
    .p-group .p-group__table div{ grid-template-columns:1fr;gap:4px;padding:16px 0 }
    .p-group .p-group__chapter{ padding-top:88px }
    .p-group .p-group__chapter:last-child{ padding-bottom:88px }
    .p-group .p-group__spec{ grid-template-columns:minmax(0,1fr) }
    .p-group .p-group__logos{ grid-template-columns:repeat(2,minmax(0,1fr)) }
    .p-group .p-group__cta{ padding:64px 0 }
    .p-group .p-group__cta-btn{ width:100%;text-align:center }
  }
  /* 動きを減らす設定 */
  @media (prefers-reduced-motion:reduce){
    .p-group *, .p-group *::before, .p-group *::after{ animation:none !important;transition:none !important }
    .p-group path{ stroke-dashoffset:0 !important }
    .p-group .p-org__stem, .p-group .p-org__bar, .p-group .p-org__tie, .p-group .p-org__col::before, .p-group .p-org__col::after{ transform:none !important }
    .p-group .p-org__box, .p-group .p-org__lead, .p-group .p-org__svc li{ opacity:1 !important }
  }

/* ============================================================
   40. 採用情報（/recruit/）
   page-recruit.php の <main class="rc-main"> と、header-recruit.php の採用用ヘッダーに効きます。
   ・クラス名はすべて rc- 始まり、色などの変数は --rc- 始まり（ほかのページとぶつからない）
   ・フッターはサイト共通（8）のまま。フッター手前のお問い合わせ帯だけ非表示
   ・フォント（Zen Kaku Gothic New／Outfit／Yuji Boku）は header-recruit.php で読み込み
   ・動き（ループ線・行動指針・写真の広がり など）は main.js の「採用情報」
   ============================================================ */
  /* =========================================================
   Tokens（色は青・淡い青・白の3つだけ。オレンジはCTAのみ）
   ========================================================= */
  body.is-recruit{ --rc-blue:#003885; --rc-pale:#d6e4f5; --rc-orange:#ff7f00; --rc-ink:#1c2738; --rc-ink-2:#5d6878; --rc-line:#e3e7ed; --rc-ph:#e9ecf0; --rc-white:#fff; --rc-ff:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif; --rc-ff-en:"Outfit","Zen Kaku Gothic New",sans-serif; --rc-ff-brush:"Yuji Boku","Hiragino Mincho ProN","Yu Mincho",serif; --rc-wrap:1180px; --rc-gutter:clamp(20px,4vw,40px); --rc-hd:72px; }
  body.is-recruit{ background:var(--rc-white) }
  body.is-recruit .rc-main, body.is-recruit .rc-hd{ font-family:var(--rc-ff);color:var(--rc-ink);font-size:16px;line-height:1.95;letter-spacing:.03em }
  /* ページ内リンクで見出しが固定ヘッダーに隠れないように */
  body.is-recruit .rc-main [id]{ scroll-margin-top:calc(var(--rc-hd) + env(safe-area-inset-top,0px)) }
  /* フッター手前のお問い合わせ帯は、このページでは不要（エントリー欄があるため） */
  body.is-recruit .contact-band{ display:none }
  body.is-recruit .rc-wrap{ max-width:var(--rc-wrap);margin:0 auto;padding:0 var(--rc-gutter) }
  /* 写真枠（<img>に差し替え） */
  body.is-recruit .rc-ph{ position:relative;background:var(--rc-ph);overflow:hidden }
  body.is-recruit .rc-ph>span{ position:absolute;left:14px;top:12px;font-size:12px;color:#8a93a1;line-height:1.5 }
  body.is-recruit .rc-ph img{ width:100%;height:100%;object-fit:cover }
  /* =========================================================
   ページを貫くループ線（スクロールに合わせて描かれる）
   ========================================================= */
  body.is-recruit .rc-thread{ position:absolute;left:0;top:0;z-index:0;pointer-events:none;overflow:visible }
  body.is-recruit .rc-thread path{ fill:none;stroke:var(--rc-pale);stroke-width:14;stroke-linecap:round;stroke-linejoin:round }
  body.is-recruit .rc-thread circle{ fill:var(--rc-blue) }
  body.is-recruit .rc-main{ position:relative;z-index:1 }
  /* ---------- ヘッダー ---------- */
  body.is-recruit .rc-hd{ position:fixed;top:0;left:0;right:0;z-index:80;display:block;padding:env(safe-area-inset-top,0px) 0 0;background:rgba(255,255,255,.96);border-bottom:1px solid var(--rc-line) }
  body.is-recruit .rc-hd-in{ display:flex;align-items:center;justify-content:space-between;height:var(--rc-hd);max-width:1360px;margin:0 auto;padding:0 var(--rc-gutter) }
  body.is-recruit .rc-logo{ display:flex;align-items:center;gap:10px;text-decoration:none;line-height:1.1;color:var(--rc-blue) }
  /* ロゴ・ヘッダーの高さ・左右の余白は、ホールディングスのヘッダー（4章）と同じにする
     パソコン：ロゴ60px＋上下14px＝88px／スマホ（640px以下）：ロゴ42px＋上下14px＝70px／左右の余白：画面幅の4% */
  body.is-recruit .rc-logo-img{ display:block;height:60px;width:auto }  /* ホールディングスと同じロゴ（assets/img/altruloop-holdings-logo.svg） */
  body.is-recruit{ --rc-hd:88px }
  body.is-recruit .rc-hd-in{ max-width:none;padding:0 4% }
  @media (max-width:640px){
    body.is-recruit{ --rc-hd:70px }
    body.is-recruit .rc-logo-img{ height:42px }
  }
  body.is-recruit .rc-nav{ display:flex;align-items:center;gap:28px;font-size:.9rem;font-weight:500 }
  body.is-recruit .rc-nav a{ text-decoration:none }
  body.is-recruit .rc-nav a:not(.rc-cta):hover{ color:var(--rc-blue) }
  body.is-recruit .rc-cta{ display:inline-flex;align-items:center;padding:1em 1.9em;border-radius:999px;background:var(--rc-orange);color:#fff;font-weight:700;text-decoration:none;line-height:1.3;font-size:.95rem;transition:background-color .2s }
  body.is-recruit .rc-cta:hover{ background:#e86f00 }
  body.is-recruit .rc-nav .rc-cta{ padding:.75em 1.5em;font-size:.85rem }
  body.is-recruit .rc-menu-btn{ display:none;background:none;border:0;padding:8px;cursor:pointer;color:var(--rc-blue) }
  @media (max-width:960px){
    body.is-recruit .rc-nav{ position:fixed;top:calc(var(--rc-hd) + env(safe-area-inset-top,0px));left:0;right:0;flex-direction:column;align-items:flex-start;gap:0;padding:12px 24px 28px;background:#fff;border-bottom:1px solid var(--rc-line);display:none }
    body.is-recruit .rc-nav.open{ display:flex }
    body.is-recruit .rc-nav a:not(.rc-cta){ padding:12px 0;width:100%;border-bottom:1px solid var(--rc-line) }
    body.is-recruit .rc-nav .rc-cta{ margin-top:18px }
    body.is-recruit .rc-menu-btn{ display:block }
  }
  /* ---------- 見出し ---------- */
  body.is-recruit .rc-h2{ font-size:clamp(1.7rem,3.4vw,2.6rem);font-weight:900;line-height:1.5;letter-spacing:.04em;margin:0 0 .7em }
  body.is-recruit .rc-lead{ color:var(--rc-ink-2);max-width:36em;margin:0 }
  body.is-recruit .rc-sec{ padding:clamp(96px,13vw,180px) 0 }
  /* ---------- ヒーロー ---------- */
  body.is-recruit .rc-hero{ padding-top:calc(var(--rc-hd) + clamp(64px,10vw,140px)) }
  body.is-recruit .rc-hero-kicker{ font-size:.9rem;font-weight:700;color:var(--rc-blue);letter-spacing:.1em;margin:0 0 24px }
  body.is-recruit .rc-hero h1{ font-weight:900;font-size:clamp(24px,5.8vw,74px);line-height:1.42;letter-spacing:.04em;margin:0 }
  body.is-recruit .rc-hero-sub{ display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px;margin:40px 0 clamp(56px,7vw,96px) }
  body.is-recruit .rc-hero-sub p{ margin:0;max-width:30em;color:var(--rc-ink-2) }
  body.is-recruit .rc-hero-photo{ height:min(78vh,760px);min-height:300px;clip-path:inset(0 var(--rc-inset,6vw) 0 var(--rc-inset,6vw));will-change:clip-path }
  body.is-recruit .rc-hero-photo>span{ left:calc(var(--rc-inset,6vw) + 16px) }
  /* ---------- メッセージ ---------- */
  body.is-recruit .rc-msg-grid{ display:grid;grid-template-columns:5fr 6fr;gap:clamp(32px,7vw,110px);align-items:start }
  body.is-recruit .rc-msg .rc-ph{ aspect-ratio:4/5 }
  body.is-recruit .rc-msg-body{ padding-top:clamp(0px,4vw,56px) }
  body.is-recruit .rc-msg-body p{ margin:0 0 1.5em;max-width:29em }
  body.is-recruit .rc-sign{ margin-top:36px;font-size:.85rem;color:var(--rc-ink-2) }
  body.is-recruit .rc-sign b{ display:block;font-size:1.5rem;color:var(--rc-ink);letter-spacing:.14em;margin-top:2px }
  body.is-recruit .rc-sign b small{ font-size:.82rem;font-weight:500;letter-spacing:.06em;color:var(--rc-ink-2);margin-left:1em }
  @media (max-width:820px){
    body.is-recruit .rc-msg-grid{ grid-template-columns:1fr }
    body.is-recruit .rc-msg .rc-ph{ aspect-ratio:4/3 }
  }
  /* ---------- 私たちについて ---------- */
  body.is-recruit .rc-scheme{ margin:clamp(48px,6vw,80px) 0 0 }
  body.is-recruit .rc-scheme .rc-ph{ aspect-ratio:16/9 }
  body.is-recruit .rc-scheme img{ width:100%;height:auto;display:block }
  body.is-recruit .rc-statement{ margin:clamp(88px,11vw,160px) 0 0 }
  body.is-recruit .rc-statement p{ margin:0;font-weight:900;letter-spacing:.04em;word-break:keep-all;overflow-wrap:anywhere }
  body.is-recruit .rc-st-main{ font-size:clamp(1.9rem,5.2vw,4.4rem);line-height:1.4 }
  body.is-recruit .rc-st-sub{ font-size:clamp(1.3rem,3vw,2.5rem);line-height:1.5 }
  /* 英字は縦組みで言葉の左に添える（行動指針の縦書きと呼応） */
  body.is-recruit .rc-st-row{ display:flex;align-items:flex-start;gap:clamp(14px,2vw,28px) }
  body.is-recruit .rc-st-row--sub{ margin-top:clamp(28px,4vw,56px);padding-left:clamp(0px,8vw,140px) }
  body.is-recruit .rc-st-label{ writing-mode:vertical-rl;font-family:var(--rc-ff-en);font-weight:600;font-size:clamp(.7rem,1vw,.85rem);letter-spacing:.32em;color:var(--rc-blue);line-height:1;padding-top:.5em;border-left:1.5px solid var(--rc-blue);padding-left:.55em;flex:0 0 auto }
  html.rc-js body.is-recruit [data-fill] .ch{ color:#cfd7e2;transition:color .25s }
  html.rc-js body.is-recruit [data-fill] .ch.on{ color:var(--rc-ink) }
  /* ---------- 行動指針（1画面に収め、スクロールで右から順に書かれていく） ---------- */
  body.is-recruit .rc-creed{ position:relative;background:#fff;z-index:2 }
  body.is-recruit .rc-creed-sticky{ position:sticky;top:var(--rc-hd);height:calc(100vh - var(--rc-hd));height:calc(100svh - var(--rc-hd));overflow:hidden;background:#fff;border-top:1px solid var(--rc-line);border-bottom:1px solid var(--rc-line);display:flex;flex-direction:column }
  body.is-recruit .rc-creed-head{ max-width:1480px;width:100%;margin:0 auto;padding:clamp(20px,4.5vh,48px) var(--rc-gutter) 0;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 32px }
  body.is-recruit .rc-creed-head .rc-h2{ margin:0 }
  body.is-recruit .rc-creed-head .rc-lead{ font-size:clamp(.82rem,1.9vh,1rem) }
  body.is-recruit .rc-creed-progress{ display:flex;gap:6px }
  body.is-recruit .rc-creed-progress i{ width:24px;height:3px;background:var(--rc-line);transition:background-color .3s }
  body.is-recruit .rc-creed-progress i.on{ background:var(--rc-blue) }
  /* 文字サイズは画面の高さと幅の小さい方に合わせる＝必ず1画面に収まる */
  body.is-recruit .rc-creed-board{ flex:0 1 auto;margin-block:auto;min-height:0;max-width:1480px;width:100%;margin:0 auto;padding:clamp(16px,4vh,44px) var(--rc-gutter) clamp(16px,3.5vh,36px); display:flex;flex-direction:row-reverse;justify-content:space-between;align-items:flex-start; --rc-fs:min(6.6vh,4.3vw);--rc-fs2:min(12vh,7.6vw);--rc-sub:max(10px,min(1.85vh,1.2vw)) }
  body.is-recruit .rc-c-main{ writing-mode:vertical-rl }
  body.is-recruit .rc-c-main h3{ font-family:var(--rc-ff-brush);font-weight:400;font-size:var(--rc-fs2);line-height:1.04;margin:0 0 0 calc(var(--rc-fs2) * .12);color:#000 }
  body.is-recruit .rc-c-main p{ font-family:var(--rc-ff-brush);font-size:var(--rc-sub);letter-spacing:.2em;margin:0;padding-top:calc(var(--rc-fs2) * .6) }
  body.is-recruit .rc-c-col{ display:flex;flex-direction:column;align-items:center;gap:calc(var(--rc-fs) * .38) }
  body.is-recruit .rc-c-num{ width:calc(var(--rc-fs) * .88);height:calc(var(--rc-fs) * .88);display:grid;place-items:center;background:var(--rc-blue);color:#fff;font-family:var(--rc-ff-brush);font-size:calc(var(--rc-fs) * .5);line-height:1 }
  body.is-recruit .rc-c-text{ writing-mode:vertical-rl }
  body.is-recruit .rc-c-text h4{ font-family:var(--rc-ff-brush);font-weight:400;font-size:var(--rc-fs);line-height:1.08;letter-spacing:.02em;margin:0 0 0 calc(var(--rc-fs) * .16);color:#000 }
  body.is-recruit .rc-c-text p{ font-family:var(--rc-ff-brush);font-size:var(--rc-sub);letter-spacing:.16em;margin:0;padding-top:calc(var(--rc-fs) * .55) }
  @media (min-width:601px) and (orientation:portrait){
    body.is-recruit .rc-creed-board{ --rc-fs:min(6.6vh,5.6vw);--rc-fs2:min(12vh,9.6vw);--rc-sub:max(11px,min(1.85vh,1.6vw)) }
  }
  @media (max-width:600px){
    body.is-recruit .rc-creed-board{ --rc-fs:min(6vh,6.2vw);--rc-fs2:min(10vh,10vw);--rc-sub:max(10px,min(1.6vh,2.9vw)) }
    body.is-recruit .rc-c-text p, body.is-recruit .rc-c-main p{ letter-spacing:.08em }
  }
  body.is-recruit .rc-c-brk{ display:none }
  @media (orientation:portrait) and (max-width:1100px){
    body.is-recruit .rc-creed-board{ flex-wrap:wrap;row-gap:calc(var(--rc-fs) * .7) }
    body.is-recruit .rc-c-brk{ display:block;flex:0 0 100%;height:0 }
    body.is-recruit .rc-c-main{ margin-left:auto;margin-right:auto }
  }
  /* 筆で上から書くように現れる */
  html.rc-js body.is-recruit .rc-ink{ clip-path:inset(0 0 100% 0);transition:clip-path 1.1s cubic-bezier(.6,.05,.3,1) }
  html.rc-js body.is-recruit .on .rc-ink{ clip-path:inset(0 0 0 0) }
  html.rc-js body.is-recruit .on .rc-c-text p.rc-ink, html.rc-js body.is-recruit .rc-c-main.on p.rc-ink{ transition-delay:.35s }
  html.rc-js body.is-recruit .rc-c-num{ opacity:0;transition:opacity .5s }
  html.rc-js body.is-recruit .rc-c-col.on .rc-c-num{ opacity:1 }
  /* ---------- 働く人 ---------- */
  body.is-recruit #people{ padding-top:clamp(64px,8vw,112px) }
  body.is-recruit .rc-members{ display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(28px,3vw,44px) clamp(14px,2vw,28px);margin-top:clamp(48px,6vw,72px) }
  body.is-recruit .rc-member{ text-decoration:none;display:block }
  body.is-recruit .rc-member .rc-ph{ aspect-ratio:1/1;margin-bottom:14px }
  body.is-recruit .rc-member .rc-aff{ font-size:.78rem;color:var(--rc-ink-2);line-height:1.6;margin:0 0 2px }
  body.is-recruit .rc-member .rc-nm{ font-weight:700;font-size:1.15rem;letter-spacing:.12em;margin:0 }
  body.is-recruit .rc-member:hover .rc-nm{ color:var(--rc-blue) }
  @media (max-width:860px){
    body.is-recruit .rc-members{ grid-template-columns:repeat(2,1fr) }
  }
  body.is-recruit .rc-gallery{ display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(10px,1.4vw,20px);margin-top:clamp(80px,10vw,140px);align-items:start }
  body.is-recruit .rc-gallery .rc-ph{ will-change:transform }
  body.is-recruit .rc-ga{ grid-column:1/7;aspect-ratio:4/3 }
  body.is-recruit .rc-gb{ grid-column:8/13;aspect-ratio:1/1;margin-top:12vw }
  body.is-recruit .rc-gc{ grid-column:2/6;aspect-ratio:3/4;margin-top:-4vw }
  body.is-recruit .rc-gd{ grid-column:7/12;aspect-ratio:16/10;margin-top:4vw }
  @media (max-width:720px){
    body.is-recruit .rc-ga{ grid-column:1/13 }
    body.is-recruit .rc-gb{ grid-column:5/13;margin-top:16px }
    body.is-recruit .rc-gc{ grid-column:1/8;margin-top:-30px }
    body.is-recruit .rc-gd{ grid-column:3/13;margin-top:16px }
  }
  /* ---------- キャリア ---------- */
  body.is-recruit .rc-paths{ margin-top:clamp(48px,6vw,72px);border-top:1px solid var(--rc-ink) }
  body.is-recruit .rc-path{ display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:16px clamp(24px,5vw,72px);padding:clamp(28px,3.4vw,44px) 0;border-bottom:1px solid var(--rc-line) }
  body.is-recruit .rc-path h3{ margin:0;font-size:clamp(1.3rem,2.3vw,1.75rem);font-weight:900;line-height:1.5;letter-spacing:.04em }
  body.is-recruit .rc-path p{ margin:0;color:var(--rc-ink-2);max-width:30em }
  @media (max-width:720px){
    body.is-recruit .rc-path{ grid-template-columns:1fr }
  }
  /* ---------- 募集職種 ---------- */
  body.is-recruit .rc-tabs{ display:flex;flex-wrap:wrap;gap:6px 28px;margin:clamp(40px,5vw,56px) 0 8px }
  body.is-recruit .rc-tabs button{ font-family:var(--rc-ff);font-size:.95rem;font-weight:700;padding:6px 0;border:0;border-bottom:2px solid transparent;background:none;color:var(--rc-ink-2);cursor:pointer }
  body.is-recruit .rc-tabs button:hover{ color:var(--rc-ink) }
  body.is-recruit .rc-tabs button[aria-pressed="true"]{ color:var(--rc-blue);border-bottom-color:var(--rc-blue) }
  body.is-recruit .rc-jobs{ list-style:none;margin:0;padding:0;border-top:1px solid var(--rc-ink) }
  body.is-recruit .rc-job{ border-bottom:1px solid var(--rc-line) }
  body.is-recruit .rc-job a{ display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 32px;padding:26px 0;text-decoration:none }
  body.is-recruit .rc-job .rc-ent{ font-size:.8rem;color:var(--rc-ink-2);margin:0 0 2px }
  body.is-recruit .rc-job h3{ font-weight:700;font-size:clamp(1.1rem,1.9vw,1.35rem);line-height:1.5;margin:0;transition:color .2s }
  body.is-recruit .rc-job .rc-meta{ font-size:.82rem;color:var(--rc-ink-2);margin:6px 0 0 }
  body.is-recruit .rc-job .rc-go{ width:44px;height:44px;border-radius:50%;border:1.5px solid var(--rc-blue);color:var(--rc-blue);display:grid;place-items:center;transition:background-color .2s,color .2s }
  body.is-recruit .rc-job .rc-go svg{ width:16px;height:16px }
  body.is-recruit .rc-job a:hover h3{ color:var(--rc-blue) }
  body.is-recruit .rc-job a:hover .rc-go{ background:var(--rc-blue);color:#fff }
  body.is-recruit .rc-job[hidden]{ display:none }
  /* ---------- 選考の流れ（1本の線が各ステップの頭文字を巡って横へつながる） ---------- */
  body.is-recruit .rc-flow{ position:relative;margin-top:clamp(56px,7vw,96px) }
  body.is-recruit .rc-flow-line{ position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0 }
  body.is-recruit .rc-flow-line path{ fill:none;stroke:var(--rc-pale);stroke-width:10;stroke-linecap:round }
  body.is-recruit .rc-steps{ position:relative;z-index:1;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:48px clamp(24px,3.4vw,48px) }
  body.is-recruit .rc-steps h3{ font-size:clamp(1.5rem,2.6vw,2.2rem);font-weight:900;line-height:1.5;letter-spacing:.04em;margin:0 0 1.3em;white-space:nowrap }
  body.is-recruit .rc-steps p{ margin:0;font-size:.92rem;color:var(--rc-ink-2);max-width:18em }
  body.is-recruit .rc-step-no{ display:block;font-family:var(--rc-ff-en);font-weight:600;font-size:.95rem;letter-spacing:.06em;color:var(--rc-blue);margin:0 0 .9em }
  @media (max-width:860px){
    body.is-recruit .rc-steps{ grid-template-columns:1fr 1fr;row-gap:56px }
  }
  @media (max-width:520px){
    body.is-recruit .rc-steps{ grid-template-columns:1fr;row-gap:48px }
    body.is-recruit .rc-steps p{ max-width:none }
  }
  /* ---------- エントリー（青） ---------- */
  body.is-recruit .rc-entry{ background:var(--rc-blue);color:#fff;text-align:center;position:relative;z-index:2 }
  body.is-recruit .rc-entry h2{ font-size:clamp(1.8rem,4.2vw,3.2rem);font-weight:900;line-height:1.5;letter-spacing:.06em;margin:0 0 18px }
  body.is-recruit .rc-entry p{ margin:0 auto 40px;max-width:30em;color:rgba(255,255,255,.85) }
  body.is-recruit .rc-entry-btns{ display:flex;flex-wrap:wrap;justify-content:center;gap:14px }
  body.is-recruit .rc-ghost{ display:inline-flex;align-items:center;padding:1em 1.9em;border-radius:999px;border:1.5px solid #fff;color:#fff;font-weight:700;text-decoration:none;line-height:1.3;font-size:.95rem;transition:background-color .2s,color .2s }
  body.is-recruit .rc-ghost:hover{ background:#fff;color:var(--rc-blue) }
  @media (prefers-reduced-motion:reduce){
    html.rc-js body.is-recruit .rc-ink{ clip-path:none;transition:none }
    html.rc-js body.is-recruit .rc-c-num{ opacity:1;transition:none }
  }

/* ============================================================
   41. 下層ページのタイトル・見出し（会社概要・事業サービス・メンバー紹介・代表紹介・お知らせ・お問い合わせ 共通）
   ・ページタイトル：パンくず＋手書き風のループで囲んだ h1（ページを開くとループが描かれる）
   ・h2：文字の後ろに淡い青のマーカー（画面に入ると左から引かれる。main.js が .is-in を付ける）
   .tp または .pg の中で使う。横幅はページ側の入れ物（.p-group__inner / .tp-wrap / .pg-wrap）に合わせる。
   ============================================================ */
  :is(.tp,.pg) .pg-hero{ padding:160px 0 0; }  /* 上は固定ヘッダーのぶんを空ける */
  :is(.tp,.pg) .pg-crumb{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:48px; font-size:12px; line-height:1.6; color:#5d6878; }
  :is(.tp,.pg) .pg-crumb a{ color:inherit; text-decoration:none; }
  :is(.tp,.pg) .pg-crumb a:hover{ color:var(--navy); }
  :is(.tp,.pg) .pg-title{ position:relative; display:inline-block; margin:0 0 28px; padding:6px 28px;
    font-size:clamp(30px,4.2vw,46px); font-weight:700; letter-spacing:.06em; color:var(--navy); line-height:1.4; }
  :is(.tp,.pg) .pg-title-text{ position:relative; z-index:1; }
  :is(.tp,.pg) .pg-title-loop{ position:absolute; inset:-10px -6px -14px -10px; width:calc(100% + 16px); height:calc(100% + 24px); overflow:visible; pointer-events:none; }
  :is(.tp,.pg) .pg-title-loop path{ fill:none; stroke:#a8caef; stroke-width:9; stroke-linecap:round;
    stroke-dasharray:1; stroke-dashoffset:1; animation:pgDraw 1.4s .2s cubic-bezier(.6,.1,.3,1) forwards; }
  @keyframes pgDraw{ to{ stroke-dashoffset:0; } }
  /* スマホなど改行（br）を外す幅では、文節（言葉のまとまり）で折り返す */
  :is(.tp,.pg) .pg-lead{ margin:0; font-size:16px; max-width:40em; word-break:auto-phrase; }
  :is(.tp,.pg) .pg-lead .u-pc{ display:inline; }

  :is(.tp,.pg) .pg-h2{ margin:0 0 56px; font-size:clamp(22px,2.6vw,28px); font-weight:700; letter-spacing:.06em; color:var(--navy); line-height:1.5; }
  :is(.tp,.pg) .pg-h2 span{ padding:0 .1em; background:linear-gradient(#a8caef,#a8caef) left 88% / 0 .38em no-repeat;
    -webkit-box-decoration-break:clone; box-decoration-break:clone; transition:background-size .9s cubic-bezier(.6,.1,.3,1); }
  :is(.tp,.pg) .pg-h2.is-in span{ background-size:100% .38em; }

  @media(max-width:760px){
    :is(.tp,.pg) .pg-hero{ padding:120px 0 8px; }
    :is(.tp,.pg) .pg-crumb{ margin-bottom:32px; }
    :is(.tp,.pg) .pg-lead{ font-size:15px; }
    :is(.tp,.pg) .pg-lead .u-pc{ display:none; }
    :is(.tp,.pg) .pg-h2{ margin-bottom:40px; }
  }
  @media(prefers-reduced-motion: reduce){
    :is(.tp,.pg) .pg-title-loop path{ stroke-dashoffset:0; animation:none; }
    :is(.tp,.pg) .pg-h2 span{ background-size:100% .38em; transition:none; }
  }

  /* ---------- 余白・横幅は会社概要（.p-group__inner）に合わせる ----------
     中身の幅：最大1240px／左右の余白：画面幅の6%／タイトルの下：リード文のあと24pxで本文 */
  .pg-wrap{ box-sizing:content-box; max-width:1240px; margin:0 auto; padding:0 6%; }
  .pg .pg-lead{ line-height:2; }
  /* 事業・サービス：各ブロックの入れ物も同じ幅に */
  .tp.sv .tp-wrap{ box-sizing:content-box; max-width:1240px; padding-left:6%; padding-right:6%; }
  /* 事業・サービス：リードと図は上端をそろえる（タイトルとの間が空きすぎないように） */
  @media(min-width:961px){ .tp.sv .sv-intro{ align-items:start; } }
  /* メンバー紹介の一覧・代表紹介：タイトル部分のすぐ下の本文（リード文の24px下から始める） */
  .pg-top + .entry{ box-sizing:content-box; max-width:1240px; padding:24px 6% 110px; }
  /* メンバー紹介：個別ページの上の余白（タイトルの位置）も同じに */
  .mbd.pg{ padding-top:160px; }
  /* お知らせ一覧：共通のページタイトル（template-parts/page-hero.php）の直後の一覧も、リード文の24px下から */
  .pg-top + .nw-index{ padding-top:24px; }
  /* 以前のペン線（32. .h2-pen：functions.php のスクリプトが h2 に付ける）が新しい見出しに重ならないよう打ち消す */
  .pg-h2 .h2-pen{ position:static; display:inline; padding:0; isolation:auto; }
  .pg-h2 .h2-pen svg{ display:none !important; }
  /* メンバー紹介：個別ページの小見出し（経歴・保有資格）は小さめ */
  .mbd-sec .pg-h2{ margin-bottom:16px; font-size:18px; letter-spacing:.08em; line-height:1.6; }
  /* 本文（.entry）の中の h2：前のブロックとの間をあける */
  :is(.tp .entry, .pg .entry, .entry.pg) .pg-h2{ margin:80px 0 32px; }
  :is(.tp .entry, .pg .entry, .entry.pg) .pg-h2:first-child{ margin-top:0; }
  /* お知らせ詳細：パンくずの位置を他ページと同じに（タイトル部分の上 160px・パンくずの下 48px） */
  .nwd-crumb.pg{ padding-top:160px; }
  .nwd-crumb.pg .pg-crumb{ margin-bottom:0; }
  .nwd-layout.pg .nwd-main{ padding-top:48px; }
  @media(max-width:760px){
    .pg-top + .entry{ padding-top:16px; padding-bottom:88px; }
    .pg-top + .nw-index{ padding-top:16px; }
    :is(.tp .entry, .pg .entry, .entry.pg) .pg-h2{ margin:56px 0 24px; }
    :is(.tp .entry, .pg .entry, .entry.pg) .pg-h2:first-child{ margin-top:0; }
    .nwd-crumb.pg{ padding-top:120px; }
    .nwd-layout.pg .nwd-main{ padding-top:32px; }  /* 会社概要と同じく、リード文の24px下（タイトル部分の下8px＋16px） */
    .mbd.pg{ padding-top:120px; }
    .mbd-sec .pg-h2{ margin-bottom:12px; }
  }

/* ============================================================
   42. プライバシーポリシー・勧誘方針・お客様本位の業務運営方針（/privacy/・/solicitation-policy/・/fd-policy/）
   page-privacy.php・page-solicitation-policy.php・page-fd-policy.php の <div class="pg p-privacy"> の中だけに効く（本文のクラス名は pp- 始まり）
   ・ページタイトル（.pg-hero）は 41 と共通。本文は左に目次、右に本文の2列（スマホは目次を閉じて1列）
   ・目次の現在地・スマホでの開閉は main.js の「プライバシーポリシー」
   ============================================================ */
  .p-privacy{
    --pp-blue:#003885; --pp-navy-bg:#003885; --pp-pale:#d6e4f5; --pp-orange:#ff7f00;
    --pp-ink:#1c2738; --pp-ink-2:#5d6878; --pp-ink-3:#97a0ad; --pp-line:#e3e7ed; --pp-bg:#fff;
    --pp-hd:89px;            /* 固定ヘッダーの高さ（目次の固定位置・見出しへ飛んだときの位置に使う） */
    color:var(--pp-ink); background:var(--pp-bg);
  }
  @media(max-width:640px){ .p-privacy{ --pp-hd:71px; } }
  /* タイトルが長いので、スマホでは1行に収まる大きさにする（2行にするとループが崩れるため） */
  @media(max-width:760px){ .p-privacy .pg-title{ white-space:nowrap; font-size:min(30px,6.6vw); padding:6px 22px; } }
  .p-privacy a{color:inherit}
/* ---------- 本文レイアウト（左に目次） ---------- */
.p-privacy .pp-body{display:grid;grid-template-columns:220px minmax(0,1fr);gap:clamp(40px,7vw,104px);padding-top:24px;padding-bottom:clamp(96px,12vw,160px)}
.p-privacy .pp-toc{position:sticky;top:calc(var(--pp-hd) + 40px);align-self:start}
.p-privacy .pp-toc summary{list-style:none;margin:0 0 12px;font-size:.8rem;font-weight:700;color:var(--pp-ink-3);pointer-events:none}
.p-privacy .pp-toc summary::-webkit-details-marker{display:none}
.p-privacy .pp-toc ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--pp-ink)}
.p-privacy .pp-toc li{border-bottom:1px solid var(--pp-line)}
.p-privacy .pp-toc a{display:grid;grid-template-columns:2em minmax(0,1fr);padding:.72em 0;font-size:.85rem;line-height:1.6;color:var(--pp-ink-2);text-decoration:none;transition:color .2s}
.p-privacy .pp-toc a b{font-weight:500;color:var(--pp-ink-3)}
.p-privacy .pp-toc a span{justify-self:start;background:linear-gradient(transparent 60%,var(--pp-pale) 60%,var(--pp-pale) 92%,transparent 92%) no-repeat;background-size:0% 100%;transition:background-size .45s cubic-bezier(.6,.05,.3,1)}
.p-privacy .pp-toc a:hover{color:var(--pp-blue)}
.p-privacy .pp-toc a.is-current{color:var(--pp-blue);font-weight:700}
.p-privacy .pp-toc a.is-current b{color:var(--pp-blue)}
.p-privacy .pp-toc a.is-current span{background-size:100% 100%}

/* ---------- 本文 ---------- */
.p-privacy .pp-main{max-width:46em;font-size:1rem;line-height:2;letter-spacing:.03em}
.p-privacy .pp-main p{margin:0 0 1.1em}
.p-privacy .pp-main a{color:var(--pp-blue);text-underline-offset:3px}
.p-privacy .pp-intro p:first-child{font-size:1.06rem}
.p-privacy .pp-sign{margin-top:1.8em!important;text-align:right;font-weight:700;line-height:1.9}
.p-privacy .pp-sec{padding-top:clamp(64px,8vw,96px);scroll-margin-top:calc(var(--pp-hd) + 24px)}
.p-privacy .pp-h2-wrap{margin:0 0 1.1em;font-size:clamp(1.3rem,2.3vw,1.7rem);line-height:1.6;font-weight:900;letter-spacing:.04em}
.p-privacy .pp-h2{background:linear-gradient(transparent 62%,var(--pp-pale) 62%,var(--pp-pale) 92%,transparent 92%)}

.p-privacy .pp-ul,.p-privacy .pp-ol{list-style:none;margin:0 0 1.4em;padding:0}
.p-privacy .pp-ul li,.p-privacy .pp-ol li{position:relative;padding:.3em 0 .3em 1.6em;line-height:1.85}
.p-privacy .pp-ul li::before{content:"";position:absolute;left:.3em;top:1.05em;width:6px;height:6px;border-radius:50%;background:var(--pp-dot,var(--pp-blue))}
.p-privacy .pp-ol{counter-reset:pp}
.p-privacy .pp-ol li{counter-increment:pp;padding-left:2.4em}
.p-privacy .pp-ol li::before{content:"(" counter(pp) ")";position:absolute;left:0;top:.3em;color:var(--pp-dot,var(--pp-blue));font-weight:700}

.p-privacy .pp-dl{margin:.4em 0 1.6em;border-top:1px solid var(--pp-ink)}
.p-privacy .pp-dl>div{display:grid;grid-template-columns:12em minmax(0,1fr);gap:8px 28px;padding:18px 0;border-bottom:1px solid var(--pp-line)}
.p-privacy .pp-dl dt{font-weight:700;line-height:1.85}
.p-privacy .pp-dl dd{margin:0;line-height:1.85;color:var(--pp-ink)}
.p-privacy .pp-org{list-style:none;margin:0;padding:0}
.p-privacy .pp-org li{padding:.15em 0}
.p-privacy .pp-org small{margin-left:.8em;font-size:.8rem;color:var(--pp-ink-3)}
.p-privacy .pp-date{margin-top:2.4em!important;text-align:right;color:var(--pp-ink-2);font-size:.9rem}

/* ---------- 最後のCTA（青） ---------- */
.p-privacy .pp-end{position:relative;overflow:hidden;background:var(--pp-navy-bg);color:#fff;padding:clamp(80px,10vw,128px) 0}
.p-privacy .pp-end-ring{position:absolute;left:-10vw;bottom:-24vw;width:min(50vw,620px);aspect-ratio:1;border-radius:50%;box-shadow:inset 0 0 0 clamp(26px,3.6vw,52px) rgba(255,255,255,.07);pointer-events:none}
.p-privacy .pp-end-in{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:28px 48px}
.p-privacy .pp-end h2{margin:0 0 8px;font-size:clamp(1.3rem,2.4vw,1.8rem);font-weight:900;line-height:1.6;color:#fff}
.p-privacy .pp-end p{margin:0;max-width:32em;color:rgba(255,255,255,.82);line-height:1.9}
.p-privacy .pp-btn{display:inline-flex;align-items:center;padding:1em 2.2em;border-radius:999px;background:var(--pp-orange);color:#fff!important;font-weight:700;text-decoration:none;line-height:1.3;transition:background-color .2s}
.p-privacy .pp-btn:hover{background:#e86f00}
.p-privacy :focus-visible{outline:3px solid var(--pp-orange);outline-offset:3px}

/* ---------- スマホ ---------- */
@media (max-width:900px){
  .p-privacy .pp-body{grid-template-columns:1fr;gap:8px;padding-top:16px}
  .p-privacy .pp-toc{position:static}
  .p-privacy .pp-main{padding-top:32px}
  .p-privacy .pp-toc details{border-top:1px solid var(--pp-ink);border-bottom:1px solid var(--pp-line)}
  .p-privacy .pp-toc summary{display:flex;justify-content:space-between;align-items:center;margin:0;padding:14px 0;font-size:.9rem;color:var(--pp-ink);pointer-events:auto;cursor:pointer}
  .p-privacy .pp-toc summary::after{content:"";width:9px;height:9px;border-right:1.6px solid var(--pp-blue);border-bottom:1.6px solid var(--pp-blue);transform:translateY(-3px) rotate(45deg);transition:transform .25s}
  .p-privacy .pp-toc details[open] summary::after{transform:translateY(2px) rotate(-135deg)}
  .p-privacy .pp-toc ol{border-top:1px solid var(--pp-line);margin-bottom:8px}
  .p-privacy .pp-toc li:last-child{border-bottom:0}
  .p-privacy .pp-toc a.is-current{font-weight:500;color:var(--pp-ink-2)}
  .p-privacy .pp-toc a.is-current b{color:var(--pp-ink-3)}
  .p-privacy .pp-toc a.is-current span{background-size:0 100%}
  .p-privacy .pp-dl>div{grid-template-columns:1fr;gap:2px;padding:16px 0}
  .p-privacy .pp-dl dt{color:var(--pp-blue)}
  .p-privacy .pp-end-ring{width:90vw;bottom:-50vw}
}
@media (prefers-reduced-motion:reduce){
  .p-privacy .pp-toc a span{transition:none}
}

  /* ---------- 勧誘方針（/solicitation-policy/）・お客様本位の業務運営方針（/fd-policy/）で使う部品 ----------
     どちらも page-privacy.php と同じ作り（.pg.p-privacy）。下の部品を足して使う */
  /* 長いタイトル（お客様本位の業務運営方針）は、スマホで1行に収まる大きさに */
  @media(max-width:760px){ .p-privacy .pg-title.is-long{ font-size:min(30px,5.2vw); } }
/* 追加：企業理念（FD宣言）。大きな言葉を、薄い青の輪の中に */
.p-privacy .pp-creed{position:relative;margin:.4em 0 0;padding:clamp(32px,4vw,48px) clamp(24px,4vw,48px);border-top:1px solid var(--pp-ink);border-bottom:1px solid var(--pp-line);overflow:hidden}
.p-privacy .pp-creed::before{content:"";position:absolute;right:-60px;top:50%;width:220px;aspect-ratio:1;margin-top:-110px;border-radius:50%;box-shadow:inset 0 0 0 26px var(--pp-pale);opacity:.7;pointer-events:none}
.p-privacy .pp-creed-main{position:relative;margin:0 0 .5em;font-size:clamp(2rem,4.4vw,3rem);font-weight:900;letter-spacing:.24em;line-height:1.3;color:var(--pp-blue)}
.p-privacy .pp-creed figcaption{position:relative;font-size:1rem;line-height:2;color:var(--pp-ink)}
/* 追加：KPI（項目と目標の数値を1行ずつ） */
.p-privacy .pp-kpi{list-style:none;margin:.4em 0 1em;padding:0;border-top:1px solid var(--pp-ink);counter-reset:kpi}
.p-privacy .pp-kpi li{counter-increment:kpi;display:grid;grid-template-columns:2.2em minmax(0,1fr) auto;align-items:baseline;gap:4px 16px;padding:18px 0;border-bottom:1px solid var(--pp-line)}
.p-privacy .pp-kpi li::before{content:counter(kpi);font-family:var(--ff-en);font-weight:600;color:var(--pp-ink-3)}
.p-privacy .pp-kpi-n{font-weight:700;line-height:1.7}
.p-privacy .pp-kpi-n small{font-size:.8rem;font-weight:500;color:var(--pp-ink-2)}
.p-privacy .pp-kpi-v{font-family:var(--ff-en);font-size:clamp(1.6rem,2.6vw,2rem);font-weight:600;line-height:1;color:var(--pp-blue);font-variant-numeric:tabular-nums;white-space:nowrap}
.p-privacy .pp-kpi-v small{margin-left:2px;font-size:.55em}
.p-privacy .pp-note{font-size:.82rem;color:var(--pp-ink-2)}
.p-privacy .u-pc{display:inline}
@media (max-width:760px){.p-privacy .u-pc{display:none}.p-privacy .pp-kpi li{grid-template-columns:1.6em minmax(0,1fr) auto;gap:4px 10px}}
/* 追加：文章になっている見出し（勧誘方針の■の項目）は、本文より一段大きい程度に */
.p-privacy .pp-h2-wrap.is-sentence{font-size:clamp(1.08rem,1.6vw,1.22rem);line-height:1.85;font-weight:700;letter-spacing:.03em}
/* 追加：関連する方針（3ページを行き来できる） */
.p-privacy .pp-rel{margin:clamp(64px,8vw,96px) 0 0;padding-top:28px;border-top:1px solid var(--pp-ink)}
.p-privacy .pp-rel p{margin:0 0 12px;font-size:.8rem;font-weight:700;color:var(--pp-ink-3)}
.p-privacy .pp-rel ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.p-privacy .pp-rel a{display:flex;align-items:center;justify-content:space-between;gap:12px;height:100%;padding:16px 18px;border:1px solid var(--pp-line);border-radius:2px;font-size:.9rem;font-weight:700;line-height:1.6;color:var(--pp-ink);text-decoration:none;cursor:pointer;transition:border-color .2s,color .2s}
.p-privacy .pp-rel a::after{content:"";flex:none;width:8px;height:8px;border-top:1.6px solid var(--pp-blue);border-right:1.6px solid var(--pp-blue);transform:rotate(45deg)}
.p-privacy .pp-rel a:hover{border-color:var(--pp-blue);color:var(--pp-blue)}
.p-privacy .pp-rel a[aria-current="page"]{border-color:var(--pp-blue);background:var(--pp-pale);color:var(--pp-blue)}

@media (max-width:900px){ .p-privacy .pp-rel ul{grid-template-columns:1fr} }
/* 社名などを途中で折り返さない（スマホで「ズ」だけが次の行に残らないように） */
.p-privacy .pp-nb{white-space:nowrap}

/* ============================================================
   43. 代表紹介（/ceo-introduction/）案1
   page-ceo-introduction.php の <div class="pg p-ceo"> の中だけに効く
   1. メッセージの導入（大きな見出し＋アーチ型の写真）／2. 本文（左に番号と線）／3. 経歴（淡い青の帯）／4. SNS（横長のカード）
   ・ページタイトル（.pg-hero）は 41 と共通
   ============================================================ */
  .p-ceo{
    --ceo-navy:#003885; --ceo-orange:#ff7f00; --ceo-pale:#d6e4f5; --ceo-pale-2:#eef4fb; --ceo-bg-2:#f4f7fb; --ceo-loop:#a8caef;
    --ceo-ink:#1c2738; --ceo-ink-2:#5d6878; --ceo-ink-3:#97a0ad; --ceo-line:#e3e7ed;
    --ceo-hd:89px;   /* 固定ヘッダーの高さ（固定する位置に使う） */
    color:var(--ceo-ink); padding-bottom:clamp(96px,12vw,150px);
  }
  @media(max-width:640px){ .p-ceo{ --ceo-hd:71px; } }
  .p-ceo .nb{ display:inline-block; }
  .p-ceo .ceo-en{ display:inline-flex; align-items:center; gap:12px; font-family:"Jost",sans-serif; font-size:.8rem; font-weight:500; letter-spacing:.26em; text-transform:uppercase; color:var(--ceo-navy); }
  .p-ceo .ceo-h2{ margin:14px 0 0; font-size:clamp(1.6rem,2.8vw,2.2rem); font-weight:900; line-height:1.5; letter-spacing:.04em; }
  .p-ceo .ceo-h2 span{ background:linear-gradient(transparent 62%,var(--ceo-pale) 62%,var(--ceo-pale) 92%,transparent 92%); }

  /* 1. メッセージの導入 */
  .p-ceo .ceo-mv{ margin-top:clamp(48px,6vw,80px); }
  .p-ceo .ceo-mv__grid{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); align-items:center; gap:clamp(40px,6vw,96px); }
  .p-ceo .ceo-mv__head{ margin:22px 0 0; font-size:clamp(1.9rem,3.8vw,3.1rem); font-weight:900; line-height:1.55; letter-spacing:.04em; color:var(--ceo-navy); }
  .p-ceo .ceo-mv__head .ln{ display:block; }
  .p-ceo .ceo-mv__head .mk{ background:linear-gradient(transparent 66%,var(--ceo-pale) 66%,var(--ceo-pale) 92%,transparent 92%) no-repeat; background-size:100% 100%; }
  .p-ceo .ceo-mv__lead{ margin:0; max-width:30em; font-size:1.06rem; line-height:2.2; }
  .p-ceo .ceo-mv__ph{ position:relative; margin:0 32px 32px 0; }
  .p-ceo .ceo-mv__ph::before{ content:""; position:absolute; inset:0; z-index:0; transform:translate(32px,32px); background:#d6e4f5; }   /* 写真のうしろの薄い青の面（メンバー紹介の写真と同じ色）。右下にずらす（名前のカードは左下なので重ならない） */
  .p-ceo .ceo-mv__frame{ position:relative; z-index:1; aspect-ratio:4/5; overflow:hidden; background:var(--ceo-pale-2); }   /* 四角い写真 */
  .p-ceo .ceo-mv__frame img{ display:block; width:100%; height:100%; object-fit:cover; object-position:50% 12%; }
  .p-ceo .ceo-mv__ph figcaption{ position:absolute; left:-28px; bottom:32px; z-index:2; padding:16px 22px 14px; background:#fff; box-shadow:0 16px 36px rgba(11,42,91,.12); line-height:1.6; }
  .p-ceo .ceo-mv__ph figcaption small{ display:block; font-size:.76rem; color:var(--ceo-ink-2); }
  .p-ceo .ceo-mv__ph figcaption b{ display:block; font-size:1.15rem; letter-spacing:.14em; }
  .p-ceo .ceo-mv__ph figcaption i{ display:block; font-family:"Jost",sans-serif; font-style:normal; font-size:.72rem; letter-spacing:.2em; color:var(--ceo-ink-3); }

  /* 2. メッセージの本文：左に「MESSAGE」と番号・縦の線（読み進めると伸びる。main.js） */
  .p-ceo .ceo-letter{ position:relative; overflow:hidden; margin-top:clamp(72px,9vw,112px); padding:clamp(56px,7vw,96px) 0; background:var(--ceo-bg-2); }   /* 本文：淡い青の帯 */
  .p-ceo .ceo-letter::before{ content:""; position:absolute; right:-140px; top:-140px; width:420px; aspect-ratio:1; border-radius:50%; box-shadow:inset 0 0 0 36px rgba(0,56,133,.04); pointer-events:none; }   /* 右上に薄い輪（帯の上の端と右の端で切れる） */
  .p-ceo .ceo-letter::after{ content:""; position:absolute; left:-200px; bottom:-200px; width:560px; aspect-ratio:1; border-radius:50%; box-shadow:inset 0 0 0 44px rgba(0,56,133,.045); pointer-events:none; }   /* 左下の角に輪（経歴の紺の帯の左下の輪と同じ大きさ）。帯の左の端と下の端で切れる */
  .p-ceo .ceo-body{ position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,3fr) minmax(0,9fr); gap:clamp(32px,6vw,96px); }
  .p-ceo .ceo-paper{ position:relative; box-sizing:border-box; padding:clamp(40px,5vw,72px) clamp(28px,5vw,72px); background:#fff; box-shadow:0 30px 60px rgba(11,42,91,.08); }   /* 白い紙（便箋） */
  .p-ceo .ceo-rail__in{ position:sticky; top:calc(var(--ceo-hd) + 48px); display:flex; flex-direction:column; align-items:flex-start; gap:18px; }
  .p-ceo .ceo-rail__no{ font-family:"Jost",sans-serif; font-size:clamp(3.4rem,6vw,5rem); font-weight:300; line-height:1; color:var(--ceo-pale); }
  .p-ceo .ceo-rail__bar{ position:relative; width:2px; height:180px; overflow:hidden; background:var(--ceo-line); }
  .p-ceo .ceo-rail__bar i{ position:absolute; left:0; top:0; width:100%; height:var(--p,0%); background:var(--ceo-navy); }
  .p-ceo .ceo-txt{ max-width:42em; }
  .p-ceo .ceo-txt p{ margin:0 0 1.9em; font-size:1.04rem; line-height:2.25; letter-spacing:.03em; }
  /* 引用：大きなかぎかっこ付きの淡い青のカード（左上にオレンジの“、右下に淡い”） */
  .p-ceo .ceo-txt .ceo-quote{ position:relative; margin:2.6em 0; padding:30px 36px 30px 80px; background:var(--ceo-pale-2); font-size:clamp(1.15rem,1.9vw,1.4rem); font-weight:700; line-height:1.9; color:var(--ceo-navy); }
  .p-ceo .ceo-txt .ceo-quote::before{ content:"\201C"; position:absolute; left:20px; top:4px; font-family:Georgia,"Times New Roman",serif; font-size:5rem; font-weight:400; line-height:1; color:var(--ceo-orange); }
  .p-ceo .ceo-txt .ceo-quote::after{ content:"\201D"; position:absolute; right:18px; bottom:-30px; font-family:Georgia,"Times New Roman",serif; font-size:5rem; font-weight:400; line-height:1; color:var(--ceo-pale); }
  .p-ceo .ceo-sign{ display:flex; flex-direction:column; align-items:flex-end; margin-top:56px; padding-top:28px; border-top:1px solid var(--ceo-line); text-align:right; }
  .p-ceo .ceo-sign small{ font-size:.8rem; color:var(--ceo-ink-2); }
  .p-ceo .ceo-sign b{ margin-top:4px; font-family:"Zen Old Mincho","Yu Mincho","Hiragino Mincho ProN",serif; font-size:2.1rem; font-weight:600; letter-spacing:.22em; line-height:1.4; }   /* 署名：明朝体で大きく（Zen Old Mincho は functions.php で名前の文字だけ読み込み） */
  .p-ceo .ceo-sign i{ font-family:"Jost",sans-serif; font-style:normal; font-size:.8rem; letter-spacing:.22em; color:var(--ceo-ink-3); }

  /* 3. 経歴：紺の帯（トップページの Closing と同じ紺）。年号を大きく、最新はオレンジ＋NOW
     本文（淡い青の帯）と色を分けて、ページの中で区切りがはっきりするように */
  .p-ceo .ceo-career{ position:relative; overflow:hidden; margin-top:0;   /* 本文の帯とすき間なく続ける */ padding:clamp(88px,10vw,128px) 0; background:var(--ceo-navy); color:#fff; }
  .p-ceo .ceo-career::before{ content:""; position:absolute; left:-200px; bottom:-200px; width:560px; aspect-ratio:1; border-radius:50%; box-shadow:inset 0 0 0 44px rgba(255,255,255,.05); pointer-events:none; }   /* 左下に輪（文字にかからない位置） */
  .p-ceo .ceo-career::after{ content:""; position:absolute; left:-232px; bottom:-232px; width:624px; aspect-ratio:1; border-radius:50%; border:1px solid rgba(255,255,255,.08); pointer-events:none; }   /* その外側に細い輪 */
  .p-ceo .ceo-career__grid{ position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:clamp(40px,6vw,96px); }
  .p-ceo .ceo-career__head{ position:sticky; top:calc(var(--ceo-hd) + 48px); align-self:start; }
  .p-ceo .ceo-career .ceo-en{ color:#9dc0ee; }
  .p-ceo .ceo-career .ceo-h2{ color:#fff; }
  .p-ceo .ceo-career .ceo-h2 span{ background:linear-gradient(transparent 62%,rgba(255,255,255,.18) 62%,rgba(255,255,255,.18) 92%,transparent 92%); }
  .p-ceo .ceo-career__head p{ margin:18px 0 0; font-size:.95rem; line-height:2; color:rgba(255,255,255,.75); }
  .p-ceo .ceo-tl{ position:relative; margin:0; padding:0; list-style:none; }
  .p-ceo .ceo-tl::before{ content:""; position:absolute; left:13.2em; top:22px; bottom:22px; width:1px; background:rgba(255,255,255,.28); }
  .p-ceo .ceo-tl li{ position:relative; display:grid; grid-template-columns:11em minmax(0,1fr); gap:0 4.4em; padding:24px 0; border-bottom:1px solid rgba(255,255,255,.1); }
  .p-ceo .ceo-tl li:last-child{ border-bottom:0; }
  .p-ceo .ceo-tl__y{ font-family:"Jost",sans-serif; line-height:1; }
  .p-ceo .ceo-tl__y b{ display:block; font-size:clamp(2.2rem,3.6vw,2.9rem); font-weight:400; letter-spacing:.02em; color:#fff; }
  .p-ceo .ceo-tl__y small{ display:block; margin-top:6px; font-size:.82rem; font-weight:500; letter-spacing:.14em; color:#9dc0ee; }
  .p-ceo .ceo-tl__tx{ position:relative; padding-top:6px; }
  .p-ceo .ceo-tl__tx::before{ content:""; position:absolute; left:calc(-2.2em - 7px); top:16px; width:14px; height:14px; border-radius:50%; background:var(--ceo-navy); border:2px solid #9dc0ee; box-sizing:border-box; }
  .p-ceo .ceo-tl__tx > b{ display:block; font-size:1.12rem; line-height:1.6; color:#fff; }
  .p-ceo .ceo-tl__tx p{ margin:6px 0 0; font-size:.92rem; line-height:1.95; color:rgba(255,255,255,.72); }
  .p-ceo .ceo-tl li.is-now .ceo-tl__y b{ color:var(--ceo-orange); }
  .p-ceo .ceo-tl li.is-now .ceo-tl__tx::before{ background:var(--ceo-orange); border-color:var(--ceo-orange); box-shadow:0 0 0 6px rgba(255,127,0,.2); animation:ceoNow 1.8s ease-in-out infinite; }   /* いちばん新しい出来事の点：ゆっくり点滅 */
  @keyframes ceoNow{
    0%,100%{ opacity:1; box-shadow:0 0 0 0 rgba(255,127,0,.45); }
    50%    { opacity:.45; box-shadow:0 0 0 10px rgba(255,127,0,0); }
  }
  @media(prefers-reduced-motion:reduce){ .p-ceo .ceo-tl li.is-now .ceo-tl__tx::before{ animation:none; } }   /* 動きを減らす設定の端末では点滅しない */
  .p-ceo .ceo-now{ display:inline-block; margin-left:10px; padding:.1em .7em; border-radius:999px; background:var(--ceo-orange); color:#fff; font-family:"Jost",sans-serif; font-size:.7rem; font-weight:500; letter-spacing:.14em; vertical-align:3px; }

  /* 4. SNS：横長のカード。マウスを乗せると紺に、右下の矢印がオレンジに */
  .p-ceo .ceo-sns{ padding-top:clamp(96px,12vw,150px); }
  .p-ceo .ceo-sns__top{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:12px 40px; margin-bottom:36px; }
  .p-ceo .ceo-sns__top p{ margin:0; color:var(--ceo-ink-2); }
  .p-ceo .ceo-sns__cards{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .p-ceo .ceo-card{ position:relative; box-sizing:border-box; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:20px; min-height:240px; padding:36px 36px 32px; border:1px solid var(--ceo-line); background:#fff; color:var(--ceo-ink); text-decoration:none; overflow:hidden; transition:border-color .3s,background-color .4s; }
  .p-ceo .ceo-card::before{ content:""; position:absolute; right:-90px; top:-90px; width:240px; aspect-ratio:1; border-radius:50%; box-shadow:inset 0 0 0 22px var(--ceo-pale-2); transition:box-shadow .4s,transform .6s cubic-bezier(.2,.7,.2,1); }
  .p-ceo .ceo-card__lb{ position:relative; display:block; margin-bottom:18px; font-family:"Jost",sans-serif; font-size:.72rem; font-weight:500; letter-spacing:.24em; color:var(--ceo-orange); }
  .p-ceo .ceo-card__nm{ position:relative; display:flex; align-items:center; gap:16px; font-family:"Jost",sans-serif; font-size:clamp(2.6rem,4.4vw,3.6rem); font-weight:500; line-height:1; letter-spacing:.02em; color:var(--ceo-navy); transition:color .4s; }
  .p-ceo .ceo-card__ic{ display:inline-flex; align-items:center; justify-content:center; flex:none; width:64px; height:64px; border-radius:16px; background:#000; }   /* X の公式ロゴ（白）を黒い台の上に。白いカードでも、紺になったカードでも見える */
  .p-ceo .ceo-card__ic img{ display:block; width:34px; height:34px; object-fit:contain; }
  /* note は公式ロゴ（文字のロゴ）で表示。配布ファイルの余白ごと置く（余白の決まりを守るため）。黒→紺のときは白に切り替え */
  .p-ceo .ceo-card__nm.has-logo{ --lw:clamp(150px,16vw,190px); position:relative; display:block; width:var(--lw); margin:calc(var(--lw) * -.11) 0 calc(var(--lw) * -.11) calc(var(--lw) * -.11); }   /* 配布ファイルの余白（ロゴの幅の約11%）の分だけ、見た目の位置をほかの文字にそろえる（余白そのものは残る） */
  .p-ceo .ceo-card__nm.has-logo img{ display:block; width:100%; height:auto; transition:opacity .4s; }
  .p-ceo .ceo-card__nm.has-logo .is-white{ position:absolute; inset:0; opacity:0; }
  .p-ceo .ceo-card:hover .ceo-card__nm.has-logo .is-black{ opacity:0; }
  .p-ceo .ceo-card:hover .ceo-card__nm.has-logo .is-white{ opacity:1; }
  .p-ceo .ceo-card__id{ position:relative; display:block; margin-top:14px; font-family:"Jost",sans-serif; font-size:.92rem; letter-spacing:.06em; color:var(--ceo-ink-3); transition:color .4s; }
  .p-ceo .ceo-card p{ position:relative; margin:18px 0 0; font-size:.95rem; line-height:1.9; color:var(--ceo-ink-2); transition:color .4s; }
  .p-ceo .ceo-card__go{ position:relative; display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; border-radius:50%; border:1px solid var(--ceo-line); color:var(--ceo-navy); transition:background-color .3s,border-color .3s,color .3s,transform .3s; }
  .p-ceo .ceo-card__go i{ width:10px; height:10px; border-top:1.8px solid currentColor; border-right:1.8px solid currentColor; transform:translateX(-2px) rotate(45deg); }
  .p-ceo .ceo-card:hover{ background:var(--ceo-navy); border-color:var(--ceo-navy); }
  .p-ceo .ceo-card:hover::before{ box-shadow:inset 0 0 0 22px rgba(255,255,255,.07); transform:rotate(30deg) scale(1.1); }
  .p-ceo .ceo-card:hover .ceo-card__nm{ color:#fff; }
  .p-ceo .ceo-card:hover .ceo-card__id{ color:#9dc0ee; }
  .p-ceo .ceo-card:hover p{ color:rgba(255,255,255,.85); }
  .p-ceo .ceo-card:hover .ceo-card__go{ background:var(--ceo-orange); border-color:var(--ceo-orange); color:#fff; transform:translateX(4px); }
  .p-ceo .ceo-card:focus:not(:focus-visible){ outline:none; }

  /* ---------- スクロールの動き（main.js が .p-ceo に .is-anim、画面に入った要素に .is-in を付ける）---------- */
  .p-ceo.is-anim [data-ceo="photo"] .ceo-mv__frame img{ clip-path:inset(100% 0 0 0); transform:scale(1.06); transition:clip-path 1.1s cubic-bezier(.7,0,.2,1),transform 1.6s cubic-bezier(.2,.7,.2,1); }
  .p-ceo.is-anim [data-ceo="photo"] figcaption{ opacity:0; transform:translate(-16px,0); transition:opacity .8s .8s,transform .8s .8s cubic-bezier(.2,.7,.2,1); }
  .p-ceo.is-anim [data-ceo="photo"].is-in .ceo-mv__frame img{ clip-path:inset(0 0 0 0); transform:none; }
  .p-ceo.is-anim [data-ceo="photo"].is-in figcaption{ opacity:1; transform:none; }
  .p-ceo.is-anim [data-ceo="photo"]::before{ opacity:0; transform:translate(0,0); transition:opacity .8s .5s,transform 1s .5s cubic-bezier(.2,.7,.2,1); }
  .p-ceo.is-anim [data-ceo="photo"].is-in::before{ opacity:1; transform:translate(32px,32px); }
  @media(max-width:900px){ .p-ceo.is-anim [data-ceo="photo"].is-in::before{ transform:translate(20px,20px); } }
  .p-ceo.is-anim [data-ceo="head"] .ceo-en,
  .p-ceo.is-anim [data-ceo="head"] .ln,
  .p-ceo.is-anim [data-ceo="head"] .ceo-mv__lead{ opacity:0; transform:translateY(18px); transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1); }
  .p-ceo.is-anim [data-ceo="head"] .ln:nth-child(1){ transition-delay:.15s; }
  .p-ceo.is-anim [data-ceo="head"] .ln:nth-child(2){ transition-delay:.3s; }
  .p-ceo.is-anim [data-ceo="head"] .ln:nth-child(3){ transition-delay:.45s; }
  .p-ceo.is-anim [data-ceo="head"] .ceo-mv__lead{ transition-delay:.7s; }
  .p-ceo.is-anim [data-ceo="head"] .mk{ background-size:0% 100%; transition:background-size .9s cubic-bezier(.6,.05,.3,1); }
  .p-ceo.is-anim [data-ceo="head"] .ln:nth-child(1) .mk{ transition-delay:.9s; }
  .p-ceo.is-anim [data-ceo="head"] .ln:nth-child(2) .mk{ transition-delay:1.15s; }
  .p-ceo.is-anim [data-ceo="head"] .ln:nth-child(3) .mk{ transition-delay:1.4s; }
  .p-ceo.is-anim [data-ceo="head"].is-in .ceo-en,
  .p-ceo.is-anim [data-ceo="head"].is-in .ln,
  .p-ceo.is-anim [data-ceo="head"].is-in .ceo-mv__lead{ opacity:1; transform:none; }
  .p-ceo.is-anim [data-ceo="head"].is-in .mk{ background-size:100% 100%; }
  .p-ceo.is-anim [data-ceo="up"]{ opacity:0; transform:translateY(24px); transition:opacity .9s,transform .9s cubic-bezier(.2,.7,.2,1); transition-delay:var(--d,0s); }
  .p-ceo.is-anim [data-ceo="up"].is-in{ opacity:1; transform:none; }
  /* 経歴：読み進めると、縦の線が水色→オレンジで伸び、読んだ行が明るくなる（main.js が --prog と .is-read を付ける） */
  .p-ceo .ceo-tl::after{ content:""; position:absolute; left:calc(13.2em - .5px); top:22px; width:2px; height:var(--prog,0px); background:linear-gradient(#a8caef,#ff7f00); transition:height .25s linear; pointer-events:none; }
  .p-ceo.is-prog .ceo-tl li{ opacity:.45; transition:opacity .5s; }
  .p-ceo.is-prog .ceo-tl li.is-read{ opacity:1; }
  .p-ceo.is-anim [data-ceo="list"] > *{ opacity:0; transform:translateY(24px); transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1),background-color .4s,border-color .3s; transition-delay:calc(var(--i,0) * .14s),calc(var(--i,0) * .14s),0s,0s; }
  .p-ceo.is-anim [data-ceo="list"].is-in > *{ opacity:1; transform:none; }

  @media(max-width:900px){
    .p-ceo .ceo-mv__grid{ grid-template-columns:1fr; }
    .p-ceo .ceo-mv__ph{ width:84%; max-width:400px; margin:8px auto 20px; }
    .p-ceo .ceo-mv__ph::before{ transform:translate(20px,20px); }
    .p-ceo .ceo-mv__ph figcaption{ left:-16px; bottom:20px; }
    .p-ceo .ceo-body{ grid-template-columns:1fr; gap:0; }
    .p-ceo .ceo-letter{ padding:40px 0; }
    .p-ceo .ceo-letter::after{ left:-140px; bottom:-140px; width:340px; box-shadow:inset 0 0 0 28px rgba(0,56,133,.045); }
    .p-ceo .ceo-paper{ padding:32px 22px; }
    .p-ceo .ceo-rail{ display:none; }
    .p-ceo .ceo-career__grid{ grid-template-columns:1fr; gap:28px; }
    .p-ceo .ceo-career__head{ position:static; }
    .p-ceo .ceo-tl::before, .p-ceo .ceo-tl::after{ left:7px; }
    .p-ceo .ceo-txt .ceo-quote{ padding:24px 20px 24px 58px; }
    .p-ceo .ceo-txt .ceo-quote::before{ left:12px; font-size:4rem; }
    .p-ceo .ceo-tl li{ grid-template-columns:1fr; gap:6px; padding:20px 0 20px 34px; }
    .p-ceo .ceo-tl__tx::before{ left:-34px; top:-30px; }
    .p-ceo .ceo-tl__y b{ font-size:2rem; }
    .p-ceo .ceo-sns__cards{ grid-template-columns:1fr; }
    .p-ceo .ceo-card{ min-height:0; padding:28px 26px 26px; }
    .p-ceo .ceo-card__ic{ width:48px; height:48px; border-radius:12px; }
    .p-ceo .ceo-card__ic img{ width:26px; height:26px; }
  }
  @media(min-width:901px){ .p-ceo br.u-pc{ display:inline; } }
  @media(max-width:900px){ .p-ceo br.u-pc{ display:none; } }

/* ============================================================
   44. 共通の締め（ページの一番下・フッターの上「経営のいちばん近くに。」）
   template-parts/cta.php。トップページの Closing と同じデザインを、どのページでも使えるようにしたもの
   ・濃い紺の帯の中央に、大きな見出し・説明・ボタン2つ。後ろに大きな輪（オレンジの弧つき）
   ・ボタンは style.css「36」の共通ボタン（.tp-btn）
   ・出てくる動きは main.js の「共通の締め」（動きを減らす設定の端末では最初から表示）
   ・トップページ（.tp の中）でも同じ見た目になるよう、指定は .site-close から書いて強めにしている
   ============================================================ */
  .site-close{ position:relative; overflow:hidden; padding:clamp(88px,11vw,152px) 0; background:#00265e; color:#fff; text-align:center; }
  .site-close__art{ position:absolute; left:50%; top:50%; width:min(1100px,150vw); aspect-ratio:1; transform:translate(-50%,-50%); pointer-events:none; }
  .site-close__in{ position:relative; z-index:1; }
  .site-close .site-close__ttl{ margin:0; font-size:clamp(25px,4.6vw,60px); white-space:nowrap; font-weight:900; letter-spacing:.08em; line-height:1.5; color:#fff; }
  .site-close .site-close__body{ max-width:44em; margin:36px auto 0; font-size:16px; line-height:2.1; color:#eef3fb; }
  .site-close .site-close__body .u-pc{ display:inline; }
  .site-close .site-close__cta{ display:flex; justify-content:center; flex-wrap:wrap; gap:20px; margin-top:52px; }
  .site-close .site-close__cta .tp-btn{ min-width:260px; text-decoration:none; }
  @media(max-width:640px){
    .site-close .site-close__body{ font-size:15px; text-align:left; }
    .site-close .site-close__body .u-pc{ display:none; }
    .site-close .site-close__cta .tp-btn{ width:100%; min-width:0; }
  }
  /* 出てくる動き（main.js が .site-close に .is-anim、画面に入ったら .is-in） */
  .site-close.is-anim [data-close]{ opacity:0; transform:translateY(24px); transition:opacity .9s,transform .9s cubic-bezier(.2,.7,.2,1); }
  .site-close.is-anim .site-close__body{ transition-delay:.15s; }
  .site-close.is-anim .site-close__cta{ transition-delay:.3s; }
  .site-close.is-anim.is-in [data-close]{ opacity:1; transform:none; }
  .site-close.is-anim .site-close__arc{ stroke-dashoffset:40; transition:stroke-dashoffset 1.6s cubic-bezier(.6,.05,.3,1) .2s; }   /* オレンジの弧が伸びる */
  .site-close.is-anim.is-in .site-close__arc{ stroke-dashoffset:0; }

  /* ---------- 個別ページ：紺の帯（肩書き・名前・分野の後ろ）。写真は帯からはみ出して重なる ----------
     .mbd-head の後ろに、画面の幅いっぱいの紺の帯を敷く（上はページの上まで、下は分野のタグの44px下まで） */
  .mbd-head{ position:relative; }
  .mbd-head::before{ content:""; position:absolute; z-index:-2; left:-100vw; right:-100vw; top:-800px; bottom:-44px; background:#003885; pointer-events:none; }
  .mbd-head::after{ content:""; position:absolute; z-index:-1; right:-300px; top:-360px; width:560px; aspect-ratio:1; border-radius:50%; box-shadow:inset 0 0 0 44px rgba(255,255,255,.05); pointer-events:none; }   /* 帯の右上に輪（代表紹介の経歴の帯と同じ） */
  .mbd .pg-crumb{ color:rgba(255,255,255,.75); }
  .mbd .pg-crumb a{ color:#fff; }
  .mbd-head .mbd-role, .mbd-head .mbd-roles li{ color:#ffb066; }
  .mbd-head .mbd-name{ color:#fff; }
  .mbd-head .nm-en{ color:#9dc0ee; }
  .mbd-head .mbd-fields span{ background:transparent; border-color:rgba(255,255,255,.45); color:#fff; }
  .mbd-ph .mbd-photo{ box-shadow:0 30px 60px rgba(0,20,60,.22); }   /* 写真は帯の上に浮かせる */
  .mbd-text{ margin-top:88px; padding-top:32px; }   /* 帯の下から本文 */
  .mbd-text p:first-child::first-letter{ float:left; margin:.06em .14em 0 0; font-size:3.2em; font-weight:900; line-height:1; color:#003885; }   /* 自己紹介文の最初の1文字を大きく太い青に */
  @media(max-width:760px){
    .mbd-head::before{ bottom:-32px; }
    .mbd-text{ margin-top:64px; }
  }
  /* ---------- 個別ページを開いたときの動き（動きを減らす設定の端末では動かさない） ----------
     紺の帯が上から下りる → 写真が下から現れ、うしろの薄い青の面がずれて出る → 肩書き・名前・ローマ字・分野が順にふわっと
     → 自己紹介文 → 前後のメンバー */
  @media (prefers-reduced-motion:no-preference){
    .mbd-head::before{ animation:mbdBand 1s cubic-bezier(.7,0,.2,1) both; }
    .mbd-head::after{ animation:mbdRing 1.6s .5s cubic-bezier(.2,.7,.2,1) both; }
    .mbd .pg-crumb{ animation:mbdUp .7s .3s cubic-bezier(.2,.7,.2,1) both; }
    .mbd-photo{ animation:mbdPhoto 1.1s .35s cubic-bezier(.7,0,.2,1) both; }
    .mbd-photo img.is-main{ animation:mbdZoom 1.8s .35s cubic-bezier(.2,.7,.2,1) both; }
    .mbd-ph::before{ animation:mbdShift .9s 1s cubic-bezier(.2,.7,.2,1) both; }
    .mbd-head .mbd-role, .mbd-head .mbd-roles{ animation:mbdUp .8s .55s cubic-bezier(.2,.7,.2,1) both; }
    .mbd-head .mbd-name .nm{ display:inline-block; animation:mbdUp .9s .7s cubic-bezier(.2,.7,.2,1) both; }
    .mbd-head .nm-en{ animation-delay:1.05s; }
    .mbd-head .mbd-fields{ animation:mbdUp .8s 1.15s cubic-bezier(.2,.7,.2,1) both; }
    .mbd-text{ animation:mbdUp .9s 1.3s cubic-bezier(.2,.7,.2,1) both; }
    .mbd-sec, .mbd-nav{ animation:mbdUp .9s 1.5s cubic-bezier(.2,.7,.2,1) both; }
  }
  @keyframes mbdBand{ from{ clip-path:inset(0 0 100% 0); } to{ clip-path:inset(0 0 0 0); } }
  @keyframes mbdRing{ from{ opacity:0; transform:rotate(-30deg) scale(.85); } to{ opacity:1; transform:none; } }
  @keyframes mbdPhoto{ from{ clip-path:inset(100% 0 0 0); } to{ clip-path:inset(0 0 0 0); } }
  @keyframes mbdZoom{ from{ transform:scale(1.08); } to{ transform:none; } }
  @keyframes mbdShift{ from{ opacity:0; transform:translate(0,0); } to{ opacity:1; transform:translate(24px,24px); } }
  @keyframes mbdUp{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }
  @media (prefers-reduced-motion:no-preference) and (max-width:760px){
    @keyframes mbdShift{ from{ opacity:0; transform:translate(0,0); } to{ opacity:1; transform:translate(16px,16px); } }
  }

/* ============================================================
   45. 準備中のページ（/service/zeimu/ など）
   template-parts/coming-soon.php（page-zeimu.php・テンプレート「準備中」で使う）。<div class="pg p-soon"> の中だけに効く
   ・ページタイトルは 41 と共通。その下に、淡い青の帯の上の白いカード（中央ぞろえのお知らせ）
   ============================================================ */
  .p-soon .u-sp{ display:none; }
  .p-soon .u-pc{ display:inline; }
  .p-soon .soon{ position:relative; overflow:hidden; margin-top:clamp(56px,7vw,88px); padding:clamp(56px,7vw,96px) 0 clamp(80px,10vw,128px); background:#f4f7fb; }
  .p-soon .soon::before{ content:""; position:absolute; right:-160px; top:-160px; width:480px; aspect-ratio:1; border-radius:50%; box-shadow:inset 0 0 0 40px rgba(0,56,133,.045); pointer-events:none; }   /* 帯の右上に輪 */
  .p-soon .soon::after{ content:""; position:absolute; left:-200px; bottom:-200px; width:520px; aspect-ratio:1; border-radius:50%; box-shadow:inset 0 0 0 42px rgba(0,56,133,.045); pointer-events:none; }   /* 帯の左下に輪 */
  .p-soon .soon__in{ position:relative; z-index:1; max-width:720px; padding:clamp(56px,7vw,96px) clamp(28px,6vw,88px); background:#fff; box-shadow:0 30px 60px rgba(11,42,91,.07); box-sizing:border-box; text-align:center; }   /* 白いカード（中央ぞろえ） */
  .p-soon .soon__label{ display:inline-block; padding:.2em .9em; border-radius:999px; background:#ff7f00; color:#fff; font-family:"Jost",sans-serif; font-size:.74rem; font-weight:500; letter-spacing:.2em; }
  .p-soon .soon__ttl{ margin:18px 0 0; font-size:clamp(1.7rem,3.2vw,2.5rem); font-weight:900; line-height:1.5; letter-spacing:.06em; color:#003885; }
  .p-soon .soon__txt{ margin:18px 0 0; font-size:1rem; line-height:2; color:#5d6878; letter-spacing:.06em; }
  .p-soon .soon__dots i{ display:inline-block; font-style:normal; animation:soonDot 1.4s ease-in-out infinite; }
  .p-soon .soon__dots i:nth-child(2){ animation-delay:.2s; }
  .p-soon .soon__dots i:nth-child(3){ animation-delay:.4s; }
  @keyframes soonDot{ 0%,60%,100%{ opacity:.2; transform:none; } 30%{ opacity:1; transform:translateY(-6px); } }
  @media(max-width:900px){
    .p-soon .u-pc{ display:none; }
  }
  @media(max-width:640px){
    .p-soon .u-sp{ display:inline; }
  }
  @media(prefers-reduced-motion:reduce){
    .p-soon .soon__dots i{ animation:none; }
    .p-soon .soon__dots i{ opacity:1; }
  }

/* ============================================================
   46. お知らせ一覧（月ごとの年表）
   template-parts/news-list.php（home.php＝/news/、archive.php＝カテゴリー別・月別）
   ・背景は淡い青の帯（左下に輪）。左にカテゴリー・月別、右に月ごとの縦の年表（記事は白いカード）
   ============================================================ */
  /* タイトル部分（template-parts/news-hero.php）：左にタイトル、右に最新の1件を横長のカードで */
  .nwh__grid.has-pick{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,560px); gap:clamp(32px,5vw,72px); align-items:end; }
  .nwh__pick{ position:relative; display:grid; grid-template-columns:200px minmax(0,1fr); background:#fff; color:#1c2738; text-decoration:none; box-shadow:0 26px 54px rgba(11,42,91,.1); transition:translate .3s,box-shadow .3s; }
  /* マウスを乗せたとき：少し浮く（translate を使い、出てくる動き・跳ねる動きとは別に重ねる）。跳ねる動きは止める
     ※ 以前は animation:none にしていたため、マウスが外れた瞬間に出てくる動きが最初からやり直しになり、カードが一瞬消えていた */
  .nwh__pick:hover{ translate:0 -4px; box-shadow:0 32px 60px rgba(11,42,91,.14); animation-play-state:running, paused; }
  /* 最新のお知らせのカード：定期的にぴょんと跳ねる（マウスを乗せたときと同じ浮き方）。約5秒ごと、最初はページを開いて2秒後 */
  @media(prefers-reduced-motion:no-preference){
    .nwh__pick{ animation:nwhIn .9s .45s cubic-bezier(.2,.7,.2,1) both, nwhJump 5s ease-in-out 2s infinite; }   /* 開いたときに右から出て、そのあと定期的に跳ねる */
  }
  @keyframes nwhJump{
    0%, 76%, 100%{ transform:none; }
    82%{ transform:translateY(-8px); }
    88%{ transform:translateY(0); }
    92%{ transform:translateY(-3px); }
    96%{ transform:none; }
  }
  .nwh__label{ position:absolute; left:-12px; top:-12px; z-index:2; padding:.25em 1em; background:#ff7f00; color:#fff; font-family:"Jost",sans-serif; font-size:.74rem; font-weight:500; letter-spacing:.2em; }
  .nwh__th{ position:relative; overflow:hidden; min-height:150px; background:#00265e; }
  .nwh__th img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.7,.2,1); }
  .nwh__art{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; overflow:hidden; background:linear-gradient(135deg,#0b3f8f,#003885 60%,#00265e); transition:transform .6s cubic-bezier(.2,.7,.2,1); }
  .nwh__art::before{ content:""; position:absolute; right:-40%; top:-50%; width:110%; aspect-ratio:1; border-radius:50%; box-shadow:inset 0 0 0 22px rgba(255,255,255,.07); }   /* 輪 */
  .nwh__mk{ position:relative; width:62%; height:auto; }
  .nwh__mk path{ fill:#fff; }   /* ヘッダーのロゴの文字を白で */
  .nwh__pick:hover .nwh__th img, .nwh__pick:hover .nwh__art{ transform:scale(1.05); }
  .nwh__tx{ display:flex; flex-direction:column; justify-content:center; gap:8px; padding:22px 26px; }
  .nwh__meta{ display:flex; align-items:center; gap:10px; }
  .nwh__meta time{ font-family:"Jost",sans-serif; font-size:.9rem; color:#5d6878; }
  .nwh__cat{ display:inline-block; padding:.05em .8em; border:1px solid #d6e4f5; border-radius:999px; font-size:.74rem; font-weight:700; color:#003885; }
  .nwh__ttl{ font-size:1.06rem; font-weight:700; line-height:1.7; }
  .nwh__pick:hover .nwh__ttl{ color:#003885; }
  @media(max-width:900px){
    .nwh__grid.has-pick{ grid-template-columns:1fr; gap:28px; }
    .nwh__pick{ grid-template-columns:110px minmax(0,1fr); }
    .nwh__th{ min-height:110px; }
    .nwh__tx{ padding:16px 18px; }
    .nwh__ttl{ font-size:.95rem; }
  }
  @media(prefers-reduced-motion:reduce){ .nwh__pick, .nwh__th img, .nwh__art{ transition:none; } }
  .nwt{ position:relative; overflow:hidden; margin-top:clamp(40px,5vw,64px); padding:clamp(56px,7vw,88px) 0 clamp(88px,10vw,128px); background:#f4f7fb; }
  .nwt::before{ content:""; position:absolute; left:-200px; bottom:-200px; width:520px; aspect-ratio:1; border-radius:50%; box-shadow:inset 0 0 0 42px rgba(0,56,133,.045); pointer-events:none; }   /* 左下に輪 */
  .nwt::after{ content:""; position:absolute; right:-160px; top:-160px; width:420px; aspect-ratio:1; border-radius:50%; box-shadow:inset 0 0 0 36px rgba(0,56,133,.04); pointer-events:none; }   /* 右上に輪 */
  .nwt__in{ position:relative; z-index:1; display:grid; grid-template-columns:220px minmax(0,1fr); gap:clamp(40px,6vw,96px); }
  .nwt__side{ position:sticky; top:120px; align-self:start; }
  .nwt__en{ margin:0 0 12px; font-family:"Jost",sans-serif; font-size:.78rem; font-weight:500; letter-spacing:.26em; text-transform:uppercase; color:#003885; }
  .nwt__en + ul{ margin-bottom:32px; }
  .nwt__cats{ display:flex; flex-direction:column; align-items:flex-start; gap:8px; margin:0; padding:0; list-style:none; }
  .nwt__cats a{ display:inline-flex; align-items:center; min-height:42px; padding:0 20px; border:1px solid #e3e7ed; border-radius:999px; background:#fff; color:#1c2738; font-size:.9rem; font-weight:700; text-decoration:none; transition:border-color .25s,color .25s,background-color .25s; }
  .nwt__cats a:hover{ border-color:#003885; color:#003885; }
  .nwt__cats a.is-current{ background:#003885; border-color:#003885; color:#fff; }
  .nwt__months{ margin:0; padding:0; list-style:none; border-top:1px solid #1c2738; }
  .nwt__months li{ margin:0; border-bottom:1px solid #e3e7ed; }
  .nwt__months a{ display:block; padding:10px 0; font-size:.9rem; color:#1c2738; text-decoration:none; }
  .nwt__months a:hover{ color:#003885; }
  /* 年表 */
  .nwt__tl{ position:relative; margin:0; padding:0 0 0 30px; list-style:none; }
  .nwt__tl::before{ content:""; position:absolute; left:6px; top:12px; bottom:12px; width:1px; background:linear-gradient(#a8caef,#ff7f00); }   /* 縦の線（水色→オレンジ） */
  .nwt__mo{ position:relative; margin:8px 0 10px; list-style:none; }
  .nwt__mo:first-child{ margin-top:0; }
  .nwt__mo span{ font-family:"Jost",sans-serif; font-size:1.6rem; font-weight:400; line-height:1.4; color:#003885; }
  .nwt__mo::before{ content:""; position:absolute; left:-30px; top:.55em; width:13px; height:13px; border-radius:50%; background:#003885; }   /* 月の点 */
  .nwt__item{ position:relative; margin:0 0 12px; list-style:none; }
  .nwt__item::before{ content:""; position:absolute; left:-27px; top:50%; width:7px; height:7px; margin-top:-4px; border-radius:50%; background:#fff; border:1.5px solid #a8caef; box-sizing:border-box; }   /* 記事の点 */
  .nwt__item a{ display:grid; grid-template-columns:3em minmax(0,1fr) auto; align-items:center; gap:12px 24px; padding:20px 22px; background:#fff; border:1px solid #e3e7ed; border-radius:10px; color:#1c2738; text-decoration:none; transition:border-color .3s,box-shadow .3s,transform .3s; }
  .nwt__item a:hover{ border-color:#003885; box-shadow:0 14px 30px rgba(11,42,91,.07); transform:translateX(4px); }
  .nwt__day{ font-family:"Jost",sans-serif; font-size:1.6rem; font-weight:300; line-height:1; color:#5d6878; }
  .nwt__item a:hover .nwt__day{ color:#ff7f00; }
  .nwt__cat{ display:inline-block; padding:.05em .8em; border:1px solid #d6e4f5; border-radius:999px; background:#fff; font-size:.74rem; font-weight:700; color:#003885; }
  .nwt__ttl{ display:block; margin-top:4px; font-size:1rem; font-weight:700; line-height:1.7; }
  .nwt__item a:hover .nwt__ttl{ color:#003885; }
  .nwt__go{ position:relative; width:40px; height:40px; border:1px solid #e3e7ed; border-radius:50%; transition:background-color .3s,border-color .3s; }
  .nwt__go::after{ content:""; position:absolute; left:50%; top:50%; width:8px; height:8px; margin:-4px 0 0 -6px; border-top:1.6px solid #003885; border-right:1.6px solid #003885; transform:rotate(45deg); }
  .nwt__item a:hover .nwt__go{ background:#003885; border-color:#003885; }
  .nwt__item a:hover .nwt__go::after{ border-color:#fff; }
  .nwt__empty{ margin:0; padding:40px; background:#fff; border-radius:10px; color:#5d6878; }
  /* ページ送り */
  .nwt .pagination{ margin-top:32px; padding-left:30px; }
  .nwt .pagination .nav-links{ display:flex; flex-wrap:wrap; gap:8px; }
  .nwt .pagination .page-numbers{ display:inline-flex; align-items:center; justify-content:center; min-width:44px; height:44px; padding:0 14px; border:1px solid #e3e7ed; border-radius:999px; background:#fff; color:#1c2738; font-family:"Jost",sans-serif; text-decoration:none; }
  .nwt .pagination .page-numbers.current{ background:#003885; border-color:#003885; color:#fff; }
  .nwt .pagination a.page-numbers:hover{ border-color:#003885; color:#003885; }
  @media(max-width:900px){
    .nwt__in{ grid-template-columns:1fr; gap:28px; }
    .nwt__side{ position:static; }
    .nwt__cats{ flex-direction:row; flex-wrap:wrap; }
    .nwt__en:not(:first-child), .nwt__months{ display:none; }   /* スマホでは月別は出さない */
    .nwt__item a{ grid-template-columns:2.4em minmax(0,1fr); padding:16px 18px; }
    .nwt__go{ display:none; }
  }
  @media(prefers-reduced-motion:reduce){ .nwt__item a{ transition:none; } }

/* ============================================================
   47. お知らせの記事（single.php）：淡い帯＋白い紙
   ・パンくずの下を淡い青の帯（右上・左下に輪）にし、記事を白い紙に、右の欄を白いカードに載せる
   ・前後のお知らせは角の丸いカード。33 の指定の上に重ねて上書きする
   ============================================================ */
  .nwd-band{ position:relative; overflow:hidden; margin-top:40px; padding:clamp(48px,6vw,72px) 0 0; background:#f4f7fb; }
  .nwd-band::before{ content:""; position:absolute; right:-160px; top:-160px; width:460px; aspect-ratio:1; border-radius:50%; box-shadow:inset 0 0 0 38px rgba(0,56,133,.045); pointer-events:none; }   /* 右上に輪 */
  .nwd-band::after{ content:""; position:absolute; left:-200px; bottom:-200px; width:520px; aspect-ratio:1; border-radius:50%; box-shadow:inset 0 0 0 42px rgba(0,56,133,.045); pointer-events:none; }   /* 左下に輪 */
  .nwd-band .nwd-layout{ position:relative; z-index:1; }
  .nwd-band .nwd-layout .nwd-main{ padding:clamp(32px,4vw,56px); background:#fff; box-shadow:0 30px 60px rgba(11,42,91,.07); }   /* 記事：白い紙 */
  .nwd-band .nwd-side{ top:110px; padding:28px; background:#fff; box-shadow:0 20px 40px rgba(11,42,91,.05); }   /* 右の欄：白いカード */
  .nwd-band .nwd-side__list:last-child, .nwd-band .nwd-side__cats:last-child{ margin-bottom:0; }
  .nwd-band .nwd-side__cats a{ border-radius:999px; background:#fff; }
  .nwd-band .nwd-meta .nw-cat{ border-radius:999px; }
  .nwd-band .nwd-pn a{ padding:18px 20px; border:1px solid var(--line); border-radius:10px; background:#fff; transition:border-color .3s,box-shadow .3s,color .2s; }   /* 前後のお知らせ：カード */
  .nwd-band .nwd-pn a:hover{ border-color:var(--navy); box-shadow:0 12px 28px rgba(11,42,91,.07); }
  @media(max-width:900px){
    .nwd-band .nwd-side{ position:static; margin-top:24px; }
  }
  @media(max-width:640px){
    .nwd-band{ margin-top:28px; }
    .nwd-band .nwd-layout .nwd-main{ padding:28px 20px; }
    .nwd-band .nwd-side{ padding:22px 20px; }
  }
  /* 記事を開いたときの動き（動きを減らす設定の端末では動かさない）
     パンくず → 白い紙が下から → 日付・カテゴリー → タイトル → タイトルの下の線が左から伸びる → 画像・本文 → 前後のお知らせ
     右の欄は少し遅れて右からふわっと。帯の輪は少し回りながら現れる */
  @media (prefers-reduced-motion:no-preference){
    .nwd-crumb .pg-crumb{ animation:nwdUp .7s .1s cubic-bezier(.2,.7,.2,1) both; }
    .nwd-band::before{ animation:nwdRing 1.6s .3s cubic-bezier(.2,.7,.2,1) both; }
    .nwd-band::after{ animation:nwdRing 1.6s .5s cubic-bezier(.2,.7,.2,1) both; }
    .nwd-band .nwd-layout .nwd-main{ animation:nwdUp .9s .2s cubic-bezier(.2,.7,.2,1) both; }
    .nwd-band .nwd-meta{ animation:nwdUp .7s .55s cubic-bezier(.2,.7,.2,1) both; }
    .nwd-band .nwd-title{ animation:nwdUp .8s .7s cubic-bezier(.2,.7,.2,1) both; }
    .nwd-band .nwd-head{ position:relative; border-bottom-color:transparent; }
    .nwd-band .nwd-head::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px; background:linear-gradient(90deg,#003885,#ff7f00 40%,var(--line) 40%); transform-origin:left; animation:nwdLine 1.1s 1s cubic-bezier(.6,.05,.3,1) both; }   /* タイトルの下の線：紺→オレンジ→細い線 */
    .nwd-band .nwd-thumb, .nwd-band .nwd-body{ animation:nwdUp .9s 1.05s cubic-bezier(.2,.7,.2,1) both; }
    .nwd-band .nwd-foot{ animation:nwdUp .9s 1.3s cubic-bezier(.2,.7,.2,1) both; }
    .nwd-band .nwd-side{ animation:nwdSide .9s .8s cubic-bezier(.2,.7,.2,1) both; }
  }
  @keyframes nwdUp{ from{ opacity:0; transform:translateY(20px); } to{ opacity:1; transform:none; } }
  @keyframes nwdSide{ from{ opacity:0; transform:translateX(24px); } to{ opacity:1; transform:none; } }
  @keyframes nwdRing{ from{ opacity:0; transform:rotate(-30deg) scale(.85); } to{ opacity:1; transform:none; } }
  @keyframes nwdLine{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
  /* お知らせ一覧を開いたときの動き（動きを減らす設定の端末では動かさない）
     タイトル部分：パンくず → リード文 → 最新のカードが右から（タイトルの「まる」は共通の動き）
     一覧：帯の輪が現れ、左のカテゴリーが左から、年表の線が上から伸びる。月・記事は画面に入ったら順に下から（main.js「お知らせ一覧」） */
  @media (prefers-reduced-motion:no-preference){
    .nwh .pg-crumb{ animation:nwdUp .7s .1s cubic-bezier(.2,.7,.2,1) both; }
    .nwh .pg-lead{ animation:nwdUp .8s .35s cubic-bezier(.2,.7,.2,1) both; }
    .nwt::before{ animation:nwdRing 1.6s .4s cubic-bezier(.2,.7,.2,1) both; }
    .nwt::after{ animation:nwdRing 1.6s .6s cubic-bezier(.2,.7,.2,1) both; }
    .nwt__side{ animation:nwdLeft .9s .5s cubic-bezier(.2,.7,.2,1) both; }
    .nwt__tl::before{ transform-origin:top; animation:nwdGrow 1.6s .6s cubic-bezier(.6,.05,.3,1) both; }
    .nwt.is-anim .nwt__tl > li{ opacity:0; transform:translateY(18px); transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.2,1); transition-delay:var(--d,0s); }
    .nwt.is-anim .nwt__tl > li.is-in{ opacity:1; transform:none; }
  }
  @keyframes nwhIn{ from{ opacity:0; transform:translateX(32px); } to{ opacity:1; transform:none; } }
  @keyframes nwdLeft{ from{ opacity:0; transform:translateX(-20px); } to{ opacity:1; transform:none; } }
  @keyframes nwdGrow{ from{ transform:scaleY(0); } to{ transform:scaleY(1); } }

/* ============================================================
   メンバー紹介の一覧：最後の「ほか数名」（横長の紺のカード）
   page-member.php の一覧（.mbl）のすぐ下。人のシルエットを重ねて、最後にオレンジの「…」
   ============================================================ */
  .mbl-more{ position:relative; overflow:hidden; display:flex; align-items:center; gap:40px; margin-top:clamp(56px,7vw,80px); padding:40px clamp(28px,5vw,64px); background:linear-gradient(120deg,#0b3f8f,#003885 50%,#00265e); color:#fff; }
  .mbl-more::before{ content:""; position:absolute; right:-120px; top:-180px; width:420px; aspect-ratio:1; border-radius:50%; box-shadow:inset 0 0 0 36px rgba(255,255,255,.06); pointer-events:none; }   /* 右上に輪 */
  .mbl-more__av{ position:relative; display:flex; flex:none; }
  .mbl-more__av i{ display:flex; align-items:flex-end; justify-content:center; width:64px; height:64px; margin-left:-16px; border-radius:50%; overflow:hidden; background:#2c5aa0; box-shadow:0 0 0 3px #003885; font-style:normal; }
  .mbl-more__av i:first-child{ margin-left:0; }
  .mbl-more__av svg{ width:80%; fill:rgba(255,255,255,.55); }
  .mbl-more__av i.is-dots{ align-items:center; background:#ff7f00; font-size:1.4rem; font-weight:700; color:#fff; }
  .mbl-more__tx{ position:relative; }
  .mbl-more__en{ display:block; font-family:"Jost",sans-serif; font-size:.78rem; font-weight:500; letter-spacing:.26em; text-transform:uppercase; color:#9dc0ee; }
  .entry .mbl-more__ttl{ margin:6px 0 0; font-size:1.35rem; font-weight:900; line-height:1.6; letter-spacing:.04em; color:#fff; }
  .entry .mbl-more__txt{ margin:6px 0 0; font-size:.92rem; line-height:1.9; color:rgba(255,255,255,.8); }
  @media(max-width:760px){
    .mbl-more{ flex-direction:column; align-items:flex-start; gap:20px; padding:32px 24px; }
    .mbl-more__av i{ width:52px; height:52px; margin-left:-12px; }
    .entry .mbl-more__ttl{ font-size:1.15rem; }
  }

/* ============================================================
   39（続き）会社概要：写真なしの形（2026年10月）
   ・会社概要（HD）の表は横いっぱい
   ・グループ各社は1社ずつ、本文の幅に収めた角の丸いブロック（淡い青と白を交互）。左に大きなオレンジの番号と線画のアイコン、右に情報、右下に英字の透かし
   ============================================================ */
  .p-group .p-group__hd-grid.is-full{ grid-template-columns:minmax(0,1fr); }
  /* グループ各社：本文の幅（.p-group__inner）に収めた角の丸いブロックを、淡い青と白（線の枠）で交互に */
  .p-group .p-group__chapter--bands{ padding-bottom:140px; }
  .p-group .p-group__chapter--bands .pg-h2{ margin-bottom:40px; }
  .p-group .p-group__bt{ position:relative; overflow:hidden; margin-top:16px; padding:56px clamp(24px,4vw,56px); background:#fff; border:1px solid var(--pg-rule); border-radius:12px; }
  .p-group .pg-h2 + .p-group__bt{ margin-top:0; }
  .p-group .p-group__bt.is-tint{ background:#f4f7fb; border-color:transparent; }
  .p-group .p-group__bt-en{ position:absolute; right:-.5%; bottom:-.18em; font-family:"Jost",sans-serif; font-size:clamp(4rem,10vw,8.6rem); font-weight:600; line-height:1; letter-spacing:-.01em; color:transparent; -webkit-text-stroke:1.5px rgba(0,56,133,.1); white-space:nowrap; pointer-events:none; user-select:none; }
  .p-group .p-group__bt-in{ position:relative; display:grid; grid-template-columns:minmax(0,3fr) minmax(0,8fr); gap:56px; }
  .p-group .p-group__bt-l{ display:flex; flex-direction:column; align-items:flex-start; gap:18px; color:var(--pg-navy); }
  .p-group .p-group__bt-no{ font-family:"Jost",sans-serif; font-size:clamp(3rem,5vw,4.2rem); font-weight:300; line-height:1; color:var(--pg-orange); }
  .p-group .p-group__bt-ic{ width:88px; height:88px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
  .p-group .p-group__bt-r{ max-width:680px; }
  .p-group .p-group__bt-r .p-group__org-lead{ margin-bottom:0; }
  /* 業務のタグ */
  .p-group .p-group__tags{ list-style:none; margin:20px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:6px; }
  .p-group .p-group__tags li{ padding:.15em .9em; border:1px solid #d6e4f5; border-radius:999px; background:#fff; font-size:13px; font-weight:700; line-height:1.8; color:var(--pg-navy); }
  .p-group .p-group__bt-r .p-group__spec{ margin-top:24px; }
  .p-group .p-group__bt-r .p-group__logos li{ background:#fff; }
  @media (max-width:900px){
    .p-group .p-group__chapter--bands{ padding-bottom:88px; }
    .p-group .p-group__bt{ padding:32px 22px; }
    .p-group .p-group__bt-in{ grid-template-columns:1fr; gap:20px; }
    .p-group .p-group__bt-l{ flex-direction:row; align-items:center; }
    .p-group .p-group__bt-ic{ width:56px; height:56px; }
  }

/* ============================================================
   48. 共通ヘッダー（header.php）2026年10月 改訂版
   ・白い帯（パソコン88px／スマホ64px）。左にロゴ、右にメニュー・紺のお問い合わせ
   ・いま見ているページの下にオレンジの線、マウスを乗せると紺の線
   ・「サービス」にマウスを乗せると、下にサービスの一覧（メガメニュー）
   ・スマホは右の紺の四角で、紺の画面いっぱいのメニューを開く（main.js が body に .nav-open）
   ※ 4章の header の指定（以前のヘッダー）や、お問い合わせページの header の指定より優先させるため header#siteHeader.gh から書く
   ============================================================ */
  header#siteHeader.gh{ position:fixed; top:0; left:0; right:0; z-index:80; display:flex; align-items:stretch; justify-content:flex-start; height:88px; padding:0 0 0 40px; background:#fff; border-bottom:1px solid rgba(12,27,71,.08); backdrop-filter:none; transition:none; }
  .gh-logo{ display:flex; align-items:center; flex-shrink:0; }
  .gh-logo img{ display:block; width:176px; height:auto; }
  .gh-nav{ display:flex; align-items:stretch; margin-left:auto; }
  .gh-menu{ display:flex; align-items:stretch; margin:0 24px 0 0; padding:0; list-style:none; }
  .gh-menu > li{ display:flex; }
  .gh-menu > li > a{ position:relative; display:flex; align-items:center; padding:0 18px; font-size:14px; font-weight:500; letter-spacing:.08em; color:#0c1b47; white-space:nowrap; transition:color .2s; }
  .gh-menu > li > a::after{ content:""; position:absolute; left:18px; right:18px; bottom:26px; height:2px; background:#003885; transform:scaleX(0); transform-origin:left; transition:transform .3s cubic-bezier(.2,.7,.2,1); }
  .gh-menu > li > a:hover, .gh-has-mega:hover > a, .gh-has-mega:focus-within > a{ color:#003885; }
  .gh-menu > li > a:hover::after, .gh-has-mega:hover > a::after, .gh-has-mega:focus-within > a::after{ transform:scaleX(1); }
  .gh-menu > li > a.is-current::after{ background:#ff7f00; transform:scaleX(1); }   /* いま見ているページ：オレンジ */
  .gh-cta{ display:flex; align-items:center; justify-content:center; gap:10px; width:218px; background:#003885; color:#fff; font-size:15px; font-weight:700; letter-spacing:.08em; transition:background-color .2s; }
  .gh-cta:hover{ background:#00265e; color:#fff; }
  .gh-cta svg{ flex:none; }

  /* メガメニュー（サービス） */
  .gh-mega{ position:absolute; left:0; right:0; top:100%; background:#fff; border-top:1px solid rgba(12,27,71,.1); border-bottom:3px solid #003885; box-shadow:0 24px 40px rgba(12,27,71,.08); opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .25s, transform .25s, visibility 0s .25s; }
  .gh-has-mega:hover .gh-mega, .gh-has-mega:focus-within .gh-mega{ opacity:1; visibility:visible; transform:none; transition:opacity .25s, transform .25s, visibility 0s 0s; }
  .gh-mega__in{ max-width:1120px; margin:0 auto; padding:40px 40px 44px; display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr; gap:40px; }
  .gh-mega__ttl{ margin:0 0 16px; font-size:22px; font-weight:700; letter-spacing:.06em; color:#0c1b47; }
  .gh-mega__all{ font-size:13px; letter-spacing:.06em; color:#003885; border-bottom:1px solid #003885; padding-bottom:2px; }
  .gh-mega__h{ margin:0 0 18px; padding-bottom:10px; border-bottom:1px solid rgba(12,27,71,.1); font-size:14px; font-weight:700; letter-spacing:.08em; color:#0c1b47; }
  .gh-mega ul{ display:flex; flex-direction:column; gap:14px; margin:0; padding:0; list-style:none; }
  .gh-mega__nm{ display:block; font-size:14px; letter-spacing:.06em; color:#0c1b47; transition:color .2s; }
  .gh-mega__co{ display:block; margin-top:2px; font-size:12px; letter-spacing:.04em; color:#5d6d96; }
  .gh-mega a:hover .gh-mega__nm{ color:#003885; text-decoration:underline; text-underline-offset:4px; }

  /* スマホのボタン・メニュー（パソコンでは出さない） */
  .gh-toggle{ display:none; }
  .gh-panel{ display:none; }

  /* 画面が少し狭いパソコン：メニューの間隔を詰める */
  @media (max-width:1320px){
    .gh-menu > li > a{ padding:0 12px; font-size:13.5px; }
    .gh-menu > li > a::after{ left:12px; right:12px; }
    .gh-menu{ margin-right:16px; }
    .gh-cta{ width:180px; }
  }
  /* スマホ・タブレット */
  @media (max-width:1080px){
    header#siteHeader.gh{ height:64px; padding-left:20px; justify-content:space-between; }
    .gh-logo img{ width:140px; }
    .gh-nav{ display:none; }
    .gh-toggle{ position:relative; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:6px; width:64px; height:64px; margin:0; padding:0; border:0; background:#003885; cursor:pointer; }
    .gh-toggle span{ display:block; width:22px; height:2px; background:#fff; transition:transform .3s, opacity .2s; }
    body.nav-open .gh-toggle span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
    body.nav-open .gh-toggle span:nth-child(2){ opacity:0; }
    body.nav-open .gh-toggle span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }
    .gh-panel{ position:fixed; top:64px; left:0; right:0; bottom:0; z-index:79; display:block; overflow-y:auto; background:#0c1b47; color:#e3eaf8; padding:8px 0 40px; opacity:0; visibility:hidden; transition:opacity .25s, visibility 0s .25s; }
    body.nav-open .gh-panel{ opacity:1; visibility:visible; transition:opacity .25s, visibility 0s 0s; }
    body.nav-open{ overflow:hidden; }
    .gh-sp{ margin:0; padding:0; list-style:none; }
    .gh-sp > li{ position:relative; border-bottom:1px solid rgba(255,255,255,.12); }
    .gh-sp > li > a{ display:block; padding:18px 24px; font-size:15px; letter-spacing:.08em; color:#fff; }
    .gh-sp__btn{ position:absolute; top:0; right:0; width:64px; height:63px; border:0; background:transparent; cursor:pointer; }
    .gh-sp__btn span{ position:absolute; top:31px; left:25px; width:14px; height:2px; background:#fff; transition:transform .25s; }
    .gh-sp__btn span:nth-child(2){ transform:rotate(90deg); }
    .gh-sp__btn[aria-expanded="true"] span:nth-child(2){ transform:rotate(0); }   /* ＋ → － */
    .gh-sp__sub{ padding:0 24px 24px; display:flex; flex-direction:column; gap:24px; }
    .gh-sp__sub[hidden]{ display:none; }
    .gh-sps__h{ margin:0 0 12px; font-size:13px; font-weight:700; letter-spacing:.08em; color:#fff; }
    .gh-sps__col ul{ display:flex; flex-direction:column; gap:12px; margin:0; padding:0; list-style:none; }
    .gh-sps__nm{ display:block; font-size:14px; letter-spacing:.06em; color:#e3eaf8; }
    .gh-sps__co{ display:block; margin-top:2px; font-size:12px; letter-spacing:.04em; color:#93a7d4; }
    .gh-sp__cta{ display:flex; align-items:center; justify-content:center; gap:10px; margin:32px 24px 0; height:56px; background:#fff; color:#0c1b47; font-size:15px; font-weight:700; letter-spacing:.08em; }
  }
  @media (prefers-reduced-motion:reduce){
    .gh-menu > li > a::after, .gh-mega, .gh-panel, .gh-toggle span, .gh-sp__btn span{ transition:none; }
  }

/* ============================================================
   49. 事業・サービス（page-service.php）2026年10月 改訂版
   ・クラス名は .svx の中だけに効く（ほかのページに影響しない）
   ・上：ページ名＋写真、3事業の入口（水色・紺・オレンジ）
   ・特徴（紺の帯・図）→ 01 コンサル → 02 総合法律事務所 → 03 金融・保険 → 締め
   ============================================================ */
.svx{font-family:var(--ff-jp);color:var(--ink);font-size:16px;font-weight:400;line-height:1.95;letter-spacing:.04em;background:#fff;-webkit-font-smoothing:antialiased;padding-top:0}
@media (max-width:640px){.svx{font-size:15px}}
.svx img{max-width:100%;height:auto;display:block}
.svx a{color:inherit;text-decoration:none}
.svx ul,.svx ol{list-style:none;margin:0;padding:0}
.svx h1,.svx h2,.svx h3,.svx h4,.svx p{margin:0}
.svx :focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.svx h1,.svx h2,.svx h3,.svx p,.svx dd,.svx li{word-break:auto-phrase;text-wrap:pretty}
.svx b,.svx strong,.svx h1,.svx h2,.svx h3,.svx h4{font-weight:500}
.svx{--navy:#003885;--navy-deep:#00265e;--navy-mid:#1d5fbf;
  --ink:#141b2b;--sub:#46516a;--mark:#d3e2f6;--pale:#f2f6fb;--line:#dbe3ee;--orange:#ff7f00;
  --c-blue:#1e9fd8;
  --ff-jp:'Hiragino Kaku Gothic ProN','Hiragino Sans','ヒラギノ角ゴ ProN W3','BIZ UDPGothic','Meiryo',sans-serif;   /* サイト全体と同じ（style.css の body） */
  --ff-en:'Jost','Futura','Century Gothic',sans-serif;   /* 英字：トップページなどと同じ Jost */
  --ff-serif:var(--ff-en);   /* 英字の見出し（Service・Consulting など）も Jost にそろえる */
  --wrap:1240px;--gut:6vw;}   /* 横幅：ほかのページ（.pg-wrap：中身1240px・左右6%）と同じ */
.svx .wrap{box-sizing:content-box;max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.svx .u-sp{display:none}
@media (max-width:640px){
  .svx .u-sp{display:inline}
  .svx .u-pc{display:none}
}
.svx .sec{padding:clamp(88px,11vw,152px) 0}
.svx .sec-en{font-family:var(--ff-serif);font-weight:700;font-size:clamp(16px,1.4vw,20px);letter-spacing:.04em;line-height:1.2;color:var(--navy);display:block;margin-bottom:10px}
.svx .sec-ttl{font-size:clamp(26px,2.8vw,36px);font-weight:500;line-height:1.5;color:var(--ink);letter-spacing:.06em}
.svx .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:64px;padding:0 36px;font-weight:500;font-size:15px;letter-spacing:.08em;transition:background-color .2s,color .2s,border-color .2s}
.svx .btn svg{width:18px;height:18px;flex:none}
.svx .btn--cta{background:var(--orange);color:#fff}
.svx .btn--cta:hover{background:#e86f00}
.svx .btn--line{border:1px solid var(--navy);color:var(--navy);background:#fff}
.svx .btn--line:hover{background:var(--navy);color:#fff}
.svx .btn--line-w{border:1px solid rgba(255,255,255,.7);color:#fff}
.svx .btn--line-w:hover{background:#fff;color:var(--navy)}
.svx .more{display:inline-flex;align-items:center;gap:14px;font-weight:500;color:var(--navy);font-size:15px;padding-bottom:4px;border-bottom:1px solid currentColor}
.svx .more i{position:relative;width:24px;height:1px;background:currentColor;transition:width .25s}
.svx .more i::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.svx .more:hover i{width:36px}
.svx .ph{position:relative;overflow:hidden;background:linear-gradient(160deg,#f4f7fb,#e3eaf4);display:grid;place-items:center;color:#9fb3cf;font-family:var(--ff-en);font-size:12px;letter-spacing:.14em}
.svx .ph::before{content:"";position:absolute;width:120%;aspect-ratio:1;border-radius:50%;border:36px solid #fff;opacity:.6;right:-64%;bottom:-48%}
.svx .ph span{position:relative}
.svx .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.svx .fv{position:relative;overflow:hidden;background:#fff}
.svx .fv::before{content:"";position:absolute;width:980px;height:980px;border-radius:50%;border:100px solid var(--pale);left:-600px;bottom:-660px;pointer-events:none}
.svx .fv::after{content:"";position:absolute;width:1500px;height:1500px;border-radius:50%;border:140px solid var(--pale);right:-760px;top:-620px;pointer-events:none}
.svx .fv__in{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(24px,3vw,56px);align-items:start;padding-top:160px;padding-bottom:clamp(48px,6vw,88px)}   /* 上の余白はほかのページ（.pg-hero）と同じ160px（固定ヘッダーのぶんを含む） */
@media (max-width:760px){.svx .fv__in{padding-top:120px}}
.svx .crumb{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;line-height:1.6;color:#5d6878;margin-bottom:48px}   /* パンくず：ほかのページ（.pg-crumb）と同じ */
@media (max-width:760px){.svx .crumb{margin-bottom:32px}}
.svx .crumb a:hover{color:var(--navy);text-decoration:underline}
.svx .fv__ttl{color:var(--navy);line-height:1.2}
.svx .fv__brand{display:block;font-family:var(--ff-jp);font-weight:700;font-size:clamp(44px,4.8vw,72px);letter-spacing:.06em;line-height:1.1}   /* トップページ上部の「altruloop」と同じ書体（サイトの日本語の書体の太字） */
.svx .fv__kana{display:block;margin:clamp(16px,1.6vw,22px) 0 6px;font-size:clamp(13px,1.1vw,15px);font-weight:400;letter-spacing:.2em;color:var(--sub)}
.svx .fv__head .pg-title{margin:0 0 28px}
.svx .fv__head + .fv__lead{margin-top:0}   /* ページ名とリード文の間：ほかのページと同じ */   /* ページ名（手書きのまる）。ほかのページと同じ形 */
.svx .fv__lead{margin-top:clamp(22px,2.6vw,36px);font-size:clamp(15px,1.25vw,18px);line-height:2.1}
.svx .fv__photo{position:relative;aspect-ratio:5/3;width:calc(100% + var(--gut));margin-right:calc(var(--gut) * -1);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 94%,transparent),linear-gradient(transparent,#000 7%,#000 93%,transparent);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent,#000 9%,#000 94%,transparent),linear-gradient(transparent,#000 7%,#000 93%,transparent);mask-composite:intersect}
.svx .fv__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:svxFvIn 1.6s cubic-bezier(.2,.7,.2,1) both}
@keyframes svxFvIn{from{opacity:0;transform:scale(1.03)}to{opacity:1;transform:none}}
.svx .svmap{position:relative;z-index:1;padding-bottom:clamp(64px,7vw,104px)}
.svx .svmap{position:relative;z-index:1;padding-bottom:clamp(72px,8vw,120px)}
.svx .idx{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,24px);position:relative;z-index:1}
.svx .idx a{--g1:#1d5fbf;--g2:#00265e;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(240px,21vw,320px);padding:clamp(24px,2.2vw,34px);color:#fff;background:linear-gradient(135deg,var(--g1),var(--g2))}
.svx .idx a.is-c{--g1:#35b0e6;--g2:#0b6fae}
.svx .idx a.is-f{--g1:#ff9a30;--g2:#e35a00}
.svx .idx a::before{content:"";position:absolute;width:118%;aspect-ratio:1;border-radius:50%;border:58px solid #fff;opacity:.1;right:-62%;top:-74%;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.svx .idx a::after{content:"";position:absolute;width:64%;aspect-ratio:1;border-radius:50%;border:1.5px solid rgba(255,255,255,.55);right:-14%;top:-30%}
.svx .idx a:hover::before{transform:rotate(-8deg) translate(-4%,4%)}
.svx .idx__no{position:absolute;left:clamp(24px,2.2vw,34px);top:clamp(22px,2vw,30px);z-index:1;font-family:var(--ff-en);font-weight:300;font-size:15px;letter-spacing:.12em}
.svx .idx__en{position:relative;z-index:1;font-family:var(--ff-serif);font-weight:700;font-size:13px;letter-spacing:.02em;opacity:.85}
.svx .idx__name{position:relative;z-index:1;margin-top:6px;font-size:clamp(21px,1.9vw,27px);font-weight:500;letter-spacing:.06em;line-height:1.3;white-space:nowrap}
.svx .idx__desc span{white-space:nowrap}
.svx .idx__desc{position:relative;z-index:1;margin-top:14px;padding-top:14px;padding-right:44px;border-top:1px solid rgba(255,255,255,.4);font-size:13px;letter-spacing:.04em;opacity:.9}
.svx .idx a>i{position:absolute;right:clamp(24px,2.2vw,34px);bottom:clamp(30px,2.6vw,40px);z-index:1;width:24px;height:1px;background:#fff;transition:width .25s}
.svx .idx a>i::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid #fff;border-right:1px solid #fff;transform:rotate(45deg)}
.svx .idx a:hover>i{width:36px}
.svx .dl{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.4s cubic-bezier(.65,0,.25,1)}
.svx .is-in .dl{stroke-dashoffset:0}
.svx .fi{opacity:0;transition:opacity .6s}
.svx .is-in .fi{opacity:1}
.svx .str{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.svx .str::before{content:"";position:absolute;width:1300px;height:1300px;border-radius:50%;border:120px solid rgba(255,255,255,.045);right:-640px;top:-520px;pointer-events:none}
.svx .str::after{content:"";position:absolute;width:900px;height:900px;border-radius:50%;border:1px solid rgba(255,255,255,.12);left:-520px;bottom:-380px;pointer-events:none}
.svx .str .wrap{position:relative;z-index:1}
.svx .str .sec-en{color:#cfe0f5}
.svx .str .sec-ttl{color:#fff}
.svx .str__list{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(48px,5vw,72px)}
.svx .str__item{padding:0 clamp(18px,2vw,32px);border-left:1px solid rgba(255,255,255,.22)}
.svx .str__item:last-child{border-right:1px solid rgba(255,255,255,.22)}
.svx .str__fig{aspect-ratio:16/10;margin-bottom:28px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14)}
.svx .str__fig svg{display:block;width:100%;height:100%;font-family:var(--ff-jp)}
.svx .sf-t{fill:#fff;font-size:13px;font-weight:500;letter-spacing:.06em}
.svx .sf-s{fill:#b8cbe6;font-size:11.5px;letter-spacing:.06em}
.svx .sf-o{fill:var(--orange);font-size:12.5px;font-weight:500;letter-spacing:.06em}
.svx .str__no{font-family:var(--ff-en);font-weight:300;font-size:15px;letter-spacing:.14em;color:#cfe0f5}
.svx .str__item h3{margin-top:10px;font-size:clamp(18px,1.5vw,21px);font-weight:500;line-height:1.6;letter-spacing:.06em}
.svx .str__item h3 span{white-space:nowrap}
.svx .str__item p.d{margin-top:14px;font-size:15px;line-height:2;color:#e8eef8}
.svx .bz{--g1:#1d5fbf;--g2:#00265e;--c:var(--navy);background:#fff}
.svx .bz.is-c{--g1:#35b0e6;--g2:#0b6fae;--c:#1a8cc4}
.svx .bz.is-f{--g1:#ff9a30;--g2:#e35a00;--c:#e36f00}
.svx .bz+.bz{padding-top:0}
.svx .bz__hd{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,80px);padding-top:clamp(28px,3vw,40px);border-top:6px solid transparent;border-image:linear-gradient(90deg,var(--g1),var(--g2)) 1}
.svx .bz__no{font-family:var(--ff-en);font-weight:300;font-size:15px;letter-spacing:.14em;color:var(--c);margin-bottom:14px}
.svx .bz .sec-en{color:var(--c)}
.svx .bz__lead{font-size:clamp(15px,1.2vw,17px);line-height:2;letter-spacing:.04em}
.svx .bz__entity{margin-top:14px;font-size:13.5px;color:var(--sub)}
.svx .bz__entity b{color:var(--ink);font-weight:500}
.svx .bz__hd .btn{margin-top:28px}
.svx .ls{margin-top:clamp(40px,4vw,56px);border-top:1px solid var(--ink)}
.svx .ls__row{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(20px,3vw,48px);align-items:baseline;padding:26px 0;border-bottom:1px solid var(--line)}
.svx .ls.is-link .ls__row{grid-template-columns:240px 170px minmax(0,1fr) 40px}
.svx .ls.is-link .ls__name b{display:inline;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .35s;padding-bottom:2px}
.svx .ls.is-link .ls__row:hover .ls__name b{background-size:100% 1px}
.svx .ls__name span{display:block;font-family:var(--ff-serif);font-style:normal;font-size:12.5px;color:var(--c);letter-spacing:.02em;margin-bottom:2px}
.svx .ls__name b{display:block;font-size:19px;font-weight:500;letter-spacing:.06em;line-height:1.4}
.svx .ls__name small{display:block;margin-top:4px;font-size:12px;color:var(--sub);letter-spacing:0}
.svx .ls__area{font-size:13.5px;font-weight:500;color:var(--c);letter-spacing:.04em}
.svx .ls__lead{font-size:15px;line-height:1.9;margin-bottom:8px}
.svx .ls__items{font-size:14.5px;line-height:1.95;color:#3a4458;letter-spacing:.02em}
.svx .ls__items span{white-space:nowrap}
.svx .ls__go{position:relative;justify-self:end;align-self:center;width:28px;height:1px;background:var(--ink)}
.svx .ls__go::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid var(--ink);border-right:1px solid var(--ink);transform:rotate(45deg)}
.svx .ls__go{transition:transform .3s}
.svx .ls.is-link .ls__row:hover .ls__go{transform:translateX(6px)}
.svx .ins{margin-top:clamp(48px,5vw,64px);display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(20px,3vw,48px);align-items:start}
.svx .ins__ttl{margin-top:38px;font-size:15px;font-weight:500;letter-spacing:.06em}
.svx .ins__logos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.svx .ins__logos li{display:grid;place-items:center;height:104px;padding:0 20px;background:#fff;border:1px solid var(--line)}
.svx .ins__logos img{width:auto;max-width:100%;object-fit:contain}
.svx .fin__note{margin-top:24px;display:flex;flex-wrap:wrap;gap:8px 28px;font-size:13px;color:var(--sub)}
.svx .fin__note a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}
@media (max-width:900px){
  .svx .bz__hd{grid-template-columns:1fr;gap:20px}
  .svx .ls__row,.svx .ls.is-link .ls__row{grid-template-columns:1fr;gap:8px}
  .svx .ls__go{display:none}
  .svx .ins{grid-template-columns:1fr;gap:16px}
  .svx .ins__ttl{margin-top:0}
  .svx .ins__logos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .svx .ins__logos li{height:84px;padding:0 14px}
  .svx .ins__logos img{transform:scale(.8)}
}
.svx .cl{background:var(--navy-deep);color:#fff;position:relative;overflow:hidden;text-align:center}
.svx .cl__art{position:absolute;left:50%;top:50%;width:min(1100px,150vw);aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none}
.svx .cl .wrap{position:relative;z-index:1}
.svx .cl__ttl{font-size:clamp(25px,4.2vw,54px);font-weight:500;letter-spacing:.1em;line-height:1.5}
.svx .cl__body{max-width:40em;margin:32px auto 0;line-height:2.1;color:#eef3fb}
.svx .cl__cta{display:flex;justify-content:center;flex-wrap:wrap;gap:20px;margin-top:52px}
.svx .cl__cta .btn{min-width:260px}
.svx .bz__hd{grid-template-columns:minmax(0,6fr) minmax(0,5fr)!important;align-items:stretch}
.svx .bz__txt .bz__lead{margin-top:clamp(20px,2vw,28px)}
.svx .bz__vis{--g1:#1d5fbf;--g2:#00265e;position:relative;overflow:hidden;min-height:clamp(260px,24vw,340px);background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff}
.svx .bz__vis.is-c{--g1:#35b0e6;--g2:#0b6fae}
.svx .bz__vis.is-f{--g1:#ff9a30;--g2:#e35a00}
.svx .bz__vis::before{content:"";position:absolute;width:120%;aspect-ratio:1;border-radius:50%;border:clamp(50px,5vw,72px) solid #fff;opacity:.1;right:-58%;top:-70%}
.svx .bz__vis::after{content:"";position:absolute;width:66%;aspect-ratio:1;border-radius:50%;border:1.5px solid rgba(255,255,255,.55);right:-12%;top:-26%}
.svx .bz__vno{position:absolute;left:clamp(24px,2.4vw,36px);top:clamp(22px,2.2vw,32px);font-family:var(--ff-en);font-weight:300;font-size:15px;letter-spacing:.12em}
.svx .bz__ven{position:absolute;left:clamp(24px,2.4vw,36px);bottom:clamp(22px,2.2vw,32px);right:24px;font-family:var(--ff-serif);font-weight:400;font-size:clamp(26px,2.6vw,38px);line-height:1.15;letter-spacing:.01em}
@media (max-width:900px){
  .svx .bz__hd{grid-template-columns:1fr!important}
  .svx .bz__vis{min-height:200px;order:-1}
}
.svx .bz .bz__txt .btn{border:0;color:#fff;background:linear-gradient(135deg,var(--g1),var(--g2));transition:filter .25s}
.svx .bz .bz__txt .btn:hover{filter:brightness(.9);color:#fff;background:linear-gradient(135deg,var(--g1),var(--g2))}
@media (max-width:900px){
  .svx .fv__in{grid-template-columns:1fr}
  .svx .fv__photo{width:calc(100% + var(--gut) * 2);margin:0 calc(var(--gut) * -1)}
  .svx .fv::after{display:none}
  .svx .idx{grid-template-columns:1fr}
  .svx .idx a{min-height:196px}
  .svx .str__list{grid-template-columns:1fr}
  .svx .str__item,.svx .str__item:last-child{border:0;border-top:1px solid rgba(255,255,255,.22);padding:36px 0}
  .svx .str__item:last-child{border-bottom:1px solid rgba(255,255,255,.22)}
  .svx .ins{grid-template-columns:1fr;gap:20px}
  .svx .ins__ttl{margin-top:0}
  .svx .ins__logos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .svx .ins__logos li{height:84px;padding:0 14px}
  .svx .ins__logos img{transform:scale(.8)}
}
@media (max-width:640px){
  .svx .cl__cta .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  .svx .dl{stroke-dashoffset:0!important;animation:none;transition:none}
  .svx .fi{opacity:1!important}
}

/* ============================================================
   50. ページ名の手書きのまるを外す（2026年10月）
   ・会社概要・事業・サービス・メンバー紹介・お知らせ・お問い合わせ・各方針など、
     ホールディングスのページ名（.pg-title）を囲んでいた淡い青の手書きのまるを、すべて表示しない
   ・まるのために空けていた左右の余白もなくし、パンくず・リード文と文字の頭をそろえる
   ・元に戻すときは、この章を消す
   ============================================================ */
  :is(.tp,.pg) .pg-title-loop{ display:none; }
  :is(.tp,.pg) .pg-title{ padding:0; }

/* ============================================================
   51. 会社概要 2026年10月 改訂版（page-about.php）
   ・会社概要（ホールディングス）の表の右に地図
   ・グループ各社は「地図＋会社の情報」を左右交互に（39章の .p-group__org の形をそのまま使う）
   ・分野名は手書きのまるなしの文字だけ／リンクは矢印付き
   ============================================================ */
  /* 地図（Googleマップの埋め込み） */
  .p-group .p-group__map{ margin:0; aspect-ratio:4/3; overflow:hidden; border:1px solid var(--pg-rule); background:#f4f7fb; }
  .p-group .p-group__map iframe{ display:block; width:100%; height:100%; border:0; }
  .p-group .p-group__hd-grid .p-group__map{ aspect-ratio:1/1; }
  .p-group .p-group__org:nth-of-type(even) .p-group__map{ order:2; }   /* 偶数番目は地図を右に */
  /* グループ各社の見出しの下の注記 */
  .p-group .p-group__note{ margin:-32px 0 40px; font-size:14px; line-height:1.9; color:var(--pg-sub); }
  /* 分野名：手書きのまるなし */
  .p-group .p-group__field{ padding:0; }
  .p-group .p-group__field svg{ display:none; }
  /* リンクの矢印（サイト内は →、外部サイトは ↗） */
  .p-group .p-group__links a.more{ display:inline-flex; align-items:center; gap:8px; }
  .p-group .p-group__links a.more i{ display:inline-flex; width:12px; height:12px; flex:none; transition:transform .25s; }
  .p-group .p-group__links a.more svg{ width:100%; height:100%; stroke:currentColor; }
  .p-group .p-group__links a.more:hover i{ transform:translateX(3px); }
  @media (max-width:900px){
    .p-group .p-group__hd-grid .p-group__map{ aspect-ratio:16/10; order:0; }   /* スマホ：表の下に地図 */
    .p-group .p-group__org:nth-of-type(even) .p-group__map{ order:0; }
    .p-group .p-group__map{ aspect-ratio:16/10; }
    .p-group .p-group__note{ margin:-20px 0 28px; }
  }

/* ============================================================
   52. ご支援事例（archive-works.php）2026年10月 改訂版
   ・クラス名は .wks の中だけに効く（ほかのページに影響しない）
   ・数字で見る実績 → 探し方（分野・業界） → 事例の一覧 → 各事例の詳細（#detail-◯◯ で切り替え）
   ・書体・横幅は、ほかのページ（会社概要・事業・サービスなど）とそろえる（最後の「そろえる」の部分）。上部は紺の帯のデザイン（添付のHTMLどおり）
   ============================================================ */
.wks{--ph:#e9ecf0;
  --blue:#003885;
  --pale:#d6e4f5;
  --pale-2:#eef3fa;
  --orange:#ff7f00;
  --ink:#1c2738;
  --ink-2:#5d6878;
  --ink-3:#97a0ad;
  --line:#e3e7ed;
  --white:#fff;
  --ff:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
  --ff-en:"Outfit","Zen Kaku Gothic New",sans-serif;
  --wrap:1180px;
  --gutter:clamp(20px,4vw,40px);
  --hd:72px;
  color-scheme:light;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);}
.wks .wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.wks .cta{display:inline-flex;align-items:center;padding:1em 1.9em;border-radius:999px;background:var(--orange);color:#fff;font-weight:700;text-decoration:none;line-height:1.3;font-size:.95rem;transition:background-color .2s}
.wks .cta:hover{background:#e86f00}
.wks .ptitle{padding:calc(var(--hd) + clamp(56px,8vw,112px)) 0 clamp(48px,6vw,80px)}
.wks .crumb{font-size:.78rem;color:var(--ink-3);margin:0 0 28px}
.wks .crumb a{text-decoration:none}
.wks .crumb a:hover{color:var(--blue)}
.wks .ptitle-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px 64px}
.wks .ptitle h1{position:relative;display:inline-block;margin:0;font-weight:900;font-size:clamp(2.6rem,6.4vw,5rem);line-height:1.2;letter-spacing:.08em;padding:0 .35em}
.wks .ptitle h1 span{position:relative;z-index:1}
.wks .ptitle h1 svg{position:absolute;left:-6%;top:-18%;width:112%;height:136%;overflow:visible;z-index:0}
.wks .ptitle h1 path{fill:none;stroke:var(--pale);stroke-width:13;stroke-linecap:round;stroke-linejoin:round}
.wks .ptitle .lead{margin:0;max-width:30em;color:var(--ink-2)}
.wks .h2{display:inline;font-size:clamp(1.6rem,3vw,2.3rem);font-weight:900;line-height:1.55;letter-spacing:.04em;margin:0;background:linear-gradient(transparent 62%,var(--pale) 62%,var(--pale) 92%,transparent 92%)}
.wks .h2-wrap{margin:0 0 .8em}
.wks .lead2{margin:0;color:var(--ink-2);max-width:34em}
.wks .ptitle h1 svg path{fill:none}
.wks .entry{padding:clamp(40px,6vw,72px) 0 clamp(96px,12vw,160px)}
.wks .en-list{list-style:none;margin:clamp(36px,5vw,56px) 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(32px,6vw,88px);border-top:1px solid var(--ink)}
.wks .en-list li{border-bottom:1px solid var(--line)}
.wks .en-list a,.wks .en-a{display:grid;grid-template-columns:2.6em minmax(0,1fr) auto 18px;align-items:center;gap:14px;padding:clamp(20px,2.4vw,28px) 0;text-decoration:none}
.wks .en-main{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}
.wks .en-q{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:.8rem;color:var(--ink-2);line-height:1.6}
.wks .soon .en-t,.wks .soon .en-q,.wks .soon .en-c{color:var(--ink-3)}
.wks .soon .en-c{font-size:.74rem}
.wks .en-no{font-family:var(--ff-en);font-size:.85rem;color:var(--ink-3)}
.wks .en-t{font-size:clamp(1.08rem,1.8vw,1.32rem);font-weight:700;line-height:1.5;background-image:linear-gradient(transparent 60%,var(--pale) 60%,var(--pale) 92%,transparent 92%);background-repeat:no-repeat;background-size:0% 100%;transition:background-size .5s cubic-bezier(.6,.05,.3,1);justify-self:start}
.wks .en-c{font-size:.82rem;color:var(--ink-2)}
.wks .en-list svg,.wks .more svg{width:16px;height:16px;fill:none;stroke:var(--blue);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}
.wks .en-list a:hover .en-t{background-size:100% 100%}
.wks .en-list a:hover svg{transform:translateX(4px)}
@media (max-width:760px){
.wks .en-list{grid-template-columns:1fr}
}
.wks .tabsbar{position:sticky;top:calc(var(--hd) + env(safe-area-inset-top,0px));z-index:30;background:rgba(255,255,255,.97);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.wks .tabs{display:flex;gap:6px 22px;overflow-x:auto;scrollbar-width:none;white-space:nowrap}
.wks .tabs::-webkit-scrollbar{display:none}
.wks .tabs button{flex:none;border:0;background:none;cursor:pointer;padding:16px 0 14px;border-bottom:2px solid transparent;font-size:.85rem;font-weight:700;color:var(--ink-2);transition:color .2s,border-color .2s}
.wks .tabs button small{font-family:var(--ff-en);font-weight:500;font-size:.78rem;margin-left:.4em;color:var(--ink-3)}
.wks .tabs button:hover{color:var(--ink)}
.wks .tabs button[aria-pressed="true"]{color:var(--blue);border-bottom-color:var(--blue)}
.wks .tabs button[aria-pressed="true"] small{color:var(--blue)}
.wks .list{padding:0 0 clamp(96px,12vw,160px)}
.wks .cases{list-style:none;margin:0;padding:0}
.wks .case{position:relative;padding:clamp(48px,6vw,80px) 0;border-bottom:1px solid var(--line)}
.wks .case[hidden]{display:none}
.wks .case-nay{margin:0 0 10px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px;font-size:.82rem;font-weight:700;color:var(--blue)}
.wks .case-nay span:not(.status)::before{content:"#";margin-right:.15em;color:var(--ink-3);font-weight:400}
.wks .status{font-size:.74rem;color:var(--ink);border-bottom:2px solid var(--orange);line-height:1.5}
.wks .case h3{margin:0;font-size:clamp(1.3rem,2.4vw,1.85rem);font-weight:900;line-height:1.6;letter-spacing:.03em;max-width:30em}
.wks .case h3 a{text-decoration:none}
.wks .case h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.wks .mk{background-image:linear-gradient(transparent 62%,var(--pale) 62%,var(--pale) 92%,transparent 92%);background-repeat:no-repeat;background-size:0% 100%;transition:background-size .7s cubic-bezier(.6,.05,.3,1)}
.wks .case:hover .mk{background-size:100% 100%}
.wks .pair{display:grid;grid-template-columns:auto clamp(96px,10vw,140px) auto;justify-content:start;align-items:end;column-gap:clamp(14px,1.8vw,24px);max-width:880px;margin:clamp(24px,3vw,36px) 0 clamp(22px,3vw,30px)}
.wks .pair-ax{grid-column:1/-1;margin:0 0 14px;font-size:.86rem;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:10px;line-height:1.5}
.wks .pair-ax::before{content:"";flex:none;width:18px;height:2px;background:var(--blue)}
.wks .pv{display:flex;flex-direction:column;gap:6px;min-width:0}
.wks .pv-l{font-size:.72rem;font-weight:700;letter-spacing:.1em;line-height:1}
.wks .pv b{font-weight:900;font-size:clamp(1.6rem,3.4vw,2.7rem);line-height:1.15;letter-spacing:.02em;white-space:nowrap}
.wks .pv-b .pv-l{color:var(--ink-3)}
.wks .pv-b b{color:#b5bdc8}
.wks .pv-a .pv-l{color:var(--blue)}
.wks .pv-a b{color:var(--blue)}
.wks .pc{position:relative;height:40px;margin-bottom:calc(.575em - 8px);font-size:clamp(1.6rem,3.4vw,2.7rem);align-self:end}
.wks .pc-line{position:absolute;left:0;right:6px;bottom:6px;height:4px;border-radius:2px;background:#b9cfec;transform-origin:left center}
.wks .pc svg{position:absolute;left:50%;bottom:0;width:64px;height:40px;transform:translateX(-50%);overflow:visible}
.wks .pc svg path{fill:none;stroke:#b9cfec;stroke-width:4;stroke-linecap:round}
.wks .pc .pc-h{left:auto;right:0;width:12px;height:16px;transform:none;bottom:0}
.wks .pc .pc-h path{stroke:var(--blue);stroke-width:2;stroke-linejoin:round}
.wks .pair-lg{grid-template-columns:auto clamp(110px,12vw,170px) auto;max-width:1000px;margin-top:clamp(40px,5vw,60px)}
.wks .pair-lg .pv b,.wks .pair-lg .pc{font-size:clamp(2rem,4.6vw,3.8rem)}
.wk-js .wks .pc-line{transform:scaleX(0);transition:transform .7s cubic-bezier(.6,.05,.3,1) .1s}
.wk-js .wks .pc svg:not(.pc-h) path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .6s ease .45s}
.wk-js .wks .pc-h{opacity:0;transition:opacity .25s .9s}
.wk-js .wks .pv-a{opacity:0;transform:translateX(-10px);transition:opacity .5s 1s,transform .5s 1s}
.wk-js .wks .in .pc-line{transform:scaleX(1)}
.wk-js .wks .in .pc svg:not(.pc-h) path{stroke-dashoffset:0}
.wk-js .wks .in .pc-h{opacity:1}
.wk-js .wks .in .pv-a{opacity:1;transform:none}
@media (max-width:700px){
.wks .pair{grid-template-columns:minmax(0,1fr);row-gap:0}
.wks .pv b{white-space:normal;font-size:clamp(1.5rem,7vw,2rem)}
.wks .pair-lg .pv b{font-size:clamp(1.7rem,8vw,2.4rem)}
.wks .pc{width:56px;height:40px;transform:rotate(90deg);margin:20px 0 22px -4px;font-size:1rem}
}
.wks .case-meta{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px;font-size:.84rem;color:var(--ink-2)}
.wks .case-meta>span{display:inline-flex;align-items:center;gap:8px}
.wks .case-meta>span+span:not(.more)::before{content:"";width:1px;height:12px;background:var(--line);margin-right:20px}
.wks .ic{width:20px;height:20px;fill:none;stroke:var(--blue);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.wks .more{margin-left:auto;color:var(--blue);font-weight:700}
.wks .case:hover .more svg{transform:translateX(4px)}
@media (max-width:760px){
.wks .ba{grid-template-columns:minmax(0,1fr);gap:4px}
.wks .la{width:84px;transform:rotate(90deg);margin:8px 0 8px 6px}
.wks .more{margin-left:0;width:100%}
}
.wks .story{padding:clamp(96px,12vw,160px) 0;border-top:1px solid var(--line);position:relative}
.wks .story-meta{margin:20px 0 0;font-size:.84rem;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:6px 24px}
.wks .story-meta span{display:inline-flex;align-items:center;gap:8px}
.wks .st-wrap{position:relative;margin-top:clamp(56px,7vw,96px)}
.wks .st-line{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.wks .st-line path{fill:none;stroke:var(--pale);stroke-width:12;stroke-linecap:round;stroke-linejoin:round}
.wks .steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,40px);position:relative}
.wks .step{padding-top:96px;position:relative}
.wks .step i{position:absolute;top:58px;left:0;width:14px;height:14px;border-radius:50%;background:var(--blue);transform:scale(0);transition:transform .4s cubic-bezier(.3,1.6,.5,1)}
.wks .step.on i{transform:scale(1)}
.wks .st-l{margin:0 0 6px;font-size:.78rem;font-weight:700;color:var(--blue);letter-spacing:.1em}
.wks .step h3{margin:0;font-size:clamp(1.05rem,1.6vw,1.2rem);font-weight:700;line-height:1.6}
.wks .step p{margin:10px 0 0;font-size:.84rem;color:var(--ink-2);line-height:1.8}
.wks .step a{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-size:.82rem;font-weight:700;color:var(--blue);text-decoration:none}
.wks .step a svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.wks .step a:hover{text-decoration:underline;text-underline-offset:3px}
@media (max-width:760px){
.wks .steps{grid-template-columns:1fr;gap:44px}
.wks .step{padding:0 0 0 64px}
.wks .step i{top:8px;left:22px}
}
.wks .d-head{padding:calc(var(--hd) + clamp(48px,7vw,96px)) 0 clamp(24px,3vw,40px);border-bottom:1px solid var(--line)}
.wks .d-title{margin:0;font-size:clamp(1.6rem,3.6vw,2.6rem);font-weight:900;line-height:1.55;letter-spacing:.03em;max-width:24em}
.wks .d-grid{display:grid;grid-template-columns:230px minmax(0,1fr);gap:clamp(40px,7vw,104px);padding:clamp(56px,7vw,96px) var(--gutter) clamp(80px,9vw,120px)}
.wks .d-side{position:sticky;top:calc(var(--hd) + 32px);align-self:start}
.wks .d-side dl{margin:0}
.wks .d-side dl>div{padding:14px 0;border-top:1px solid var(--line)}
.wks .d-side dl>div:last-child{border-bottom:1px solid var(--line)}
.wks .d-side dt{font-size:.72rem;color:var(--ink-3);margin-bottom:4px}
.wks .d-side dd{margin:0;font-size:.88rem;font-weight:700;line-height:1.7}
.wks .d-side dd ul{list-style:none;margin:0;padding:0;font-weight:500;font-size:.84rem}
.wks .d-side dd li+li{margin-top:4px}
.wks .d-ind{display:flex;align-items:center;gap:8px}
.wks .back{display:inline-flex;align-items:center;gap:8px;margin-top:24px;font-size:.84rem;font-weight:700;color:var(--blue);text-decoration:none}
.wks .back svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}
.wks .back:hover svg{transform:translateX(-4px)}
.wks .d-lead{margin:0 0 clamp(56px,6vw,80px);font-size:clamp(1rem,1.5vw,1.12rem);font-weight:500;line-height:2.1;max-width:38em}
.wks .d-sec{margin-bottom:clamp(56px,6vw,80px);max-width:44em}
.wks .d-sec h2{margin:0 0 1.2em;font-size:clamp(1.3rem,2.2vw,1.65rem);font-weight:900;line-height:1.5}
.wks .d-sec h2 span{background:linear-gradient(transparent 62%,var(--pale) 62%,var(--pale) 92%,transparent 92%)}
.wks .d-sec>p{margin:0 0 1.3em}
.wks .d-steps{list-style:none;margin:0;padding:0;counter-reset:s}
.wks .d-steps li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px 16px;padding:24px 0;border-top:1px solid var(--line)}
.wks .d-steps li:last-child{border-bottom:1px solid var(--line)}
.wks .d-n{font-family:var(--ff-en);font-weight:500;font-size:2rem;line-height:1.1;color:var(--blue)}
.wks .d-steps h3{margin:0 0 6px;font-size:1.08rem;font-weight:700;line-height:1.6}
.wks .d-steps p{margin:0;color:var(--ink-2);font-size:.95rem}
.wks .d-res{list-style:none;margin:0;padding:0}
.wks .d-res li{position:relative;padding:14px 0 14px 40px;border-top:1px solid var(--line);font-weight:700;line-height:1.8}
.wks .d-res li:last-child{border-bottom:1px solid var(--line)}
.wks .d-res li::before{content:"";position:absolute;left:4px;top:20px;width:18px;height:18px;border-radius:50%;box-shadow:inset 0 0 0 4px var(--pale)}
.wks .d-res li::after{content:"";position:absolute;left:10px;top:26px;width:6px;height:6px;border-radius:50%;background:var(--blue)}
.wks .d-rel{border-top:1px solid var(--line);padding:clamp(72px,9vw,120px) 0}
.wks .rel{list-style:none;margin:clamp(24px,3vw,36px) 0 0;padding:0}
.wks .rel li{border-bottom:1px solid var(--line)}
.wks .rel li:first-child{border-top:1px solid var(--line)}
.wks .rel a{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"n b" "t b";gap:2px 40px;align-items:center;padding:22px 0;text-decoration:none}
.wks .r-nay{grid-area:n;font-size:.76rem;font-weight:700;color:var(--blue)}
.wks .r-t{grid-area:t;font-size:1.05rem;font-weight:700;line-height:1.6}
.wks .r-ba{grid-area:b;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:4px 10px;white-space:nowrap;font-weight:900;max-width:22em}
.wks .r-ax{width:100%;text-align:right;font-size:.72rem;font-weight:500;color:var(--ink-3)}
.wks .r-ba svg{width:16px;height:16px;fill:none;stroke:var(--blue);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.wks .mb{color:#b5bdc8;font-size:1.05rem}
.wks .ma{color:var(--blue);font-size:1.25rem}
.wks .rel a:hover .r-t{color:var(--blue)}
@media (max-width:860px){
.wks .d-grid{grid-template-columns:1fr}
.wks .d-side{position:static}
.wks .rel a{grid-template-columns:1fr;grid-template-areas:"n" "t" "b";gap:4px}
.wks .r-ba{margin-top:6px;justify-content:flex-start}
.wks .r-ax{text-align:left}
}
.wks .ask{position:relative;margin:4px 0 14px;padding-left:22px;display:flex;flex-direction:column;gap:2px;max-width:52em}
.wks .ask::before{content:"";position:absolute;left:0;top:.35em;bottom:.35em;width:3px;background:var(--pale)}
.wks .ask-l{font-size:.72rem;font-weight:700;color:var(--ink-3);letter-spacing:.1em}
.wks .ask-t{font-size:clamp(.95rem,1.4vw,1.05rem);color:var(--ink-2);line-height:1.8}
.wks .ask-lg{margin:8px 0 22px}
.wks .ask-lg .ask-t{font-size:clamp(1rem,1.6vw,1.2rem)}
.wks .case h3{margin-bottom:22px}
.wks .d-head{padding-bottom:clamp(48px,6vw,80px)}
.wks .d-head .case-nay{margin-bottom:14px}
.wks .r-ask{grid-area:b;font-size:.82rem;color:var(--ink-2);max-width:24em;line-height:1.7}
.wks .marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.wks .mq-track{display:flex;width:max-content;animation:wk-mq 60s linear infinite}
.wks .marquee:hover .mq-track{animation-play-state:paused}
.wks .mq-i{display:inline-flex;align-items:center;gap:12px;padding:0 30px;font-size:.95rem;font-weight:700;color:var(--ink);white-space:nowrap}
.wks .mq-i svg{width:34px;height:34px;fill:none;stroke:var(--blue);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.wks .mq-i+.mq-i::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--pale);margin-right:30px;margin-left:-30px;display:none}
@keyframes wk-mq{to{transform:translateX(-50%)}}
.wks .stats{position:relative;padding:clamp(88px,11vw,140px) 0;background-image:radial-gradient(circle,#cfdbeb 1.1px,transparent 1.4px);background-size:20px 20px;background-position:center}
.wks .stats .wrap{position:relative}
.wks .stats .lead2{display:block}
.wks .nums{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:clamp(48px,6vw,72px) 0 0;background:#fff;border-top:2px solid var(--blue);border-bottom:1px solid var(--line)}
.wks .nums-loop{position:absolute;left:0;top:50%;width:100%;height:150%;transform:translateY(-50%);overflow:visible;pointer-events:none}
.wks .nums-loop path{fill:none;stroke:var(--pale);stroke-width:14;stroke-linecap:round;opacity:.75}
.wks .num{position:relative;padding:clamp(28px,4vw,44px) clamp(16px,2.6vw,36px)}
.wks .num+.num{border-left:1px solid var(--line)}
.wks .num-v{margin:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:0 .2em;color:var(--blue);line-height:1}
.wks .num-v b{font-family:var(--ff-en);font-weight:500;font-size:clamp(3rem,7.4vw,6rem);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.wks .num-v span{font-weight:900;font-size:clamp(1rem,1.8vw,1.4rem)}
.wks .num-c{margin:14px 0 0;font-size:.88rem;font-weight:700;color:var(--ink-2)}
@media (max-width:760px){
.wks .nums{grid-template-columns:1fr}
.wks .num+.num{border-left:0;border-top:1px solid var(--line)}
.wks .nums-loop{display:none}
.wks .chart-head p::after{content:"（横にスクロールできます）";color:var(--ink-3)}
}
.wks .chart-head{background:#fff;padding:0 0 18px;max-width:none}
.wks .chart-head h3{margin:0 0 6px;font-size:clamp(1.2rem,2vw,1.5rem);font-weight:900}
.wks .chart-head p{margin:0;font-size:.86rem;color:var(--ink-2)}
.wks .chart-scroll{overflow-x:auto;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.wks .chart{min-width:760px;position:relative}
.wks .chart svg{display:block;width:100%;height:auto;overflow:visible}
.wks .ax-line{stroke:var(--ink);stroke-width:1}
.wks .ax-tick{stroke:var(--ink-3);stroke-width:1}
.wks .ax-t{font-family:var(--ff-en);font-size:12px;fill:var(--ink-3)}
.wks .ax-u{font-size:11px;fill:var(--ink-3)}
.wks .bub{cursor:pointer;outline:none}
.wks .bub circle{fill:#fff;stroke:var(--blue);stroke-width:1.5;transition:fill .25s,stroke-width .25s}
.wks .bub .bi{fill:none;stroke:var(--blue);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;transition:stroke .25s}
.wks .bub:hover circle{fill:var(--pale-2)}
.wks .bub:focus-visible circle{stroke:var(--orange);stroke-width:3}
.wks .bub.on circle{fill:var(--blue)}
.wks .bub.on .bi{stroke:#fff}
.wks .bub-g{transform-box:fill-box;transform-origin:center;transition:transform .5s cubic-bezier(.3,1.5,.5,1),opacity .4s}
.wk-js .wks .chart:not(.in) .bub-g{transform:scale(0);opacity:0}
.wks .bub-lab{font-size:12px;font-weight:700;fill:var(--blue);pointer-events:none}
.wks .stem{stroke:var(--line);stroke-width:1}
.wks .panel{background:#fff;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr);gap:24px clamp(24px,4vw,56px);padding:clamp(28px,3.4vw,40px) 0;border-bottom:1px solid var(--line);min-height:200px}
.wks .p-name{display:flex;align-items:center;gap:14px}
.wks .p-name svg{flex:none;width:52px;height:52px;fill:none;stroke:var(--blue);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;padding:6px;border-radius:50%;box-shadow:inset 0 0 0 5px var(--pale)}
.wks .p-name h4{margin:0;font-size:1.15rem;font-weight:900;line-height:1.5}
.wks .p-meta{margin:12px 0 0;font-size:.84rem;color:var(--ink-2);line-height:1.8}
.wks .p-meta b{color:var(--ink)}
.wks .p-l{margin:0 0 8px;font-size:.72rem;font-weight:700;color:var(--ink-3);letter-spacing:.08em}
.wks .p-work{margin:0;font-size:.9rem;font-weight:700;line-height:1.9}
.wks .p-pt{list-style:none;margin:0;padding:0}
.wks .p-pt li{position:relative;padding:0 0 10px 26px;font-size:.92rem;line-height:1.75;font-weight:500}
.wks .p-pt li::before{content:"";position:absolute;left:0;top:.42em;width:14px;height:14px;border-radius:50%;box-shadow:inset 0 0 0 3.5px var(--pale)}
.wks .p-pt li::after{content:"";position:absolute;left:5px;top:calc(.42em + 5px);width:4px;height:4px;border-radius:50%;background:var(--blue)}
.wks .p-nav{grid-column:1/-1;display:flex;gap:20px;font-size:.82rem}
.wks .p-nav button{border:0;background:none;padding:0;cursor:pointer;font-weight:700;color:var(--blue)}
.wks .p-nav button:hover{text-decoration:underline;text-underline-offset:3px}
.wks .p-nav span{color:var(--ink-3);font-family:var(--ff-en)}
.wks .panel>*{animation:wk-pin .45s ease both}
@keyframes wk-pin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (max-width:860px){
.wks .panel{grid-template-columns:1fr}
}
.wks .case{display:block}
.wks .thumb{position:relative;aspect-ratio:1/1;background-image:radial-gradient(circle,#cfdbeb 1.1px,transparent 1.4px);background-size:14px 14px;display:grid;place-items:center;border-top:2px solid var(--blue);margin-top:6px}
.wks .th-ic{position:relative;z-index:1;width:46%;height:46%;fill:none;stroke:var(--blue);stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round;background:#fff;border-radius:50%;padding:10%;box-sizing:content-box;box-shadow:inset 0 0 0 6px var(--pale)}
.wks .th-loop{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.wks .th-loop path{fill:none;stroke:var(--pale);stroke-width:5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1s cubic-bezier(.6,.05,.3,1) .2s}
.wks .case.in .th-loop path,.wks .case:hover .th-loop path{stroke-dashoffset:0}
.wks .case:hover .th-ic{stroke-width:1.4}
@media (max-width:700px){
.wks .thumb{margin-top:2px}
.wks .th-ic{box-shadow:inset 0 0 0 3px var(--pale)}
}
@media (prefers-reduced-motion:reduce){
.wks .mq-track{animation:none}
.wks .dot{transition:none!important;left:var(--x)!important}
.wks .dl{opacity:1!important}
}
.wks .case-top{margin:0 0 12px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px}
.wks .case-no{font-weight:700;font-size:.9rem;color:var(--blue);letter-spacing:.06em}
.wks .case-top .case-nay{margin:0;font-size:.78rem;color:var(--ink-2);font-weight:500}
.wks .case-top .case-nay span:not(.status)::before{color:var(--ink-3)}
.wks .case h3{margin:0;padding-bottom:22px;border-bottom:2px solid var(--line);font-size:clamp(1.35rem,2.6vw,1.95rem);max-width:none}
.wks .spec{margin:24px 0 0;display:flex;flex-direction:column;gap:10px}
.wks .spec>div{display:grid;grid-template-columns:clamp(104px,11vw,140px) minmax(0,1fr);align-items:center;gap:18px}
.wks .spec dt{background:var(--blue);color:#fff;font-weight:700;font-size:.9rem;text-align:center;padding:.6em .4em;line-height:1.4}
.wks .spec dd{margin:0;font-size:.98rem;font-weight:500;line-height:1.7}
.wks .case-sum{margin:24px 0 0;color:var(--ink-2);line-height:2.1;font-size:.98rem}
.wks .case-go{margin:20px 0 0;display:flex;justify-content:flex-end}
.wks .case-go span{position:relative;font-weight:700;font-size:1.02rem;padding:0 30px 8px 2px;color:var(--ink)}
.wks .case-go span::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--blue);transform-origin:left;transition:transform .4s}
.wks .case-go span::before{content:"";position:absolute;right:-1px;bottom:0;border-left:12px solid var(--blue);border-top:8px solid transparent;transform:translateY(0)}
.wks .case:hover .case-go span{color:var(--blue)}
@media (max-width:600px){
.wks .spec>div{grid-template-columns:92px minmax(0,1fr);gap:12px}
.wks .spec dt{font-size:.8rem}
.wks .spec dd{font-size:.88rem}
}
.wks .cwrap{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:0 clamp(28px,4vw,56px);background:#fff;border-top:2px solid var(--blue);border-bottom:1px solid var(--line)}
.wks .plot{padding:8px 0 0;overflow:hidden}
.wks .prow{display:grid;grid-template-columns:clamp(9em,14vw,13em) minmax(0,1fr);align-items:center;width:100%;border:0;background:none;padding:0;cursor:pointer;text-align:left;font:inherit;color:inherit;border-bottom:1px solid var(--line);min-height:40px}
.wks .prow:hover .pn,.wks .prow[aria-pressed="true"] .pn{color:var(--blue)}
.wks .pn{font-size:.84rem;font-weight:700;line-height:1.4;padding:8px 10px 8px 0;transition:color .2s}
.wks .track{position:relative;height:40px}
.wks .track i.g{position:absolute;top:0;bottom:0;width:1px;background:var(--line)}
.wks .dot{position:absolute;top:50%;width:var(--s);height:var(--s);margin:calc(var(--s) / -2) 0 0 calc(var(--s) / -2);border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1.5px var(--blue);left:0;transition:left 1s cubic-bezier(.2,.8,.2,1) var(--d),background-color .25s}
.wks .plot.in .dot{left:var(--x)}
.wks .dl{position:absolute;top:50%;transform:translateY(-50%);left:calc(var(--x) + var(--s) / 2 + 8px);font-size:.74rem;color:var(--ink-3);white-space:nowrap;opacity:0;transition:opacity .4s calc(var(--d) + .6s)}
.wks .dl.flip{left:auto;right:calc(100% - var(--x) + var(--s) / 2 + 8px)}
.wks .plot.in .dl{opacity:1}
.wks .prow[aria-pressed="true"] .dot{background:var(--blue)}
.wks .prow[aria-pressed="true"] .dl{color:var(--blue);font-weight:700}
.wks .paxis{display:grid;grid-template-columns:clamp(9em,14vw,13em) minmax(0,1fr);padding:8px 0 14px}
.wks .paxis .tk{position:relative;height:18px}
.wks .paxis .tk span{position:absolute;transform:translateX(-50%);font-family:var(--ff-en);font-size:.74rem;color:var(--ink-3)}
.wks .paxis small{grid-column:2;text-align:right;font-size:.7rem;color:var(--ink-3)}
.wks .panel{display:block;padding:clamp(24px,3vw,36px) 0;border:0;min-height:0;align-self:start;position:sticky;top:calc(var(--hd) + 24px)}
.wks .p-name h4{margin:0;font-size:1.25rem;font-weight:900;line-height:1.5}
.wks .p-meta{margin:10px 0 20px;font-size:.86rem;color:var(--ink-2);line-height:1.9}
.wks .panel .p-sec{padding:16px 0;border-top:1px solid var(--line)}
@media (max-width:900px){
.wks .cwrap{grid-template-columns:1fr}
.wks .panel{position:static;border-top:1px solid var(--line)}
.wks .prow,.wks .paxis{grid-template-columns:7.2em minmax(0,1fr)}
.wks .pn{font-size:.74rem}
.wks .dl{display:none}
.wks .paxis .tk span.odd{display:none}
.wks .paxis .tk span:last-child{transform:translateX(-100%)}
.wks .prow[aria-pressed="true"] .dl{display:block}
.wks .dl:not(.flip){max-width:calc(100% - var(--x) - 20px);overflow:hidden;text-overflow:ellipsis}
}
.wks .thread{position:absolute;left:0;top:0;z-index:3;pointer-events:none;overflow:visible;mix-blend-mode:multiply}
.wks .thread path{fill:none;stroke:var(--pale);stroke-width:12;stroke-linecap:round;stroke-linejoin:round}
.wks .thread circle{fill:var(--blue);transition:opacity .3s}
.wks main{position:relative;z-index:1}
.wks .prog{position:fixed;left:0;right:0;top:calc(var(--hd) + env(safe-area-inset-top,0px));height:2px;z-index:49;pointer-events:none}
.wks .prog i{display:block;height:100%;background:var(--blue);transform-origin:left;transform:scaleX(0)}
.wks .case{position:relative}
.wks .case::before{content:attr(data-n);position:absolute;right:0;top:clamp(20px,3vw,40px);font-family:var(--ff-en);font-weight:500;font-size:clamp(5rem,12vw,10rem);line-height:1;color:transparent;-webkit-text-stroke:1.5px #c9d8ec;letter-spacing:-.02em;pointer-events:none;z-index:-1;transform:translateY(calc(var(--py,0) * 1px));transition:transform .1s linear}
.wks .case h3{padding-right:clamp(0px,10vw,170px)}
.wk-js .wks .spec dt{clip-path:inset(0 100% 0 0);transition:clip-path .6s cubic-bezier(.6,.05,.3,1)}
.wk-js .wks .spec>div:nth-child(2) dt{transition-delay:.1s}
.wk-js .wks .spec>div:nth-child(3) dt{transition-delay:.2s}
.wk-js .wks .case.in .spec dt{clip-path:inset(0 0 0 0)}
.wk-js .wks .case-go span::after{transform:scaleX(0);transition:transform .7s cubic-bezier(.6,.05,.3,1) .5s}
.wk-js .wks .case.in .case-go span::after{transform:scaleX(1)}
@media (max-width:700px){
.wks .case::before{font-size:4.6rem;top:12px}
.wks .case h3{padding-right:0}
}
@media (prefers-reduced-motion:reduce){
.wk-js .wks .spec dt{clip-path:none}
.wk-js .wks .case-go span::after{transform:none}
}
.wks .num-v b{display:inline-block;min-width:1ch;transform-origin:left bottom}
.wk-js .wks .num-v.go b{animation:wk-grow 3s cubic-bezier(.2,.8,.2,1) both}
.wks .num:nth-child(2) .num-v.go b{animation-delay:.3s}
.wks .num:nth-child(3) .num-v.go b{animation-delay:.6s}
@keyframes wk-grow{from{transform:scale(.55);opacity:.35}to{transform:none;opacity:1}}
.wks .ph{position:relative;background:var(--ph);overflow:hidden}
.wks .ph>span{position:absolute;left:14px;top:12px;font-size:12px;color:#8a93a1;line-height:1.5}
.wks .ph img{width:100%;height:100%;object-fit:cover;display:block}
.wks .photos{padding:0 0 clamp(40px,6vw,80px);position:relative;z-index:1}
.wks .ph-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.42fr);align-items:start;gap:0}
.wks .pa{aspect-ratio:16/9;grid-column:1/2;grid-row:1}
.wks .pb{aspect-ratio:4/5;grid-column:2/3;grid-row:1;margin:clamp(64px,10vw,140px) 0 0 calc(clamp(40px,6vw,90px) * -1);box-shadow:0 0 0 10px #fff}
.wks .ph{will-change:transform}
.wk-js .wks .photos .ph{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s cubic-bezier(.6,.05,.3,1)}
.wk-js .wks .photos .pb{transition-delay:.25s}
.wk-js .wks .photos.in .ph{clip-path:inset(0 0 0 0)}
@media (max-width:700px){
.wks .ph-grid{grid-template-columns:1fr .5fr}
.wks .pb{margin:48px 0 0 -36px;box-shadow:0 0 0 6px #fff}
}
@media (prefers-reduced-motion:reduce){
.wk-js .wks .photos .ph{clip-path:none}
}
.wks .end{background:var(--blue);color:#fff;border-top:0;position:relative;z-index:4}
.wks .end h2{color:#fff}
.wks .end p{color:rgba(255,255,255,.82)}
.wks .end .cta{box-shadow:none}
.wks .tabs-svc{border-bottom:1px solid var(--line)}
.wks .tabs-svc button{font-size:.92rem}
.wks .tabs-svc button small.org{font-family:var(--ff);font-weight:500;font-size:.72rem;color:var(--ink-3);margin-left:.5em}
.wks .tabs-svc button:disabled{color:#c3c9d2;cursor:default}
.wks .tabs-svc button:disabled small{color:#c3c9d2}
.wks .tabs-nay button{font-size:.8rem;padding:12px 0 10px}
.wks .tabs-nay button[hidden]{display:none}
.wks .f-cap{margin:28px 0 0;font-size:.86rem;color:var(--ink-2)}
.wks .f-cap b{color:var(--ink)}
.wks .f-cap span{font-family:var(--ff-en);color:var(--blue);font-weight:500;margin-left:.3em}
.wks .en-group{margin-top:clamp(36px,5vw,56px)}
.wks .en-group[hidden]{display:none}
.wks .en-gh{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;margin:0 0 4px}
.wks .en-gh b{font-size:1.05rem;font-weight:900;color:var(--blue)}
.wks .en-gh span{font-size:.8rem;color:var(--ink-2)}
.wks .en-group .en-list{margin-top:14px}
.wks .en-soon{margin:0;padding:18px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);font-size:.86rem;color:var(--ink-3)}
.wks .svc-lb{font-size:.74rem;font-weight:700;color:var(--blue);border:1px solid var(--blue);padding:1px 8px;line-height:1.6}
.wks .svc-lb.multi{background:var(--blue);color:#fff}
.wks .d-ul{margin:0 0 1.3em;padding:0;list-style:none}
.wks .d-ul li{position:relative;padding:0 0 8px 1.2em;line-height:1.9}
.wks .d-ul li::before{content:"";position:absolute;left:0;top:.8em;width:6px;height:6px;border-radius:50%;background:var(--blue)}
.wks .svc-intro{padding:clamp(48px,6vw,80px) 0;margin-top:28px}
.wks .svc-intro[hidden]{display:none}
.wks .si-h{margin:0 0 12px;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;font-size:clamp(1.3rem,2.4vw,1.75rem);font-weight:900}
.wks .si-h span{font-size:.8rem;font-weight:500;color:var(--ink-2)}
.wks .svc-intro .nums{margin:clamp(32px,4vw,48px) 0 0}
.wks .num-v{flex-wrap:nowrap!important}
.wks .num-v b{font-size:clamp(2.6rem,5.6vw,5rem)!important}
.wks .f-cap{margin-bottom:0}
.wks .nums-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.wks .nums-4 .num-v b{font-size:clamp(2.6rem,5vw,4.6rem)!important}
@media (max-width:900px){
.wks .nums-4{grid-template-columns:repeat(2,minmax(0,1fr))}
.wks .nums-4 .num:nth-child(3){border-left:0}
.wks .nums-4 .num:nth-child(n/**/+3){border-top:1px solid var(--line)}
}
@media (max-width:760px){
.wks .nums-4 .num+.num{border-top:0}
.wks .nums-4 .num:nth-child(n/**/+3){border-top:1px solid var(--line)}
.wks .nums-4 .num:nth-child(even){border-left:1px solid var(--line)}
}
.wks .byline{margin:18px 0 0;font-size:.86rem;color:var(--ink-2)}
.wks .byline b{color:var(--ink);font-weight:700}
.wks .d-expert{max-width:none}
.wks .expert{display:grid;grid-template-columns:clamp(120px,16vw,180px) minmax(0,1fr);gap:clamp(20px,3vw,36px);padding:28px 0;border-top:2px solid var(--blue);border-bottom:1px solid var(--line)}
.wks .expert+.expert{border-top:1px solid var(--line)}
.wks .ex-ph{aspect-ratio:3/4;align-self:start}
.wks .ex-q{margin:0;font-size:.78rem;font-weight:700;color:var(--blue);letter-spacing:.08em}
.wks .ex-name{margin:4px 0 0;font-size:1.5rem;font-weight:900;line-height:1.4}
.wks .ex-kana{margin-left:.7em;font-size:.78rem;font-weight:500;color:var(--ink-3)}
.wks .ex-org{margin:6px 0 0;font-size:.86rem;color:var(--ink-2);line-height:1.7}
.wks .ex-reg{margin:2px 0 0;font-size:.8rem;color:var(--ink-3)}
.wks .ex-bio{margin:16px 0 0;font-size:.92rem;line-height:1.95}
.wks .ex-l{margin:16px 0 6px;font-size:.72rem;font-weight:700;color:var(--ink-3);letter-spacing:.08em}
.wks .ex-fields{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 18px;font-size:.86rem;font-weight:700}
.wks .ex-fields li::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue);margin-right:8px;vertical-align:middle}
.wks .ex-link{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-size:.86rem;font-weight:700;color:var(--blue);text-decoration:none}
.wks .ex-link svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}
.wks .ex-link:hover svg{transform:translateX(4px)}
@media (max-width:600px){
.wks .expert{grid-template-columns:96px minmax(0,1fr);gap:16px}
.wks .ex-name{font-size:1.25rem}
}
.wks .pro{display:grid;grid-template-columns:240px minmax(0,1fr);gap:40px;align-items:start;margin:8px 0 32px;padding-top:28px;border-top:3px solid var(--blue)}
.wks .pro+.pro{margin-top:40px}
.wks .pro-ph{width:240px;aspect-ratio:397/534}
.wks .pro-role{margin:0;font-size:13px;font-weight:700;color:var(--blue)}
.wks .pro-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:4px 0 18px}
.wks .pro-nm{margin:0;font-size:28px;font-weight:700;line-height:1.3;color:var(--ink)}
.wks .pro-nm span{margin-left:14px;font-size:13px;font-weight:500;color:var(--ink-2);letter-spacing:.06em}
.wks .pro-link{flex:none;display:inline-flex;align-items:center;padding:10px 20px;font-size:13.5px;font-weight:700;color:var(--blue);border:1px solid var(--blue);border-radius:999px;text-decoration:none;transition:background-color .2s,color .2s}
.wks .pro-link:hover{background:var(--blue);color:#fff}
.wks .pro-dl{margin:0;border-top:1px solid var(--ink)}
.wks .pro-dl>div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;padding:11px 0;border-bottom:1px solid var(--line)}
.wks .pro-dl dt{font-size:13px;font-weight:700;color:var(--blue)}
.wks .pro-dl dd{margin:0;font-size:14.5px;line-height:1.7}
@media (max-width:700px){
.wks .pro{grid-template-columns:1fr;gap:20px}
.wks .pro-ph{width:160px}
.wks .pro-top{flex-direction:column;align-items:flex-start}
}
.wks .en-list a,.wks .en-a{grid-template-columns:minmax(0,1fr) auto!important;gap:16px!important;padding:clamp(16px,2vw,22px) 0!important}
.wks .en-t{font-size:clamp(1.02rem,1.6vw,1.2rem)!important;background-image:none!important;transition:color .2s}
.wks .en-q{display:block!important;font-size:.82rem!important;color:var(--ink-3)!important}
.wks .en-c{font-family:var(--ff-en);font-size:.86rem!important;color:var(--blue)!important;font-weight:500}
.wks .en-list a:hover .en-t{color:var(--blue);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.wks .case::before{-webkit-text-stroke:1.5px var(--blue)!important;opacity:.9}
.wks .cs-slide{margin:24px 0 0;max-width:880px}
.wks .zbtn{position:relative;z-index:2;display:block;width:100%;padding:0;border:1px solid var(--line);background:#fff;cursor:zoom-in}
.wks .zbtn img{display:block;width:100%;height:auto}
.wks .cs-ph{display:block;aspect-ratio:16/9}
.wks .z-l{position:absolute;right:10px;bottom:10px;padding:4px 10px;font-size:12px;font-weight:700;color:#fff;background:var(--blue);line-height:1.5}
.wks .d-head .cs-slide{margin-top:32px;max-width:1000px}
.wks .zoom{border:0;padding:0;max-width:min(1200px,94vw);width:94vw;background:#fff}
.wks .zoom::backdrop{background:rgba(10,20,40,.72)}
.wks .zoom-in .ph,.wks .zoom-in img{display:block;width:100%;aspect-ratio:16/9;height:auto}
.wks .zoom-x{position:absolute;right:8px;top:6px;z-index:3;border:0;background:var(--blue);color:#fff;width:36px;height:36px;font-size:20px;line-height:1;cursor:pointer}
.wks .ptitle,.wks .stats,.wks .entry,.wks .list,.wks .end{position:relative}
.wks .ptitle>.wrap,.wks .stats>.wrap,.wks .entry>.wrap,.wks .list>.wrap,.wks .end>.wrap,.wks .photos>.wrap{position:relative;z-index:1}
.wks .list>.tabsbar{z-index:30}
.wks .bg-ring{position:absolute;z-index:0;width:var(--s);height:var(--s);border-radius:50%;border:var(--w) solid #e6eef8;pointer-events:none;will-change:transform}
.wks .bg-ring.thin{border-color:#d9e5f4}
.wks .bg-ring.wht{border-color:rgba(255,255,255,.07)}
.wks .bg-ring.wht.thin{border-color:rgba(255,255,255,.12)}
.wks .end{overflow:hidden}
.wks #pageList{overflow-x:clip}
.wk-js .wks .bg-ring{opacity:0;transition:opacity 1.2s ease}
.wk-js .wks .bg-ring.on{opacity:1}
@media (max-width:700px){
.wks .bg-ring{width:calc(var(--s) * .55);height:calc(var(--s) * .55);border-width:calc(var(--w) * .55)}
}
.wks .d-res li{padding-left:0!important}
.wks .d-res li::before,.wks .d-res li::after{content:none!important}
.wks .d-side dt{color:var(--blue)!important;font-weight:700}
.wks{--ink:#0f1b2d;--ink-2:#465264;--line:#dbe2ea}
.wks .h2{color:var(--ink)}
.wks .lead2{color:var(--ink-2)}
.wks .entry{padding-bottom:clamp(88px,10vw,128px)}
.wks .cats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(32px,4vw,48px);border-top:2px solid var(--blue);border-left:1px solid var(--line)}
.wks .cat{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:clamp(150px,15vw,190px);padding:clamp(20px,2.4vw,28px);border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;text-align:left;font:inherit;color:var(--ink);cursor:pointer;overflow:hidden;transition:background-color .3s,color .3s}
.wks .cat::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.6,.05,.3,1)}
.wks .cat-f{font-size:clamp(1.15rem,1.9vw,1.45rem);font-weight:900;line-height:1.35;letter-spacing:.03em}
.wks .cat-o{font-size:.78rem;color:var(--ink-2);transition:color .3s}
.wks .cat-n{margin-top:auto;font-size:.86rem;font-weight:700;color:var(--blue);transition:color .3s}
.wks .cat-n b{font-family:var(--ff-en);font-weight:500;font-size:2.4rem;line-height:1;margin-right:4px}
.wks button.cat:hover,.wks button.cat[aria-pressed="true"]{background:var(--blue);color:#fff}
.wks button.cat:hover .cat-o,.wks button.cat:hover .cat-n,.wks button.cat[aria-pressed="true"] .cat-o,.wks button.cat[aria-pressed="true"] .cat-n{color:#fff}
.wks button.cat:hover::after,.wks button.cat[aria-pressed="true"]::after{transform:scaleX(1)}
.wks .cat.is-soon{cursor:default;color:#9aa5b4}
.wks .cat.is-soon .cat-o{color:#b3bcc8}
.wks .cat.is-soon .cat-n{color:#b3bcc8;font-size:.8rem}
.wks .cat-all{margin:22px 0 0;text-align:right}
.wks .cat-all-b{border:0;background:none;padding:0 0 6px;font:inherit;font-weight:700;font-size:.92rem;color:var(--ink);cursor:pointer;border-bottom:2px solid var(--blue)}
.wks .cat-all-b span{font-family:var(--ff-en);color:var(--blue);margin-left:10px}
.wks .cat-all-b:hover{color:var(--blue)}
@media (max-width:900px){
.wks .cats{grid-template-columns:repeat(2,minmax(0,1fr))}
.wks .cat{min-height:120px}
.wks .cat-n b{font-size:1.9rem}
}
.wks .list.is-off{display:none}
.wks .svc-head{padding:clamp(44px,5vw,64px) 0 0}
.wks .svc-head:empty{padding:0}
.wks .sh-f{margin:0;font-size:clamp(1.7rem,3.4vw,2.6rem);font-weight:900;line-height:1.3;color:var(--ink)}
.wks .sh-o{margin:8px 0 0;font-size:.9rem;font-weight:700;color:var(--blue)}
.wks .nay-box{margin:clamp(28px,4vw,44px) 0 clamp(16px,2vw,24px)}
.wks .nay-box .en-group{margin-top:0}
.wks .list:not(.is-all) .nay-box .en-gh{display:none}
.wks .nay-box .en-group+.en-group{margin-top:36px}
.wks .en-list a[aria-current="true"] .en-t{color:var(--blue);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.wks .svc-intro{margin-top:clamp(28px,4vw,40px)}
.wks .svc-intro .si-h{display:none}
.wks button.cat::after{display:none!important}
.wks .h2{background:none!important}
.wks .bg-ring{border:1.5px solid rgba(0,56,133,.16)!important}
.wks .bg-ring.thin{border:1px solid rgba(0,56,133,.22)!important}
.wks .bg-ring.wht{border:1.5px solid rgba(255,255,255,.18)!important}
.wks .bg-ring.wht.thin{border:1px solid rgba(255,255,255,.26)!important}
.wks .stats,.wks .svc-intro{background-image:radial-gradient(circle,#d4d9e0 1px,transparent 1.3px)!important}
.wks .thread path{stroke:#b9cbe6!important}
.wks .thread{z-index:0!important;mix-blend-mode:normal!important}
@media (min-width:1000px){
.wks .case .case-no{display:none}
}
.wks .zbtn{overflow:hidden}
.wks .zbtn>.ph,.wks .zbtn>img{transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.wks .case:hover .zbtn>.ph,.wks .case:hover .zbtn>img{transform:scale(1.025)}
.wks .case-sum{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
@media (min-width:1000px){
.wks .case{--cg:clamp(40px,5vw,72px);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-areas:"top slide" "title slide" "spec slide" "sum slide" "go slide";grid-template-rows:auto auto auto auto 1fr;column-gap:var(--cg);align-items:start;padding:clamp(64px,7vw,96px) 0!important}
.wks .case.flip{grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-areas:"slide top" "slide title" "slide spec" "slide sum" "slide go"}
.wks .case>.case-top{grid-area:top;margin:clamp(92px,8vw,118px) 0 0}
.wks .case>h3{grid-area:title;margin-top:12px;padding:0!important;border:0!important;font-size:clamp(1.4rem,2.2vw,1.85rem)}
.wks .case>.cs-slide{grid-area:slide;margin:0;max-width:none}
.wks .case>.spec{grid-area:spec;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.wks .case>.spec>div{grid-template-columns:96px minmax(0,1fr);gap:14px}
.wks .case>.spec dt{font-size:.78rem;padding:.45em .3em}
.wks .case>.spec dd{font-size:.9rem}
.wks .case>.case-sum{grid-area:sum;margin-top:18px;font-size:.9rem;line-height:1.95}
.wks .case>.case-go{grid-area:go;justify-content:flex-start;margin-top:22px}
.wks .case::before{left:0;right:auto!important;top:clamp(56px,6vw,84px)!important;font-size:clamp(5.5rem,9vw,8rem)!important;transform:none!important}
.wks .case.flip::before{left:calc((100% - var(--cg)) * 7 / 12 + var(--cg))}
}
.wks .stats,.wks .svc-intro{background-image:none!important}
.wks .st-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(32px,4vw,64px);align-items:center}
.wks .stats .nums-4{grid-template-columns:repeat(2,minmax(0,1fr))!important;margin-top:clamp(32px,4vw,44px)}
.wks .stats .nums-4 .num:nth-child(3){border-left:0}
.wks .stats .nums-4 .num:nth-child(n/**/+3){border-top:1px solid var(--line)}
.wks .stats .nums-4 .num:nth-child(even){border-left:1px solid var(--line)}
.wks .stats .nums-4 .num-v b{font-size:clamp(2.6rem,4.4vw,4rem)!important}
.wks .loopmap svg{display:block;width:100%;height:auto;overflow:visible}
.wks .lm-ring{fill:none;stroke:var(--blue);stroke-width:2;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.8s cubic-bezier(.6,.05,.3,1)}
.wks .lm-ring2{fill:none;stroke:rgba(0,56,133,.18);stroke-width:1;stroke-dasharray:3 6}
.wks .lm-run{fill:var(--orange)}
.wks .lm-c1{font-family:var(--ff-en);font-weight:600;font-size:40px;fill:var(--blue)}
.wks .lm-c2{font-family:var(--ff-en);font-weight:600;font-size:13px;letter-spacing:.3em;fill:var(--ink-2)}
.wks .nd circle{fill:#fff;stroke:#b8c2cf;stroke-width:2;transition:fill .3s,stroke .3s,r .3s}
.wks .nd text{fill:#9aa5b4}
.wks .nd-f{font-size:21px;font-weight:900}
.wks .nd-o{font-size:13px;font-weight:500}
.wks .nd.on circle{fill:var(--blue);stroke:var(--blue)}
.wks .nd.on text{fill:var(--ink)}
.wks .nd.on .nd-o{fill:var(--ink-2)}
.wks .nd.on{cursor:pointer}
.wks .nd.on:hover circle,.wks .nd.on:focus circle{r:13}
.wks .nd.on:hover .nd-f{fill:var(--blue)}
.wk-js .wks .loopmap .nd{opacity:0;transform:translateY(6px);transition:opacity .5s var(--d),transform .5s var(--d)}
.wks .loopmap.in .lm-ring{stroke-dashoffset:0}
.wk-js .wks .loopmap.in .nd{opacity:1;transform:none}
@media (max-width:960px){
.wks .st-grid{grid-template-columns:1fr}
.wks .loopmap{max-width:560px;margin:0 auto}
}
@media (prefers-reduced-motion:reduce){
.wks .lm-ring{stroke-dashoffset:0}
.wk-js .wks .loopmap .nd{opacity:1;transform:none}
.wks .lm-run{display:none}
}
.wks .cat{min-height:clamp(118px,11vw,140px)!important}
.wks .cat.is-soon .cat-n{margin-top:auto}
.wks .pro-nm span{display:inline-block;white-space:nowrap}
.wks .stats .nums-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.wks .stats .nums-4 .num{border-top:0!important}
.wks .stats .nums-4 .num+.num{border-left:1px solid var(--line)!important}
@media (max-width:900px){
.wks .stats .nums-4{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.wks .stats .nums-4 .num:nth-child(3){border-left:0!important}
.wks .stats .nums-4 .num:nth-child(n/**/+3){border-top:1px solid var(--line)!important}
}
.wks .svc-intro{padding:clamp(40px,5vw,56px) 0 0!important;margin-top:0!important}
.wks .svc-intro .note{margin-bottom:0;background:none}
.wks .nay-box{margin:clamp(40px,5vw,56px) 0 0!important}
.wks .list{padding-top:clamp(8px,2vw,16px)}
.wks .entry{padding-bottom:clamp(56px,7vw,88px)!important;padding-top:0!important}
.wks .stats{padding-bottom:clamp(64px,8vw,96px)!important}
.wks .note{margin:28px 0 0;font-size:.78rem;color:var(--ink-3)}
.wks .end{border-top:1px solid var(--line);padding:clamp(80px,10vw,128px) 0}
.wks .end-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:28px 48px}
.wks .end h2{margin:0 0 8px;font-size:clamp(1.3rem,2.4vw,1.8rem);font-weight:900;line-height:1.6}
.wks .end p{margin:0;color:var(--ink-2);max-width:32em}
.wk-js .wks .case{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.wk-js .wks .case.in{opacity:1;transform:none}
.wk-js .wks .step{opacity:.25;transition:opacity .6s ease}
.wk-js .wks .step.on{opacity:1}
@media (prefers-reduced-motion:reduce){
.wk-js .wks .case,.wk-js .wks .step,.wk-js .wks .pv-a,.wk-js .wks .pc-h,.wk-js .wks .pc-line{opacity:1!important;transform:none!important;transition:none!important}
.wk-js .wks .pc path{stroke-dashoffset:0!important}
.wks .step i{transform:none!important}
}
.wks .end{background:var(--blue);border-top:0}
.wks .end h2{color:#fff}
.wks .end p{color:rgba(255,255,255,.82)}
.wks .ptitle.fv{position:relative;overflow:hidden;color:#fff;text-align:center;padding:calc(var(--hd) + clamp(56px,7vw,96px)) 0 clamp(56px,7vw,96px)!important;
  background-color:#003885;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012' numOctaves='5' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 .05  0 0 0 0 .2  0 0 0 -1.4 1.05'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
                   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='3'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
  background-size:900px 900px,300px 300px}
.wks .ptitle.fv .crumb{color:rgba(255,255,255,.7);text-align:left}
.wks .ptitle.fv .crumb a{color:rgba(255,255,255,.85)}
.wks .ptitle.fv .ptitle-row{flex-direction:column;align-items:center;justify-content:center;gap:22px}
.wks .ptitle.fv h1{color:#fff;font-size:clamp(2.2rem,4.6vw,3.4rem)}
.wks .ptitle.fv h1 path{stroke:rgba(255,255,255,.22)!important}
.wks .ptitle.fv .lead{color:#fff;max-width:none;font-weight:500;line-height:1.9}
.wks .entry,.wks .list{background:#f2f2f2}
.wks .entry{padding-top:clamp(72px,8vw,104px)!important}
.wks .list{display:flow-root;padding-top:0!important;padding-bottom:clamp(80px,9vw,120px)!important}
.wks .nay-box{margin-top:0!important}
.wks .entry{padding-bottom:clamp(32px,4vw,48px)!important}
.wks .cats{background:#fff}
.wks .nay-box{background:#fff;padding:clamp(24px,3vw,36px) clamp(24px,3vw,40px);margin:clamp(32px,4vw,48px) 0 clamp(24px,3vw,32px)!important}
.wks .nay-box .en-list{border-top:0!important;margin-top:0!important}
.wks .nay-box .en-group+.en-group{margin-top:28px}
.wks .cases{display:flex;flex-direction:column;gap:clamp(20px,2.4vw,28px)}
.wks .case{display:grid!important;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)!important;grid-template-areas:"top top" "title title" "spec slide" "sum slide" "go go"!important;column-gap:clamp(28px,3.6vw,48px)!important;
  background:#fff;padding:clamp(28px,3.4vw,44px) clamp(24px,3.4vw,48px)!important;border:0!important;opacity:1;transform:none}
.wks .case.flip{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)!important;grid-template-areas:"top top" "title title" "spec slide" "sum slide" "go go"!important}
.wks .case::before{display:none!important}
.wks .case .case-no{display:inline!important;font-family:var(--ff-en);font-weight:500;font-size:.95rem;letter-spacing:.02em;color:var(--blue)}
.wks .case>.case-top{grid-area:top;margin:0 0 10px!important}
.wks .case>h3{grid-area:title;margin:0!important;padding:0 0 18px!important;border-bottom:2px solid #e6e6e6!important;font-size:clamp(1.3rem,2.2vw,1.75rem)!important;max-width:none}
.wks .case>.cs-slide{grid-area:slide;margin:24px 0 0!important;max-width:none!important;align-self:start}
.wks .case>.spec{grid-area:spec;margin:24px 0 0!important;padding:0!important;border:0!important}
.wks .case>.spec>div{grid-template-columns:118px minmax(0,1fr)!important;gap:16px!important}
.wks .case>.spec dt{font-size:.86rem!important;padding:.55em .4em!important}
.wks .case>.spec dd{font-size:.95rem!important}
.wks .case>.case-sum{grid-area:sum;margin-top:20px!important;font-size:.93rem!important;-webkit-line-clamp:5}
.wks .case>.case-go{grid-area:go;justify-content:flex-end!important;margin-top:18px!important}
.wk-js .wks .case{opacity:0;transform:translateY(20px)}
.wk-js .wks .case.in{opacity:1;transform:none}
@media (max-width:900px){
.wks .case,.wks .case.flip{grid-template-columns:1fr!important;grid-template-areas:"top" "title" "slide" "spec" "sum" "go"!important}
.wks .case>.spec>div{grid-template-columns:92px minmax(0,1fr)!important}
}
.wks .nay-box{background:none!important;padding:0!important;margin:0 0 clamp(20px,2.4vw,28px)!important;display:flex;flex-wrap:wrap;align-items:center;gap:10px 24px}
.wks .nay-l{margin:0;font-size:.82rem;font-weight:700;color:var(--ink)}
.wks .nay-row{display:flex;flex-wrap:wrap;gap:8px}
.wks .nay-b{border:1px solid #cfd6df;background:#fff;color:var(--ink);font:inherit;font-size:.88rem;font-weight:700;padding:9px 16px;cursor:pointer;line-height:1.4;transition:background-color .2s,color .2s,border-color .2s}
.wks .nay-b small{font-family:var(--ff-en);font-weight:500;margin-left:8px;color:var(--blue)}
.wks .nay-b:hover{border-color:var(--blue);color:var(--blue)}
.wks .nay-b[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:#fff}
.wks .nay-b[aria-pressed="true"] small{color:#fff}
.wks .nay-b[hidden]{display:none}
.wks .case-nay span::before{content:none!important}
.wks .case-top .case-nay{color:var(--ink-2)!important;font-weight:700!important}
.wks .case-top .case-nay span+span::before{content:"／"!important;margin:0 .3em;color:#b3bcc8}
.wks .case[hidden]{display:none!important}
.wks .mk{background:none!important}
.wks .case:hover h3{color:var(--blue)}
.wks .case h3{transition:color .2s}
.wks .cats{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:clamp(24px,3vw,40px)!important;background:none!important;border:0!important;border-top:0!important;margin-top:clamp(28px,3.6vw,44px)!important}
.wks .cat{position:relative;display:grid!important;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;column-gap:20px;row-gap:4px;min-height:0!important;
  padding:clamp(22px,2.4vw,30px) clamp(20px,2.2vw,28px)!important;border:0!important;border-top:1px solid #cfd6df!important;
  background:linear-gradient(90deg,var(--blue) 0 0) no-repeat left/0% 100%,#fff!important;color:var(--ink);text-align:left;transition:background-size .5s cubic-bezier(.6,.05,.3,1),color .3s!important}
.wks .cats>.cat:nth-last-child(-n/**/+2){border-bottom:1px solid #cfd6df!important}
.wks .cat::after{display:none!important}
.wks .cat-f{grid-column:1;grid-row:1;font-size:clamp(1.35rem,2.3vw,1.85rem)!important;font-weight:900;letter-spacing:.04em;line-height:1.3}
.wks .cat-o{grid-column:1;grid-row:2;font-size:.8rem!important;color:var(--ink-2)}
.wks button.cat::before{content:"→";grid-column:2;grid-row:1/3;font-family:var(--ff-en);font-size:1.4rem;font-weight:500;color:var(--blue);transition:transform .35s,color .3s}
.wks button.cat:hover,.wks button.cat[aria-pressed="true"]{background-size:100% 100%,auto!important;color:#fff!important}
.wks button.cat:hover .cat-o,.wks button.cat[aria-pressed="true"] .cat-o{color:rgba(255,255,255,.8)!important}
.wks button.cat:hover::before,.wks button.cat[aria-pressed="true"]::before{color:#fff;transform:translateX(6px)}
.wks .cat.is-soon{cursor:default}
.wks .cat.is-soon .cat-f{color:#aab3bf}
.wks .cat.is-soon .cat-o{color:#b8c0ca}
.wks .cat.is-soon .cat-n{grid-column:2;grid-row:1/3;margin:0!important;font-size:.72rem!important;font-weight:700;color:#9aa5b4!important;border:1px solid #cfd6df;padding:3px 10px;letter-spacing:.06em}
@media (max-width:760px){
.wks .cats{grid-template-columns:1fr!important}
.wks .cats>.cat:nth-last-child(2){border-bottom:0!important}
.wks .cat-f{font-size:1.25rem!important}
}
.wks .cats{grid-template-columns:repeat(4,minmax(0,1fr))!important;column-gap:clamp(20px,2.6vw,36px)!important;row-gap:0!important;margin-top:clamp(20px,2.6vw,32px)!important}
.wks .cat{display:grid!important;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;row-gap:2px;padding:14px 0 18px!important;
  background:none!important;border:0!important;border-top:1px solid #cfd6df!important;box-shadow:inset 0 0 0 0 var(--blue);transition:color .2s,box-shadow .25s!important}
.wks .cats>.cat:nth-last-child(-n/**/+2){border-bottom:0!important}
.wks button.cat::before{content:none!important}
.wks .cat-f{font-size:1.02rem!important;font-weight:700!important;letter-spacing:.04em;line-height:1.5}
.wks .cat-o{font-size:.72rem!important;color:var(--ink-2)}
.wks button.cat:hover,.wks button.cat[aria-pressed="true"]{background:none!important;color:var(--blue)!important}
.wks button.cat:hover .cat-o,.wks button.cat[aria-pressed="true"] .cat-o{color:var(--ink-2)!important}
.wks button.cat[aria-pressed="true"]{box-shadow:inset 0 2px 0 0 var(--blue)}
.wks .cat.is-soon .cat-f{color:#aab3bf}
.wks .cat.is-soon .cat-o{color:#b8c0ca}
.wks .cat.is-soon .cat-n{grid-column:2;grid-row:1;align-self:center;border:0!important;padding:0!important;font-size:.68rem!important;color:#aab3bf!important}
.wks .entry .h2{font-size:clamp(1.3rem,2.2vw,1.6rem)}
@media (max-width:760px){
.wks .cats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.wks .cat-f{font-size:.95rem!important}
}
.wks .cat-o{grid-column:1/-1!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wks .nay-box{display:grid!important;grid-template-columns:7em minmax(0,1fr);align-items:center;gap:8px 16px!important;margin:0 0 12px!important}
.wks .gyo-box{margin-bottom:clamp(24px,3vw,32px)!important}
.wks .gyo-b{border:1px solid #cfd6df;background:#fff;color:var(--ink);font:inherit;font-size:.88rem;font-weight:700;padding:9px 16px;cursor:pointer;line-height:1.4;transition:background-color .2s,color .2s,border-color .2s}
.wks .gyo-b small{font-family:var(--ff-en);font-weight:500;margin-left:8px;color:var(--blue)}
.wks .gyo-b:hover{border-color:var(--blue);color:var(--blue)}
.wks .gyo-b[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:#fff}
.wks .gyo-b[aria-pressed="true"] small{color:#fff}
@media (max-width:600px){
.wks .nay-box{grid-template-columns:1fr}
}
.wks .svc-lb{border:0!important;padding:0!important;background:none!important;color:var(--blue)!important;font-size:.82rem!important}
.wks .svc-lb.multi{color:var(--orange)!important}
.wks .case-top .case-nay span,.wks .d-head .case-nay span{display:inline-block;border:1px solid #cfd6df;padding:2px 10px;font-size:.76rem!important;font-weight:700;color:var(--ink)!important;line-height:1.6}
.wks .case-top .case-nay span+span::before,.wks .d-head .case-nay span::before{content:none!important}
.wks .case-top .case-nay{display:inline-flex;gap:6px}
.wks .d-head .case-nay{gap:6px!important}
.wks .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wks .axis{display:flex;gap:clamp(20px,3vw,40px);align-items:baseline}
.wks .ax-b{border:0;background:none;padding:0 0 6px;font:inherit;font-size:clamp(1.25rem,2.1vw,1.55rem);font-weight:900;color:#aab3bf;cursor:pointer;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.wks .ax-b:hover{color:var(--ink)}
.wks .ax-b[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--blue)}
.wks .cats[hidden]{display:none!important}
.wks .cats-gyo .cat{min-height:0}
.wks .cats-gyo .cat-f{padding:2px 0 6px}
.wks .list{padding-top:clamp(28px,3.4vw,40px)!important}
.wks .case-top .case-nay span,.wks .d-head .case-nay span{border:0!important;padding:0!important;font-size:.8rem!important;color:var(--ink-2)!important}
.wks .case-top .case-nay span+span::before{content:"／"!important;margin:0 .3em;color:#b3bcc8}
.wks .case-top{gap:6px 16px!important}
.wks .ax-b{border-bottom:0!important;padding-bottom:0!important}
.wks .cats .cat{border-top:0!important;border-bottom:0!important;box-shadow:none!important;padding:10px 0 12px!important}
.wks button.cat[aria-pressed="true"]{box-shadow:none!important}
.wks button.cat[aria-pressed="true"] .cat-f{color:var(--blue)}
.wks button.cat[aria-pressed="true"] .cat-f::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue);margin-right:8px;vertical-align:middle;position:relative;top:-2px}
.wks .cats{margin-top:clamp(16px,2vw,24px)!important;row-gap:2px!important}
.wks .cats-gyo{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.wks .cats-gyo .cat-f{font-size:.98rem!important;padding:0!important}
@media (max-width:760px){
.wks .cats-gyo{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
.wks .d-head{border-bottom:0!important;padding-bottom:0!important}
.wks .d-head .cs-slide{margin-bottom:0!important}
.wks .d-grid{padding-top:clamp(48px,5vw,72px)!important}
.wks .case>.case-go{margin-top:8px!important}
.wks .cats,.wks .cats-gyo{display:block!important;margin-top:clamp(14px,1.8vw,20px)!important;line-height:2.4;max-width:62em}
.wks .cats .cat{display:inline!important;padding:0!important;min-height:0!important;background:none!important;border:0!important;font:inherit;text-align:left}
.wks .cats .cat-o,.wks .cats .cat-n{display:none!important}
.wks .cats .cat-f{display:inline!important;font-size:1rem!important;font-weight:700!important;letter-spacing:.04em;padding:0!important}
.wks .cats .cat-f::before{content:none!important}
.wks .cats .cat+.cat::before{content:"／"!important;display:inline!important;margin:0 .9em;color:#c3cad3;font-weight:400;transform:none!important}
.wks button.cat:hover .cat-f{color:var(--blue)}
.wks button.cat[aria-pressed="true"] .cat-f{color:var(--blue);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}
.wks .cat.is-soon .cat-f{color:#b3bcc8!important;font-weight:500!important}
.wks .cats .cat{display:inline-block!important;white-space:nowrap}
.wks .cats .cat{vertical-align:top!important;line-height:2.6!important;font-size:1rem!important;height:auto!important;margin:0!important}
.wks .cats .cat-f{line-height:inherit!important}
.wks .subs-g button.cat[aria-pressed="true"]{box-shadow:none!important;padding-left:0!important}
.wks .subs-g button.cat[aria-pressed="true"] .cat-f{color:var(--blue)!important;text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:7px!important}
.wks .pro-link{position:relative;border:0!important;border-radius:0!important;background:none!important;padding:0 30px 8px 2px!important;font-size:.95rem!important;font-weight:700;color:var(--ink)!important;transition:color .2s}
.wks .pro-link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--blue)}
.wks .pro-link::before{content:"";position:absolute;right:-1px;bottom:0;border-left:12px solid var(--blue);border-top:8px solid transparent}
.wks .pro-link:hover{background:none!important;color:var(--blue)!important}
.wks .pro>div:last-child{display:flex;flex-direction:column}
.wks .pro-top{display:contents!important}
.wks .pro-role{order:1}
.wks .pro-nm{order:2;margin:4px 0 18px!important}
.wks .pro-dl{order:3}
.wks .pro-link{order:4;align-self:flex-end;margin-top:18px;display:inline-block!important;flex:none}
.wks .case-top .case-nay,.wks .d-head .case-nay{display:none!important}
.wks .d-sec h2 span{background:none!important}
.wks .d-sec h2{font-size:clamp(1.2rem,2vw,1.45rem)!important;margin-bottom:1em!important;color:var(--ink)}
.wks .cats .cat+.cat::before{font-size:1rem!important;font-family:var(--ff)!important;line-height:inherit!important;color:#c3cad3!important}
.wks .axis{display:flex!important;align-items:baseline;gap:0!important;font-size:clamp(1.35rem,2.2vw,1.65rem);font-weight:900;letter-spacing:.04em}
.wks .ax-b{font-size:inherit!important;font-weight:900!important;padding:0!important;border:0!important;background:none;color:#b3bcc8!important;cursor:pointer;transition:color .2s}
.wks .ax-b:hover{color:var(--ink-2)!important}
.wks .ax-b[aria-selected="true"]{color:var(--blue)!important;cursor:default}
.wks .ax-b:focus,.wks .ax-b:focus-visible{outline:none!important}
.wks .ax-b:focus-visible{text-decoration:underline;text-underline-offset:6px}
.wks .ax-sep{margin:0 .35em;color:#c9d0d9;font-weight:400}
.wks .ax-tail{margin-left:.3em;color:var(--ink)}
.wks .cats button.cat:focus,.wks .cats button.cat:focus-visible{outline:none!important}
.wks .cats button.cat:focus-visible .cat-f{text-decoration:underline;text-underline-offset:6px}
.wks .axis{display:inline-flex!important;gap:0!important;border:1px solid var(--blue);font-size:1rem!important;letter-spacing:.04em}
.wks .ax-b{font-size:.95rem!important;font-weight:700!important;padding:12px 26px!important;color:var(--blue)!important;background:#fff!important;cursor:pointer;transition:background-color .2s,color .2s}
.wks .ax-b+.ax-b{border-left:1px solid var(--blue)!important}
.wks .ax-b:hover{background:#fff!important;color:var(--ink)!important}
.wks .ax-b[aria-selected="true"]{background:var(--blue)!important;color:#fff!important}
.wks .ax-b:focus-visible{text-decoration:none;box-shadow:inset 0 0 0 2px #fff}
.wks .cats{margin-top:clamp(20px,2.4vw,28px)!important}
@media (max-width:600px){
.wks .axis{display:flex!important}
.wks .ax-b{flex:1;padding:12px 10px!important}
}
.wks .axis{display:flex!important;gap:12px!important;border:0!important}
.wks .ax-b{border:1px solid var(--blue)!important}
.wks .ax-b+.ax-b{border-left:1px solid var(--blue)!important}
@media (max-width:600px){
.wks .axis{gap:8px!important}
}
.wks .subs{margin-top:clamp(18px,2.2vw,26px);padding-top:clamp(16px,2vw,22px);border-top:1px solid #dde2e8}
.wks .subs[hidden]{display:none}
.wks .subs-l{margin:0;font-size:.8rem;font-weight:700;color:var(--ink-2)}
.wks .subs-row{margin-top:6px!important}
.wks .subs-row .cat-f{font-size:.92rem!important}
.wks .subs-l{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
.wks .sub-all{border:0;background:none;padding:0;font:inherit;font-size:.9rem;font-weight:700;color:var(--ink);cursor:pointer}
.wks .sub-all:hover{color:var(--blue)}
.wks .sub-all[aria-pressed="true"]{color:var(--blue);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}
.wks .sub-all:focus{outline:none}
.wks .subs-g{display:grid;grid-template-columns:11em minmax(0,1fr);gap:4px 16px;align-items:baseline;margin-top:10px}
.wks .subs-gl{margin:0;font-size:.82rem;font-weight:700;color:var(--blue);line-height:2.6}
.wks .subs-g .subs-row{margin-top:0!important}
@media (max-width:700px){
.wks .subs-g{grid-template-columns:1fr;gap:0}
.wks .subs-gl{line-height:1.8}
}
.wks .cats,.wks .cats-gyo{display:flex!important;flex-wrap:wrap;gap:4px 30px!important;line-height:2.4;max-width:none}
.wks .cats .cat+.cat::before{content:none!important;margin:0!important}
.wks .cats .cat{line-height:2.4!important}
.wks button.cat[aria-pressed="true"] .cat-f{text-underline-offset:8px}
.wks .cat.is-soon .cat-f{color:#c0c7d0!important}
.wks .subs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(32px,4vw,56px);background:#fff;border-top:0!important;margin-top:clamp(20px,2.4vw,28px)!important;padding:clamp(22px,2.6vw,32px) clamp(22px,2.8vw,36px)!important}
.wks .subs[hidden]{display:none!important}
.wks .subs-l{grid-column:1/-1;margin:0 0 14px!important}
.wks .subs-g{display:block!important;margin:0!important}
.wks .subs-gl{margin:0 0 4px!important;padding-bottom:8px;border-bottom:2px solid var(--blue);line-height:1.6!important;font-size:.9rem!important}
.wks .subs-g .subs-row{display:flex!important;flex-direction:column!important;gap:0!important;line-height:1.6}
.wks .subs-g .cat{display:block!important;width:100%;padding:11px 0!important;border-bottom:1px solid #e3e7ec!important;line-height:1.6!important;text-align:left}
.wks .subs-g .cat-f{font-size:.92rem!important}
.wks .subs-g button.cat[aria-pressed="true"] .cat-f{text-decoration:none;color:var(--blue)}
.wks .subs-g button.cat[aria-pressed="true"]{box-shadow:inset 3px 0 0 var(--blue)!important;padding-left:12px!important}
.wks .subs-g .cat.is-soon .cat-f::after{content:"準備中";margin-left:10px;font-size:.7rem;font-weight:500;color:#c0c7d0}
@media (max-width:760px){
.wks .subs{grid-template-columns:1fr}
.wks .subs-g+.subs-g{margin-top:20px!important}
}
.wks .pro-ul{list-style:none;margin:0;padding:0}
.wks .pro-ul li{position:relative;padding-left:1em;line-height:1.85}
.wks .pro-ul li::before{content:"・";position:absolute;left:0}
.wks .rel a{grid-template-columns:1fr!important;grid-template-areas:"n" "t"!important}
.wks .r-nay{color:var(--blue)!important}
.wks .rel a:hover .r-t{color:var(--blue)}
.wks .r-nay{display:flex;gap:14px;align-items:baseline;font-size:.78rem!important}
.wks .r-f{color:var(--blue);font-weight:700}
.wks .r-g{color:var(--ink-2);font-weight:500}
.wks .end .cta{border-radius:0!important;background:#fff!important;color:var(--blue)!important;padding:18px 44px!important;font-size:1rem!important;letter-spacing:.06em;position:relative;transition:background-color .2s,color .2s}
.wks .end .cta::after{content:"→";font-family:var(--ff-en);margin-left:14px;transition:transform .3s}
.wks .end .cta:hover{background:var(--orange)!important;color:#fff!important}
.wks .end .cta:hover::after{transform:translateX(4px)}
.wks .stats .nums,.wks .stats .nums-4{border:0!important;background:none!important}
.wks .stats .nums-4 .num{border:0!important;padding-left:0!important}
.wks .stats .nums-4 .num+.num{border-left:0!important}
.wks .back{position:relative;padding:0 0 8px 26px!important;color:var(--ink)!important}
.wks .back svg{position:absolute;left:0;top:3px;color:var(--blue)}
.wks .back::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--blue)}
.wks .back:hover{color:var(--blue)!important}
.wks .d-ul li::before{content:"・"!important;width:auto!important;height:auto!important;border-radius:0!important;background:none!important;top:0!important;color:var(--ink)}
.wks #subs .subs-g button.cat[aria-pressed="true"]{box-shadow:none!important;padding-left:0!important;border-left:0!important}
.wks #subs .subs-g .cat{border-bottom:1px solid #e3e7ec!important;border-top:0!important}
.wks h1,.wks h2,.wks h3,.wks .d-title,.wks .case h3,.wks .r-t,.wks .end h2,.wks .d-steps h3{word-break:auto-phrase}
.wks h1,.wks h2,.wks h3,.wks .d-title,.wks .r-t,.wks .end h2{text-wrap:balance}
.wks .ib{display:inline-block}
.wks #subs .cat{white-space:normal!important}
@media (max-width:760px){
.wks .ptitle.fv{padding-top:calc(var(--hd) + 40px)!important;padding-bottom:44px!important}
.wks .ptitle.fv .lead{font-size:.92rem}
.wks .stats .nums-4{grid-template-columns:1fr!important;gap:0!important}
.wks .stats .nums-4 .num{display:grid;grid-template-columns:8.2em minmax(0,1fr);align-items:baseline;gap:12px;padding:14px 0!important;border:0!important;border-top:1px solid var(--line)!important}
.wks .stats .nums-4 .num:first-child{border-top:0!important}
.wks .stats .nums-4 .num-v b{font-size:2.4rem!important}
.wks .stats .nums-4 .num-c{margin:0;font-size:.84rem}
.wks .end h2{font-size:1.3rem}
.wks .end .cta{width:100%;justify-content:center}
.wks .d-steps li{grid-template-columns:1fr!important;gap:2px!important}
.wks .d-n{font-size:1.4rem!important}
.wks .d-side .back{display:none!important}
.wks .d-side{margin-bottom:8px}
.wks .d-rel .h2{font-size:1.3rem!important}
.wks .pro-dl>div{grid-template-columns:76px minmax(0,1fr)!important;gap:12px!important}
.wks .pro-nm{font-size:24px!important}
.wks .pro-role{font-size:12px!important;line-height:1.6}
}
.wks #subs .subs-g button.cat{display:flex!important;justify-content:flex-start!important;align-items:center;text-align:left!important;width:100%!important}
.wks #subs .subs-g button.cat .cat-f{display:block!important;text-align:left!important}
.wks .cats button.cat{text-align:left!important}
.wks .sub-all{text-align:left!important}
.wks #subs .subs-g a.cat{display:block!important;width:100%;padding:11px 0!important;border-bottom:1px solid #e3e7ec!important;color:var(--ink);text-decoration:none;text-align:left!important;line-height:1.6!important}
.wks #subs .subs-g a.cat .cat-f{font-size:.92rem!important;font-weight:700!important;color:var(--ink)}
.wks #subs .subs-g a.cat:hover .cat-f{color:var(--blue)}
.wks #subs .subs-g a.cat[aria-current="true"] .cat-f{color:var(--blue)!important;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}
.wks .zbtn>img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#fff}
/* ---------- ほかのページとそろえる ---------- */
.wks{--ff:'Hiragino Kaku Gothic ProN','Hiragino Sans','ヒラギノ角ゴ ProN W3','BIZ UDPGothic','Meiryo',sans-serif;--ff-en:'Jost','Futura','Century Gothic',sans-serif;--hd:88px;--wrap:1240px;--gutter:6vw;
  padding-top:0;font-family:var(--ff);color:var(--ink);background:var(--white);font-size:16px;line-height:1.95;letter-spacing:.03em;-webkit-font-smoothing:antialiased;overflow-x:clip}
@media (max-width:1080px){.wks{--hd:64px}}
.wks *,.wks *::before,.wks *::after{box-sizing:border-box}
.wks a{color:inherit}
.wks button{font-family:inherit;color:inherit}
.wks :focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.wks .wrap{box-sizing:content-box;max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}   /* 横幅：ほかのページ（中身1240px・左右6%）と同じ */
.wks .ptitle h1 svg{display:none}   /* ページ名の手書きのまるは出さない（ほかのページと同じ） */
/* ---------- 上部（ページ名）：ほかのページ（会社概要・事業・サービスなど）と同じ見た目に ----------
   紺の帯をやめて白地に。パンくず（上から160px）→ ページ名（紺・太字）→ リード文を左寄せで並べる */
.wks .ptitle.fv{background:none!important;color:var(--ink);text-align:left;overflow:visible;padding:160px 0 0!important}
.wks .ptitle.fv .crumb{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 48px;font-size:12px;line-height:1.6;color:#5d6878;text-align:left}
.wks .ptitle.fv .crumb a{color:inherit;text-decoration:none}
.wks .ptitle.fv .crumb a:hover{color:#003885}
.wks .ptitle.fv .ptitle-row{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0}
.wks .ptitle.fv h1{display:block;margin:0 0 28px;padding:0;font-size:clamp(30px,4.2vw,46px);font-weight:700;letter-spacing:.06em;line-height:1.4;color:#003885}
.wks .ptitle.fv .lead{margin:0;max-width:none;font-size:16px;font-weight:400;line-height:1.95;color:var(--ink)}
@media (min-width:761px){.wks .ptitle.fv .lead{white-space:nowrap}}   /* リード文はパソコンでは1行で（スマホは画面の幅で折り返す） */
.wks .ptitle.fv .lead .ib{display:inline}
@media (max-width:760px){
  .wks .ptitle.fv{padding:120px 0 8px!important}
  .wks .ptitle.fv .crumb{margin-bottom:32px}
  .wks .ptitle.fv .lead{font-size:15px}
}

/* ============================================================
   53. お問い合わせ 2026年10月 改訂版（page-inquiry.php の <div class="iq iq--split">）
   ・パソコン：左に紺の窓口の図（パンくず・ページ名・担当の案内つき。スクロールしても左に残る）、右にフォーム
   ・スマホ・タブレット：上に図、下にフォーム
   ・図・フォームの細かい見た目は「38. お問い合わせ」をそのまま使う
   ============================================================ */
  .iq--split .iq-visual{ padding:40px 6% 48px; }
  .iq--split .iq-visual-in{ position:relative; z-index:1; display:flex; flex-direction:column; gap:8px; width:100%; }
  .iq--split .iq-intro{ position:relative; z-index:1; }
  .iq--split .iq-crumb{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 24px; font-size:12px; line-height:1.6; color:rgba(255,255,255,.75); letter-spacing:.07em; }
  .iq--split .iq-crumb a{ color:#fff; text-decoration:none; }
  .iq--split .iq-crumb a:hover{ text-decoration:underline; }
  .iq--split .iq-h1{ margin:0 0 12px; font-size:clamp(30px,4.2vw,46px); font-weight:700; letter-spacing:.06em; line-height:1.4; color:#fff; }
  .iq--split .iq-route{ margin:0; text-align:left; font-size:15px; min-height:3.6em; }
  .iq--split .iq-mapwrap{ margin:0 auto; }
  .iq--split .iq-formlead{ margin:0 0 8px; font-size:16px; font-weight:700; color:var(--blue); }
  .iq--split .iq-reqnote{ margin:0 0 32px; }
  @media (min-width:1081px){
    .iq--split .iq-split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; }
    .iq--split .iq-visual{ position:sticky; top:var(--iq-hd); min-height:calc(100vh - var(--iq-hd)); padding:56px 5% 40px; justify-content:flex-start; }
    .iq--split .iq-mapwrap{ max-width:620px; }
    .iq--split .iq-box{ width:min(600px, calc(100% - 80px)); margin:72px auto 0; }
    .iq--split .iq-panel{ padding-bottom:120px; }
  }
  @media (max-width:1080px){
    .iq--split .iq-route{ text-align:center; min-height:1.8em; }
    .iq--split .iq-intro{ text-align:left; }
  }
  @media (max-width:640px){
    .iq--split .iq-visual{ padding:32px 5% 40px; }
    .iq--split .iq-map .node text .of{ display:none; }   /* スマホ：図の事務所名は出さない（分野名だけ） */
  }

  /* ---------- ご相談先の選択パネル（プルダウンの代わり。page-inquiry.php のスクリプトが作る） ---------- */
  .iq--split .iq-native{ position:absolute !important; width:1px !important; height:1px !important; opacity:0 !important; pointer-events:none !important; }   /* CF7 のプルダウン：値の送信だけに使い、見えなくする */
  .iq--split [data-req="kind"] > div{ position:relative; }
  .iq--split .iq-pick-btn{ display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; padding:10px 0 12px; border:0; border-bottom:1px solid var(--blue); background:transparent; font:inherit; font-size:18px; color:var(--ink); text-align:left; cursor:pointer; }
  .iq--split .iq-pick-btn.is-empty .iq-pick-val{ color:#9aa3b0; }
  .iq--split .iq-pick-btn:focus-visible{ outline:2px solid var(--orange); outline-offset:3px; }
  .iq--split .iq-pick-chev{ flex:none; width:10px; height:10px; border-right:2px solid var(--ink); border-bottom:2px solid var(--ink); transform:translateY(-3px) rotate(45deg); transition:transform .2s; }
  .iq--split .iq-pick-btn.is-open .iq-pick-chev{ transform:translateY(2px) rotate(-135deg); }
  .iq--split .is-invalid .iq-pick-btn{ border-bottom-color:var(--iq-err); }
  .iq--split .iq-pick{ position:relative; z-index:5; margin-top:10px; padding:22px 24px 18px; background:#fff; border:1px solid #c9d3e3; box-shadow:0 18px 40px rgba(11,42,91,.12); }
  .iq--split .iq-pick[hidden]{ display:none; }
  .iq--split .iq-pick-g + .iq-pick-g{ margin-top:22px; }
  .iq--split .iq-pick-h{ margin:0 0 10px; padding-bottom:10px; border-bottom:1px solid var(--line); font-size:14px; font-weight:700; color:var(--blue); }
  .iq--split .iq-pick-list{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 20px; }
  .iq--split .iq-pick-o{ display:flex; align-items:center; gap:14px; width:100%; padding:10px 12px; border:0; border-radius:4px; background:transparent; font:inherit; color:var(--ink); text-align:left; cursor:pointer; transition:background-color .15s; }
  .iq--split .iq-pick-o:hover, .iq--split .iq-pick-o:focus-visible{ background:#f2f6fb; outline:none; }
  .iq--split .iq-pick-o[aria-selected="true"]{ background:#e8f0fa; }
  .iq--split .iq-pick-mk{ flex:none; display:grid; place-items:center; width:42px; height:42px; background:var(--blue); color:#fff; font-size:18px; font-weight:700; }
  .iq--split .iq-pick-t{ display:flex; flex-direction:column; min-width:0; }
  .iq--split .iq-pick-t b{ font-size:17px; font-weight:700; line-height:1.5; }
  .iq--split .iq-pick-t small{ font-size:13px; line-height:1.5; color:var(--blue); }
  .iq--split .iq-pick-list:not(.is-pro) .iq-pick-t b{ font-size:16px; font-weight:400; }
  @media (max-width:640px){
    .iq--split .iq-pick{ padding:16px 14px 12px; }
    .iq--split .iq-pick-list{ grid-template-columns:1fr; }
  }

/* ============================================================
   54. 代表紹介 2026年10月 改訂版（page-ceo-introduction.php の <div class="pg ceo2">）
   ・クラス名は .ceo2 の中だけに効く（以前の「43. 代表紹介」のデザインは使わない）
   ・ページ名（パンくず・h1）と見出し（h2）は、ほかのページと同じ（style.css「41」の .pg-hero／.pg-h2）
   ・書体・横幅もほかのページとそろえる（最後の「そろえる」の部分）
   ============================================================ */
.ceo2{--bg:#fff;--tx:#1B2B45;--navy:#003885;--or:#FF7F00;--or-tx:#D96A00;--line:#D5DCE6;--sub:#4A5568;--ph:#D9DFE7;color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.ceo2 h1,.ceo2 h2,.ceo2 h3,.ceo2 b,.ceo2 .msg-copy,.ceo2 .msg p.em,.ceo2 .lead,.ceo2 .cta h2,.ceo2 .nm{word-break:auto-phrase}
.ceo2 .nw{white-space:nowrap}
.ceo2 .wrap{max-width:1200px;margin:0 auto;padding:0 40px}
.ceo2 .ph{background:var(--ph);color:var(--sub);display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px;line-height:1.7;width:100%}
.ceo2 .sec{padding:120px 0}
.ceo2 .head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:48px}
.ceo2 .more{font-size:14px;font-weight:500;white-space:nowrap}
.ceo2 .more::after{content:" →"}
.ceo2-js .ceo2 .rv{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
.ceo2-js .ceo2 .rv.in{opacity:1;transform:none}
.ceo2 .wk:hover,.ceo2 .wp a:hover,.ceo2 .arts a:hover{text-decoration:none}
.ceo2 .fv{position:relative;overflow:hidden;padding:28px 0 110px}
.ceo2 .fv-ring{position:absolute;right:-260px;top:40px;width:760px;height:760px;pointer-events:none}
.ceo2 .fv-ring circle{stroke-dasharray:2200;stroke-dashoffset:2200;animation:ceo2-draw 2.4s cubic-bezier(.6,.1,.2,1) .2s forwards}
@keyframes ceo2-draw{to{stroke-dashoffset:0}}
.ceo2 .fv .wrap{position:relative}
.ceo2 .fv-grid{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:72px;align-items:center}
.ceo2 .portrait{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;position:relative}
.ceo2 .role{font-size:14px;line-height:1.9;margin:0}
.ceo2 .nm{font-size:50px;font-weight:700;color:var(--navy);line-height:1.2;letter-spacing:.1em;margin:20px 0 0}
.ceo2 .kana{font-size:14px;color:var(--sub);margin:10px 0 0;letter-spacing:.1em}
.ceo2 .kana span{font-family:"Jost",sans-serif;letter-spacing:.06em;margin-left:20px}
.ceo2 .intro{font-size:15px;line-height:2;margin:28px 0 0;max-width:620px}
.ceo2 .facts{margin:32px 0 0;border-top:1px solid var(--tx);max-width:640px;background:rgba(255,255,255,.85)}
.ceo2 .facts div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:20px;padding:13px 0;border-bottom:1px solid var(--line)}
.ceo2 .facts dt{font-size:13px;color:var(--sub)}
.ceo2 .facts dd{margin:0;font-size:14px;font-weight:500}
.ceo2 .spec span{white-space:nowrap}
.ceo2 .spec span:not(:last-child)::after{content:"／"}
.ceo2 .msg{border-top:1px solid #E1E6EE}
.ceo2 .msg-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:96px;align-items:start}
.ceo2 .msg-l{position:sticky;top:40px}
.ceo2 .msg-copy{font-size:40px;font-weight:700;line-height:1.55;color:var(--navy);margin:20px 0 0;letter-spacing:.02em}
.ceo2 .msg-copy span{color:inherit}
.ceo2 .msg p.b{font-size:16px;line-height:2.15;margin:0 0 28px}
.ceo2 .msg p.em{font-size:22px;line-height:1.8;font-weight:700;color:var(--navy);margin:44px 0}
.ceo2 .sig{margin-top:48px;padding-top:28px;border-top:1px solid var(--line);font-size:13px;color:var(--sub)}
.ceo2 .sig b{display:block;font-size:24px;color:var(--tx);letter-spacing:.14em;margin-top:4px}
.ceo2 .works{padding:110px 0;overflow:hidden;border-top:1px solid #E1E6EE}
.ceo2 .mq-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:grab}
.ceo2 .mq-wrap::-webkit-scrollbar{display:none}
.ceo2 .mq-wrap.drag{cursor:grabbing}
.ceo2 .mq{display:flex;gap:28px;width:max-content;padding:4px 40px 4px max(40px,calc((100vw - 1120px) / 2))}
.ceo2 .wk{width:340px;color:var(--tx);display:block}
.ceo2 .wk .ph{aspect-ratio:16/10;margin-bottom:14px;transition:opacity .3s}
.ceo2 .wk:hover .ph{opacity:.85}
.ceo2 .lb{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.ceo2 .lb span{font-size:12px;color:var(--navy);border:1px solid var(--navy);padding:1px 8px;line-height:1.7}
.ceo2 .wk b{display:block;font-size:16px;line-height:1.7}
.ceo2 .wk:hover b{text-decoration:underline;text-underline-offset:4px}
.ceo2 .car{position:relative;overflow:hidden;background:var(--navy);color:#fff;padding:120px 0 130px}
.ceo2 .car-ring{position:absolute;left:-300px;bottom:-420px;width:900px;height:900px;pointer-events:none}
.ceo2 .car .wrap{position:relative}
.ceo2 .car .h2{color:#fff}
.ceo2 .car .lead{font-size:15px;color:#D3DDEC;margin:16px 0 64px;max-width:560px}
.ceo2 .tl{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));position:relative}
.ceo2 .tl::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:rgba(255,255,255,.25)}
.ceo2 .tl-bar{position:absolute;top:-1px;left:0;height:3px;width:100%;background:#fff;transform:scaleX(0);transform-origin:left;transition:transform 2.6s cubic-bezier(.4,.1,.2,1)}
.ceo2 .tl.in .tl-bar{transform:scaleX(1)}
.ceo2 .tl-i{position:relative;padding:40px 20px 0 0;opacity:.0;transform:translateY(12px);transition:opacity .6s ease,transform .6s ease}
.ceo2 .tl.in .tl-i{opacity:1;transform:none}
.ceo2 .tl.in .tl-i:nth-child(2){transition-delay:.1s}
.ceo2 .tl.in .tl-i:nth-child(3){transition-delay:.5s}
.ceo2 .tl.in .tl-i:nth-child(4){transition-delay:.9s}
.ceo2 .tl.in .tl-i:nth-child(5){transition-delay:1.3s}
.ceo2 .tl.in .tl-i:nth-child(6){transition-delay:1.7s}
.ceo2 .tl.in .tl-i:nth-child(7){transition-delay:2.1s}
.ceo2 .tl.in .tl-i:nth-child(8){transition-delay:2.5s}
.ceo2 .tl-i::before{content:"";position:absolute;top:-6px;left:0;width:13px;height:13px;border-radius:50%;background:var(--navy);border:2px solid #fff}
.ceo2 .tl-y{font-family:"Jost",sans-serif;font-weight:500;font-size:30px;line-height:1}
.ceo2 .tl-m{display:none}
.ceo2 .tl-y{margin-bottom:16px}
.ceo2 .tl-i h3{font-size:15px;font-weight:700;margin:0 0 8px;line-height:1.65}
.ceo2 .tl-i p{font-size:13px;color:#C9D6EA;margin:0;line-height:1.8}
.ceo2 .tl-i.now .tl-y{color:var(--or)}
.ceo2 .tl-i.now::before{background:var(--or);border-color:var(--or)}
.ceo2 .wp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.ceo2 .wp a{color:var(--tx);display:block}
.ceo2 .wp .ph{aspect-ratio:16/9;margin-bottom:16px;box-shadow:0 18px 40px -24px rgba(0,40,100,.45);transition:transform .4s}
.ceo2 .wp-cv{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;margin-bottom:16px;box-shadow:0 18px 40px -24px rgba(0,40,100,.45);transition:transform .4s}
.ceo2 .wp a:hover .wp-cv{transform:translateY(-6px)}
.ceo2 .wp small{display:block;font-size:12px;color:var(--sub);margin-bottom:2px}
.ceo2 .wp b{font-size:17px;line-height:1.6}
.ceo2 .wp a:hover b{text-decoration:underline;text-underline-offset:4px}
.ceo2 .loop{margin-top:88px;padding-top:48px;border-top:1px solid var(--line);display:grid;grid-template-columns:260px minmax(0,1fr) auto;gap:48px;align-items:center}
.ceo2 .loop-mark{display:block;width:220px;height:auto}
.ceo2 .loop-h{grid-column:1/-1;margin:0 0 -16px;font-size:18px;font-weight:700;color:var(--navy);line-height:1.5}
.ceo2 .loop p{margin:0;font-size:15px;color:var(--sub);line-height:1.9}
.ceo2 .cta{position:relative;overflow:hidden;background:var(--navy);color:#fff;padding:120px 0}
.ceo2 .cta svg{position:absolute;right:-220px;top:-260px;width:900px;height:900px}
.ceo2 .cta .wrap{position:relative}
.ceo2 .cta h2{font-size:44px;font-weight:700;margin:0 0 24px;line-height:1.4;color:#fff}
.ceo2 .cta p{font-size:16px;line-height:2;margin:0 0 44px;color:#E4EBF5;max-width:560px}
.ceo2 .cta-btns{display:flex;gap:16px;flex-wrap:wrap}
.ceo2 .cta-btns a{display:inline-flex;align-items:center;justify-content:center;height:60px;padding:0 40px;font-weight:700;font-size:15px}
.ceo2 .cta-btns a.w{background:#fff;color:var(--navy)}
.ceo2 .cta-btns a.w:hover{background:#E8EEF7}
.ceo2 .cta-btns a.o{border:1px solid #fff;color:#fff}
.ceo2 .cta-btns a.o:hover{background:#fff;color:var(--navy)}
@media (max-width:1024px){
.ceo2 .fv-grid,.ceo2 .msg-grid{grid-template-columns:minmax(0,1fr);gap:48px}
.ceo2 .loop{grid-template-columns:minmax(0,1fr);gap:20px}
.ceo2 .portrait{max-width:360px}
.ceo2 .msg-l{position:static}
.ceo2 .tl{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:56px}
.ceo2 .tl::before,.ceo2 .tl-bar{display:none}
.ceo2 .tl-i{border-top:1px solid rgba(255,255,255,.3)}
}
@media (max-width:760px){
.ceo2 .wrap{padding:0 20px}
.ceo2 .sec,.ceo2 .works{padding:80px 0}
.ceo2 .nm{font-size:38px}
.ceo2 .msg-copy{font-size:30px}
.ceo2 .head{flex-direction:column;align-items:flex-start}
.ceo2 .wk{width:270px}
.ceo2 .mq{padding:4px 20px}
.ceo2 .tl{grid-template-columns:minmax(0,1fr);row-gap:0;padding-left:24px;margin-left:6px;border-left:1px solid rgba(255,255,255,.35)}
.ceo2 .tl-i{border-top:0;padding:0 0 36px 0}
.ceo2 .tl-i:last-child{padding-bottom:0}
.ceo2 .tl-i::before{top:5px;left:-31px}
.ceo2 .tl-y{margin-bottom:8px}
.ceo2 .facts div{grid-template-columns:72px minmax(0,1fr);gap:12px}
.ceo2 .spec span{display:block;white-space:normal}
.ceo2 .spec span:not(:last-child)::after{content:none}
.ceo2 .msg p.em{font-size:19px}
.ceo2 .msg p.em br{display:none}
.ceo2 .loop-h{margin:0 0 4px}
.ceo2 .fv{padding-bottom:56px}
.ceo2 .cta-btns a{width:100%}
.ceo2 .tl-y{font-size:26px}
.ceo2 .wp{grid-template-columns:minmax(0,1fr)}
.ceo2 .cta h2{font-size:30px}
.ceo2 .loop-mark{width:180px}
}
@media (prefers-reduced-motion:reduce){
.ceo2 .fv-ring circle{animation:none;stroke-dashoffset:0}
.ceo2-js .ceo2 .rv,.ceo2 .tl-i{opacity:1;transform:none;transition:none}
.ceo2 .tl-bar{transform:none;transition:none}
}
/* ---------- ほかのページとそろえる ---------- */
.ceo2{--tx:var(--ink,#1B2B45);font-family:'Hiragino Kaku Gothic ProN','Hiragino Sans','ヒラギノ角ゴ ProN W3','BIZ UDPGothic','Meiryo',sans-serif;color:var(--tx);line-height:1.9;line-break:strict;overflow-x:clip}
.ceo2 .wrap{box-sizing:content-box;max-width:1240px;margin:0 auto;padding:0 6%}   /* 横幅：ほかのページ（.pg-wrap）と同じ */
.ceo2 .fv-grid > *,.ceo2 .facts div,.ceo2 .wk,.ceo2 .tl-i,.ceo2 .wp a{box-sizing:border-box}
.ceo2 .pg-wrap,.ceo2 .wrap{box-sizing:content-box}   /* ページ名・本文の横幅は、ほかのページと同じ計算に */
.ceo2 img{max-width:100%}
.ceo2 a{color:var(--navy);text-decoration:none}
.ceo2 a:hover{text-decoration:underline;text-underline-offset:4px}
.ceo2 .wk:hover,.ceo2 .wp a:hover{text-decoration:none}
/* プロフィール：ページ名のすぐ下から */
.ceo2 .fv{padding:24px 0 110px}
.ceo2 .fv-ring{top:-120px}
/* 見出し（h2）：ほかのページと同じ .pg-h2。横並びの「一覧」リンクと並ぶところは下の余白なし */
.ceo2 .head .pg-h2,.ceo2 .msg-l .pg-h2{margin:0}
.ceo2 .head{margin-bottom:48px}
.ceo2 .car .pg-h2{margin:0;color:#fff}
.ceo2 .car .pg-h2 span{background-image:linear-gradient(rgba(255,255,255,.24),rgba(255,255,255,.24))}
/* ご支援事例のカード：写真の代わりに紺の色面に業界名（トップページのカードと同じ考え方） */
.ceo2 .wk-ph{position:relative;overflow:hidden;align-items:flex-end;justify-content:flex-start;padding:18px 20px;background:linear-gradient(135deg,#1d5fbf,#00265e);color:#fff;font-size:22px;font-weight:700;letter-spacing:.06em;line-height:1.3;text-align:left}
.ceo2 .wk-ph::before{content:"";position:absolute;width:110%;aspect-ratio:1;border-radius:50%;border:40px solid #fff;opacity:.1;right:-58%;top:-70%}
.ceo2 .wk-ph span{position:relative}
.ceo2 .wk b{color:var(--tx)}
/* 経歴：件数に合わせて横に並べる */
.ceo2 .tl{grid-template-columns:repeat(var(--n,7),minmax(0,1fr))}
@media (max-width:1024px){.ceo2 .tl{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.ceo2 .tl{grid-template-columns:minmax(0,1fr)}.ceo2 .wrap{padding:0 6%}.ceo2 .fv{padding-top:8px}}
/* 締めの帯：見出しは白（.pg の見出しの色にしない） */
.ceo2 .cta h2{color:#fff}
/* SNS（プロフィールの表の中） */
.ceo2 .sns-dd{display:flex;gap:24px;align-items:center}
.ceo2 .sns-dd a{display:inline-flex;align-items:center;gap:8px;color:var(--tx);font-family:"Jost",sans-serif;font-size:15px}
.ceo2 .sns-dd img{width:24px;height:24px;display:block}
/* メッセージの左（見出しと大きな一文）：固定ヘッダーの下に残る */
.ceo2 .msg-l{top:calc(88px + 40px)}
@media (max-width:1080px){.ceo2 .msg-l{top:calc(64px + 24px)}}
/* 上部の大きな丸：プロフィールの枠で切らず、ページ名の部分（ヘッダーの下）から途切れずに見せる */
.ceo2{position:relative}
.ceo2 > .fv-ring{position:absolute;z-index:0;right:-260px;top:110px;width:760px;height:760px;pointer-events:none}
.ceo2 .pg-hero,.ceo2 .fv{position:relative;z-index:1}
.ceo2 .fv{overflow:visible}
@media (max-width:760px){.ceo2 > .fv-ring{right:-300px;top:90px;width:560px;height:560px}}
/* 代表紹介の見出し（ご支援事例・経歴・執筆・監修）：マーカーなし（文字だけ） */
.ceo2 .pg-h2 span{background:none!important}