@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;600;700;900&family=BIZ+UDPGothic:wght@400;700&family=Noto+Serif+JP:wght@400;600&display=swap");
/* 日本臨床内科医会 ブランドブック v1.10（2026-10-25）— tokens と部品の型を1枚に結合。直接書き換えず、サイト固有の調整は site.css へ */
:root, [data-theme="kami"] {
  --paper: #fbfaf7;
  --sheet: #ffffff;
  --wash: #f4f3ef;
  --ink: #1c1c1a;
  --ink-2: #4b4b46;
  --ink-3: #6f6e67;
  --rule: #dcdad2;
  --rule-soft: #ebe9e3;
  --rule-strong: #1c1c1a;
  --field-line: #8f8d85;
  --ai-tint: #f1f3f6;
  --ai-soft: #bdccdb;
  --ai-deep: #1b3a5c;
  --on-ai-deep: #ffffff;
  --ai-accent: #b0412a;
  --ai-accent-strong: #8f3522;
  --on-ai-accent: #ffffff;
  --ai-sub: #8d6a15;
  --konjo-tint: #f1f2f6;
  --konjo-soft: #bdc4db;
  --konjo-deep: #22336b;
  --on-konjo-deep: #ffffff;
  --konjo-accent: #8a6413;
  --konjo-accent-strong: #664a0e;
  --on-konjo-accent: #ffffff;
  --konjo-sub: #2d6b5f;
  --tetsu-tint: #f1f6f5;
  --tetsu-soft: #bfd9d6;
  --tetsu-deep: #1d4f4a;
  --on-tetsu-deep: #ffffff;
  --tetsu-accent: #a4512a;
  --tetsu-accent-strong: #844122;
  --on-tetsu-accent: #ffffff;
  --tetsu-sub: #8c6d1f;
  --tokiwa-tint: #f2f5f2;
  --tokiwa-soft: #c4d4c6;
  --tokiwa-deep: #2f5233;
  --on-tokiwa-deep: #ffffff;
  --tokiwa-accent: #8e2f3a;
  --tokiwa-accent-strong: #6f252d;
  --on-tokiwa-accent: #ffffff;
  --tokiwa-sub: #8a6413;
  --seiji-tint: #f1f6f5;
  --seiji-soft: #c1d7d3;
  --seiji-deep: #286055;
  --on-seiji-deep: #ffffff;
  --seiji-accent: #b0503a;
  --seiji-accent-strong: #914230;
  --on-seiji-accent: #ffffff;
  --seiji-sub: #1b3a5c;
  --sumi-tint: #f4f4f4;
  --sumi-soft: #cdcdcb;
  --sumi-deep: #2b2b29;
  --on-sumi-deep: #ffffff;
  --sumi-accent: #22408a;
  --sumi-accent-strong: #1a3169;
  --on-sumi-accent: #ffffff;
  --sumi-sub: #b0412a;
  --shu-tint: #f7f1f0;
  --shu-soft: #dec0ba;
  --shu-deep: #8c3220;
  --on-shu-deep: #ffffff;
  --shu-accent: #1b3a5c;
  --shu-accent-strong: #12263c;
  --on-shu-accent: #ffffff;
  --shu-sub: #8d6a15;
  --kou-tint: #f6f4f1;
  --kou-soft: #d8cec0;
  --kou-deep: #6b4f2a;
  --on-kou-deep: #ffffff;
  --kou-accent: #8e2f3a;
  --kou-accent-strong: #6f252d;
  --on-kou-accent: #ffffff;
  --kou-sub: #1d4f4a;
  --usubeni-tint: #f6f1f3;
  --usubeni-soft: #d7c1c6;
  --usubeni-deep: #86394d;
  --on-usubeni-deep: #ffffff;
  --usubeni-accent: #3d6b4a;
  --usubeni-accent-strong: #2e5138;
  --on-usubeni-accent: #ffffff;
  --usubeni-sub: #4b4b46;
  --fuji-tint: #f3f2f5;
  --fuji-soft: #c7c3d5;
  --fuji-deep: #4a3f78;
  --on-fuji-deep: #ffffff;
  --fuji-accent: #8a6413;
  --fuji-accent-strong: #664a0e;
  --on-fuji-accent: #ffffff;
  --fuji-sub: #2d6b5f;
  --base-tint: var(--ai-tint);
  --base-soft: var(--ai-soft);
  --base-deep: var(--ai-deep);
  --on-base-deep: var(--on-ai-deep);
  --accent: var(--ai-accent);
  --accent-strong: var(--ai-accent-strong);
  --on-accent: var(--on-ai-accent);
  --sub: var(--ai-sub);
  --ok: #2f5d3f;
  --care: #8a5419;
  --danger: #a0392c;
  --focus: #1b3a5c;
}
[data-theme="yoru"] {
  --paper: #15181c;
  --sheet: #1e2227;
  --wash: #23272c;
  --ink: #ece9e2;
  --ink-2: #b9b6ae;
  --ink-3: #9a978f;
  --rule: #33373d;
  --rule-soft: #2a2e33;
  --rule-strong: #ece9e2;
  --field-line: #6c6a65;
  --ai-tint: #1c2631;
  --ai-soft: #30475f;
  --ai-deep: #b2c5dc;
  --on-ai-deep: #15181c;
  --ai-accent: #e39b8c;
  --ai-accent-strong: #ebb8ad;
  --on-ai-accent: #15181c;
  --ai-sub: #ecce83;
  --konjo-tint: #1c2130;
  --konjo-soft: #323c5d;
  --konjo-deep: #b3bcdb;
  --on-konjo-deep: #15181c;
  --konjo-accent: #eecb81;
  --konjo-accent-strong: #f3daa5;
  --on-konjo-accent: #15181c;
  --konjo-sub: #9ad5c9;
  --tetsu-tint: #1e2f2d;
  --tetsu-soft: #345b57;
  --tetsu-deep: #b5d9d5;
  --on-tetsu-deep: #15181c;
  --tetsu-accent: #e2a88d;
  --tetsu-accent-strong: #eac1ae;
  --on-tetsu-accent: #15181c;
  --tetsu-sub: #e5cb8a;
  --tokiwa-tint: #212b22;
  --tokiwa-soft: #3c533e;
  --tokiwa-deep: #bcd2bf;
  --on-tokiwa-deep: #15181c;
  --tokiwa-accent: #db949c;
  --tokiwa-accent-strong: #e5b3b8;
  --on-tokiwa-accent: #15181c;
  --tokiwa-sub: #eecb81;
  --seiji-tint: #1e2e2b;
  --seiji-soft: #365952;
  --seiji-deep: #b6d7d1;
  --on-seiji-deep: #15181c;
  --seiji-accent: #dca194;
  --seiji-accent-strong: #e6bcb3;
  --on-seiji-accent: #15181c;
  --seiji-sub: #91b6df;
  --sumi-tint: #272726;
  --sumi-soft: #494946;
  --sumi-deep: #c8c8c6;
  --on-sumi-deep: #15181c;
  --sumi-accent: #8ca5e3;
  --sumi-accent-strong: #adbfeb;
  --on-sumi-accent: #15181c;
  --sumi-sub: #e39b8c;
  --shu-tint: #321e1a;
  --shu-soft: #62352d;
  --shu-deep: #e0b7ae;
  --on-shu-deep: #15181c;
  --shu-accent: #91b6df;
  --shu-accent-strong: #b1cbe8;
  --on-shu-accent: #15181c;
  --shu-sub: #ecce83;
  --kou-tint: #2f281e;
  --kou-soft: #5a4a35;
  --kou-deep: #d8cab6;
  --on-kou-deep: #15181c;
  --kou-accent: #db949c;
  --kou-accent-strong: #e5b3b8;
  --on-kou-accent: #15181c;
  --kou-sub: #97d9d2;
  --usubeni-tint: #2e1e22;
  --usubeni-soft: #59363f;
  --usubeni-deep: #d6b7c0;
  --on-usubeni-deep: #15181c;
  --usubeni-accent: #a4cbaf;
  --usubeni-accent-strong: #bedac6;
  --on-usubeni-accent: #15181c;
  --usubeni-sub: #babab5;
  --fuji-tint: #23202c;
  --fuji-soft: #3f3a55;
  --fuji-deep: #bfbbd3;
  --on-fuji-deep: #15181c;
  --fuji-accent: #eecb81;
  --fuji-accent-strong: #f3daa5;
  --on-fuji-accent: #15181c;
  --fuji-sub: #9ad5c9;
  --base-tint: var(--ai-tint);
  --base-soft: var(--ai-soft);
  --base-deep: var(--ai-deep);
  --on-base-deep: var(--on-ai-deep);
  --accent: var(--ai-accent);
  --accent-strong: var(--ai-accent-strong);
  --on-accent: var(--on-ai-accent);
  --sub: var(--ai-sub);
  --ok: #9cc9a8;
  --care: #e3b47a;
  --danger: #ef9a8b;
  --focus: #b2c5dc;
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;
  --radius-0: 0px;
  --radius-hair: 2px;
  --radius-soft: 4px;
  --container: 1120px;
  --container-narrow: 760px;
  --container-mid: 860px;
  --container-wide: 1320px;
  --header-height: 68px;
  --rule-width: 1px;
  --rule-strong-width: 2px;
  --font-sans: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  --font-ud: "BIZ UDPGothic", "Noto Sans JP", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
  --font-serif: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --font-num: "Helvetica Neue", Helvetica, Arial, "Noto Sans JP", sans-serif;
}

/* ==========================================================================
   三井田ブランドブック — 部品の型（bundle.css）
   tokens.css の後に読み込む。接頭辞は tm-。
   考え方：書物のような、静謐な知性。角を立て、影・グラデーション・丸いボタン・丸いタグを使わない。
   区切りは罫と余白。階層はサイズ差と字間と差し色で付け、太字を乱発しない。
   色パターンの切替：<html class="c-shu"> のように .c-<色名> を付けるだけ。
   調子の切替：.tone-nyuwa（柔和）/ .tone-yuken（雄健）。無指定は端正。
   ========================================================================== */

/* ---------- 色パターン（地＝同系3段＋メイン差し色＋サブ差し色） ---------- */
.c-ai { --base-tint: var(--ai-tint); --base-soft: var(--ai-soft); --base-deep: var(--ai-deep); --on-base-deep: var(--on-ai-deep); --accent: var(--ai-accent); --accent-strong: var(--ai-accent-strong); --on-accent: var(--on-ai-accent); --sub: var(--ai-sub); }
.c-konjo { --base-tint: var(--konjo-tint); --base-soft: var(--konjo-soft); --base-deep: var(--konjo-deep); --on-base-deep: var(--on-konjo-deep); --accent: var(--konjo-accent); --accent-strong: var(--konjo-accent-strong); --on-accent: var(--on-konjo-accent); --sub: var(--konjo-sub); }
.c-tetsu { --base-tint: var(--tetsu-tint); --base-soft: var(--tetsu-soft); --base-deep: var(--tetsu-deep); --on-base-deep: var(--on-tetsu-deep); --accent: var(--tetsu-accent); --accent-strong: var(--tetsu-accent-strong); --on-accent: var(--on-tetsu-accent); --sub: var(--tetsu-sub); }
.c-tokiwa { --base-tint: var(--tokiwa-tint); --base-soft: var(--tokiwa-soft); --base-deep: var(--tokiwa-deep); --on-base-deep: var(--on-tokiwa-deep); --accent: var(--tokiwa-accent); --accent-strong: var(--tokiwa-accent-strong); --on-accent: var(--on-tokiwa-accent); --sub: var(--tokiwa-sub); }
.c-seiji { --base-tint: var(--seiji-tint); --base-soft: var(--seiji-soft); --base-deep: var(--seiji-deep); --on-base-deep: var(--on-seiji-deep); --accent: var(--seiji-accent); --accent-strong: var(--seiji-accent-strong); --on-accent: var(--on-seiji-accent); --sub: var(--seiji-sub); }
.c-sumi { --base-tint: var(--sumi-tint); --base-soft: var(--sumi-soft); --base-deep: var(--sumi-deep); --on-base-deep: var(--on-sumi-deep); --accent: var(--sumi-accent); --accent-strong: var(--sumi-accent-strong); --on-accent: var(--on-sumi-accent); --sub: var(--sumi-sub); }
.c-shu { --base-tint: var(--shu-tint); --base-soft: var(--shu-soft); --base-deep: var(--shu-deep); --on-base-deep: var(--on-shu-deep); --accent: var(--shu-accent); --accent-strong: var(--shu-accent-strong); --on-accent: var(--on-shu-accent); --sub: var(--shu-sub); }
.c-kou { --base-tint: var(--kou-tint); --base-soft: var(--kou-soft); --base-deep: var(--kou-deep); --on-base-deep: var(--on-kou-deep); --accent: var(--kou-accent); --accent-strong: var(--kou-accent-strong); --on-accent: var(--on-kou-accent); --sub: var(--kou-sub); }
.c-usubeni { --base-tint: var(--usubeni-tint); --base-soft: var(--usubeni-soft); --base-deep: var(--usubeni-deep); --on-base-deep: var(--on-usubeni-deep); --accent: var(--usubeni-accent); --accent-strong: var(--usubeni-accent-strong); --on-accent: var(--on-usubeni-accent); --sub: var(--usubeni-sub); }
.c-fuji { --base-tint: var(--fuji-tint); --base-soft: var(--fuji-soft); --base-deep: var(--fuji-deep); --on-base-deep: var(--on-fuji-deep); --accent: var(--fuji-accent); --accent-strong: var(--fuji-accent-strong); --on-accent: var(--on-fuji-accent); --sub: var(--fuji-sub); }

/* ---------- 基礎 ---------- */
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-sans); font-size: 16px; line-height: 1.9; letter-spacing: .02em; font-feature-settings: "palt" 0; }
.tm, .tm * { box-sizing: border-box; }
.tm a { color: var(--base-deep); text-decoration: underline; text-underline-offset: .22em; text-decoration-thickness: 1px; }
.tm a:hover { color: var(--accent); }
.tm :focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
/* 初期化は詳細度0（:where）にして、各部品のクラスで決めた余白が必ず効くようにする */
:where(.tm) :where(h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote) { margin: 0; }
:where(.tm) :where(ul, ol) { padding: 0; list-style: none; }
.tm-wrap { max-width: var(--container); margin: 0 auto; padding: 0 var(--space-5); }
.tm-narrow { max-width: var(--container-narrow); margin: 0 auto; padding: 0 var(--space-5); }
.tm-num { font-family: var(--font-num); font-variant-numeric: tabular-nums; letter-spacing: .01em; }
.tm-label { font-size: 12px; letter-spacing: .16em; color: var(--ink-3); font-weight: 500; line-height: 1.6; }
.tm-lead { color: var(--ink-2); }
.tm-muted { color: var(--ink-3); font-size: 12.5px; letter-spacing: .04em; }
.tm-h1 { font-size: 30px; font-weight: 500; letter-spacing: .06em; line-height: 1.5; }
.tm-h2 { font-size: 23px; font-weight: 500; letter-spacing: .05em; line-height: 1.6; }
.tm-h3 { font-size: 18px; font-weight: 600; letter-spacing: .04em; line-height: 1.7; }
.tm-display { font-size: 40px; font-weight: 500; letter-spacing: .06em; line-height: 1.45; }

/* 調子 */
.tone-nyuwa { font-family: var(--font-ud); font-size: 17px; line-height: 2; letter-spacing: .03em; }
.tone-nyuwa .tm-display { font-size: 36px; font-weight: 700; letter-spacing: .04em; line-height: 1.5; }
.tone-nyuwa .tm-h1 { font-size: 28px; font-weight: 700; letter-spacing: .04em; }
.tone-nyuwa .tm-h2 { font-size: 22px; font-weight: 700; }
.tone-nyuwa .tm-h3 { font-size: 19px; font-weight: 700; }
.tone-nyuwa .tm-muted { font-size: 14px; }
.tone-nyuwa .tm-label { font-size: 13px; }
.tone-nyuwa .tm-btn { border-radius: var(--radius-soft); padding: 14px 32px; font-size: 16px; }
.tone-nyuwa .tm-field input, .tone-nyuwa .tm-field select, .tone-nyuwa .tm-field textarea { border-radius: var(--radius-soft); font-size: 17px; }
.tone-yuken .tm-display { font-size: 56px; font-weight: 900; letter-spacing: .02em; line-height: 1.25; }
.tone-yuken .tm-h1 { font-size: 36px; font-weight: 700; letter-spacing: .03em; line-height: 1.35; }
.tone-yuken .tm-h2 { font-size: 24px; font-weight: 700; }
.tone-yuken .tm-h3 { font-weight: 700; }
.tone-yuken .tm-btn--primary { padding: 16px 40px; font-size: 16px; }

/* 節と見出しの余白（ゆったり取る）
   節と節の間：PC space-10（128px）／スマホ space-9（96px）
   見出しの上：前の本文から space-8（64px）以上、見出しと本文の間：space-5〜6（24〜32px） */
.tm-sec { padding-block: var(--space-10); }
.tm-sec + .tm-sec { padding-top: 0; }
.tm-prose h2 { font-size: 23px; font-weight: 500; letter-spacing: .05em; line-height: 1.6; margin: var(--space-9) 0 var(--space-6); padding-top: var(--space-5); border-top: 2px solid var(--rule-strong); }
.tm-prose h3 { font-size: 18px; font-weight: 600; letter-spacing: .04em; line-height: 1.7; margin: var(--space-8) 0 var(--space-4); }
.tm-prose h2:first-child, .tm-prose h3:first-child { margin-top: 0; }
.tm-prose p + p { margin-top: var(--space-5); }
.tm-prose ul, .tm-prose ol { margin: var(--space-5) 0; padding-left: 1.4em; list-style: disc; }
.tm-prose li + li { margin-top: var(--space-2); }

/* 写真の仮置き（実写真に差し替える） */
.tm-ph { display: flex; align-items: center; justify-content: center; background: var(--rule-soft); color: var(--ink-3); font-size: 12px; letter-spacing: .16em; min-height: 120px; }
.tm-ph--dark { background: #34342f; color: #c9c7c0; }
.tm-ph--accent { background: var(--base-soft); color: var(--ink); }

/* ---------- ボタン・導線 ---------- */
.tm-btn { display: inline-flex; align-items: center; justify-content: center; gap: .6em; padding: 12px 30px; font: inherit; font-size: 15px; font-weight: 600; letter-spacing: .08em; line-height: 1.6; border: 1px solid transparent; border-radius: var(--radius-hair); cursor: pointer; text-decoration: none !important; transition: background .15s, color .15s, border-color .15s; }
.tm-btn--primary { background: var(--accent); border-color: var(--accent); color: var(--on-accent) !important; }
.tm-btn--primary:hover { background: var(--accent-strong); border-color: var(--accent-strong); }
.tm-btn--secondary { background: transparent; border-color: var(--rule-strong); color: var(--ink) !important; }
.tm-btn--secondary:hover { background: var(--ink); color: var(--paper) !important; }
.tm-btn--quiet { background: transparent; border-color: transparent; color: var(--ink-2) !important; padding-left: 0; padding-right: 0; font-weight: 400; }
.tm-btn--quiet:hover { color: var(--ink) !important; text-decoration: underline !important; }
.tm-btn--sm { padding: 7px 18px; font-size: 13.5px; }
.tm-btn--lg { padding: 16px 40px; font-size: 16px; }
.tm-btn[disabled], .tm-btn.is-disabled { opacity: .4; cursor: not-allowed; }
.tm-btn--onfill { background: var(--accent); color: var(--on-accent) !important; border-color: var(--accent); }
.tm-btn--onfill:hover { background: var(--accent-strong); border-color: var(--accent-strong); }
.tm-tx { color: var(--ink) !important; text-decoration: none !important; font-size: 14.5px; letter-spacing: .06em; border-bottom: 1px solid var(--ink); padding-bottom: 2px; }
.tm-tx::after { content: "\2192"; margin-left: .5em; }
.tm-tx:hover { color: var(--accent) !important; border-color: var(--accent); }

/* ---------- 節の頭 ---------- */
.tm-sh { border-top: 2px solid var(--rule-strong); padding-top: var(--space-5); margin-bottom: var(--space-7); display: grid; grid-template-columns: auto 1fr auto; column-gap: var(--space-5); align-items: baseline; }
.tm-sh__no { font-family: var(--font-num); font-size: 13px; letter-spacing: .1em; color: var(--base-deep); }
.tm-sh__title { font-size: 23px; font-weight: 500; letter-spacing: .05em; line-height: 1.5; }
.tm-sh__en { font-size: 12px; letter-spacing: .16em; color: var(--ink-3); }
.tm-sh--thin { border-top: 1px solid var(--rule); }

/* ---------- ヘッダー ---------- */
.tm-hd { background: var(--paper); border-bottom: 1px solid var(--rule); position: sticky; top: 0; z-index: 40; }
.tm-sp-only { display: none !important; }
.tm-hd--overlay .tm-menubtn { color: #fff; }
.tm-hd__in { max-width: var(--container); margin: 0 auto; padding: 0 var(--space-5); height: var(--header-height); display: flex; align-items: stretch; gap: var(--space-6); }
.tm-brand { display: inline-flex; align-items: center; gap: 12px; color: var(--ink) !important; text-decoration: none !important; white-space: nowrap; }
.tm-logo { width: 38px; height: 38px; display: block; flex: none; }
.tm-logo--w { display: none; }
[data-theme="yoru"] .tm-logo--k, .tm-hd--overlay .tm-logo--k { display: none; }
[data-theme="yoru"] .tm-logo--w, .tm-hd--overlay .tm-logo--w { display: block; }
.tm-hd--center .tm-logo { width: 56px; height: 56px; }
.tm-ft--formal .tm-logo { width: 56px; height: 56px; }
.tm-brand__mark { width: 30px; height: 30px; border: 1.5px solid var(--ink); display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; letter-spacing: 0; }
.tm-brand__name { display: flex; flex-direction: column; line-height: 1.3; font-weight: 600; letter-spacing: .06em; font-size: 15.5px; }
.tm-brand__name small { font-size: 10.5px; font-weight: 400; color: var(--ink-3); letter-spacing: .12em; margin-top: 2px; }
.tm-nav { display: flex; align-items: stretch; gap: var(--space-5); margin-left: auto; }
.tm-nav a { display: flex; align-items: center; color: var(--ink-2) !important; text-decoration: none !important; font-size: 14px; letter-spacing: .08em; border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.tm-nav a:hover { color: var(--ink) !important; }
.tm-nav a[aria-current="page"] { color: var(--ink) !important; border-bottom-color: var(--accent); }
.tm-hd__act { display: flex; align-items: center; gap: var(--space-4); flex: none; }
.tm-hd__act .tm-btn { white-space: nowrap; }
/* 主メニューの項目が長い時も、ヘッダーの幅に収める（右端に導線がある時は間隔を少し詰める） */
.tm-hd__in:has(> .tm-hd__act) { gap: var(--space-5); }
/* E（MENU で全画面）でナビを畳んだヘッダーは、導線と MENU を右端へ寄せる */
.tm-hd__in > .tm-brand + .tm-hd__act { margin-left: auto; }
/* 中央ロゴ型 */
.tm-hd--center .tm-hd__in { flex-direction: column; height: auto; align-items: center; gap: 0; padding-top: var(--space-5); }
.tm-hd--center .tm-brand { flex-direction: column; gap: 8px; text-align: center; }
.tm-hd--center .tm-brand__name { align-items: center; font-size: 19px; letter-spacing: .14em; }
.tm-hd--center .tm-nav { margin: var(--space-4) 0 0; height: 52px; justify-content: center; gap: var(--space-7); border-top: 1px solid var(--rule-soft); width: 100%; }
/* 二段型 */
.tm-util { background: var(--wash); border-bottom: 1px solid var(--rule-soft); font-size: 12.5px; }
.tm-util__in { max-width: var(--container); margin: 0 auto; padding: 10px var(--space-5); min-height: 44px; box-sizing: border-box; display: flex; align-items: center; justify-content: flex-end; gap: var(--space-5); color: var(--ink-2); }
.tm-util a { color: var(--ink-2) !important; text-decoration: none !important; letter-spacing: .06em; }
.tm-util a:hover { color: var(--ink) !important; text-decoration: underline !important; }
.tm-fs { display: inline-flex; align-items: center; gap: 6px; }
.tm-fs button { font: inherit; font-size: 12px; background: var(--sheet); color: var(--ink); border: 1px solid var(--field-line); border-radius: var(--radius-hair); padding: 1px 9px; cursor: pointer; }
.tm-fs button[aria-pressed="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
/* 大型メニュー */
.tm-mega { border-bottom: 1px solid var(--rule); background: var(--paper); }
.tm-mega__in { max-width: var(--container); margin: 0 auto; padding: var(--space-6) var(--space-5) var(--space-7); display: grid; grid-template-columns: 1.1fr 1fr 1fr 1fr; gap: var(--space-6); }
.tm-mega__lead .tm-h2 { margin-bottom: var(--space-2); }
.tm-mega__col h4 { font-size: 12px; letter-spacing: .16em; color: var(--ink-3); font-weight: 500; padding-bottom: var(--space-2); border-bottom: 1px solid var(--rule); margin-bottom: var(--space-2); }
.tm-mega__col a { display: block; color: var(--ink) !important; text-decoration: none !important; font-size: 14.5px; padding: 6px 0; }
.tm-mega__col a:hover { color: var(--accent) !important; text-decoration: underline !important; }
/* 透過型 */
.tm-overlay { position: relative; min-height: 420px; color: #fff; }
.tm-overlay > .tm-ph { position: absolute; inset: 0; }
.tm-hd--overlay { position: relative; z-index: 2; background: transparent; border-bottom: 1px solid rgba(255,255,255,.28); }
.tm-hd--overlay .tm-brand, .tm-hd--overlay .tm-nav a { color: #fff !important; }
.tm-hd--overlay .tm-brand__mark { border-color: #fff; }
.tm-hd--overlay .tm-brand__name small { color: rgba(255,255,255,.78); }
.tm-hd--overlay .tm-nav a[aria-current="page"] { border-bottom-color: #fff; }
/* 縦型サイド */
.tm-app { display: grid; grid-template-columns: 248px 1fr; min-height: 420px; }
.tm-side { background: var(--paper); border-right: 1px solid var(--rule); padding: var(--space-5) 0; display: flex; flex-direction: column; position: sticky; top: 0; align-self: start; min-height: 100%; max-height: 100vh; overflow: auto; }
.tm-side .tm-brand { padding: 0 var(--space-5) var(--space-5); border-bottom: 1px solid var(--rule); margin-bottom: var(--space-3); }
.tm-side__h { font-size: 11.5px; letter-spacing: .16em; color: var(--ink-3); padding: var(--space-5) var(--space-5) var(--space-2); }
.tm-side a.tm-side__a { display: flex; justify-content: space-between; padding: 8px var(--space-5); color: var(--ink-2) !important; text-decoration: none !important; font-size: 14px; letter-spacing: .04em; }
.tm-side a.tm-side__a:hover { background: var(--wash); color: var(--ink) !important; }
.tm-side a.tm-side__a[aria-current="page"] { background: var(--base-tint); color: var(--base-deep) !important; font-weight: 600; }
.tm-side__foot { margin-top: auto; padding: var(--space-4) var(--space-5) 0; border-top: 1px solid var(--rule); font-size: 13px; color: var(--ink-2); }
.tm-app__main { padding: var(--space-6) var(--space-7); background: var(--paper); }
.tm-app__bar { display: none; }
/* 最小型 */
.tm-menubtn { display: inline-flex; align-items: center; gap: 12px; background: none; border: 0; font: inherit; font-size: 12.5px; letter-spacing: .16em; color: var(--ink); cursor: pointer; padding: 8px 0; }
.tm-menubtn__bars { width: 22px; height: 12px; position: relative; border-top: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; }
.tm-menubtn__bars::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 1.5px solid currentColor; transform: translateY(-50%); }
/* 告知帯 */
.tm-notice-bar { background: var(--base-deep); color: var(--on-base-deep); font-size: 13.5px; }
.tm-notice-bar__in { max-width: var(--container); margin: 0 auto; padding: 8px var(--space-5); display: flex; gap: var(--space-4); align-items: center; }
.tm-notice-bar b { font-weight: 600; letter-spacing: .14em; font-size: 12px; border: 1px solid currentColor; padding: 0 8px; }
.tm-notice-bar a { color: var(--on-base-deep) !important; margin-left: auto; text-decoration: none !important; letter-spacing: .06em; }
.tm-notice-bar a::after { content: "\2192"; margin-left: .5em; }
/* スマホ用 */
.tm-phone { width: 375px; height: 640px; border: 1px solid var(--rule-strong); background: var(--paper); position: relative; overflow: hidden; }
.tm-phone__bar { height: 56px; display: flex; align-items: center; justify-content: space-between; padding: 0 var(--space-4); border-bottom: 1px solid var(--rule); }
.tm-phone__bar .tm-brand__name { font-size: 14px; }
.tm-sheet-full { position: absolute; inset: 0; background: var(--paper); padding: 0 var(--space-4); display: flex; flex-direction: column; }
.tm-sheet-full ol { counter-reset: n; margin-top: var(--space-4); }
.tm-sheet-full li { border-bottom: 1px solid var(--rule); }
.tm-sheet-full li a { display: grid; grid-template-columns: 36px 1fr auto; align-items: baseline; padding: 15px 0; color: var(--ink) !important; text-decoration: none !important; font-size: 18px; letter-spacing: .06em; }
.tm-sheet-full li a::before { counter-increment: n; content: counter(n, decimal-leading-zero); font-family: var(--font-num); font-size: 12px; color: var(--base-deep); letter-spacing: .08em; }
.tm-sheet-full li a::after { content: "\2192"; color: var(--ink-3); font-size: 14px; }
.tm-sheet-full__util { margin-top: auto; padding: var(--space-5) 0; display: grid; gap: var(--space-3); }
.tm-close { background: none; border: 0; font: inherit; font-size: 12.5px; letter-spacing: .16em; color: var(--ink); cursor: pointer; display: inline-flex; align-items: center; gap: 10px; }
.tm-close i { width: 18px; height: 18px; position: relative; display: inline-block; }
.tm-close i::before, .tm-close i::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 1.5px solid currentColor; transform: rotate(45deg); }
.tm-close i::after { transform: rotate(-45deg); }
.tm-scrim { position: absolute; inset: 56px 0 0 0; background: rgba(20,20,18,.45); }
.tm-drawer { position: absolute; top: 0; right: 0; bottom: 0; width: 300px; background: var(--paper); border-left: 1px solid var(--rule-strong); padding: 0 var(--space-5); }
.tm-drawer__top { height: 56px; display: flex; align-items: center; justify-content: flex-end; border-bottom: 1px solid var(--rule); margin: 0 calc(-1 * var(--space-5)) var(--space-3); padding: 0 var(--space-5); }
.tm-drawer a.tm-drawer__a { display: block; padding: 11px 0; border-bottom: 1px solid var(--rule-soft); color: var(--ink) !important; text-decoration: none !important; font-size: 15.5px; letter-spacing: .05em; }
.tm-drawer a.tm-drawer__a[aria-current="page"] { color: var(--base-deep) !important; font-weight: 600; }
.tm-drawer__sub { padding-left: var(--space-4); }
.tm-drawer__sub a.tm-drawer__a { font-size: 14px; color: var(--ink-2) !important; }
/* 単独型ヘッダー */
.tm-hd--special .tm-hd__in { max-width: var(--container-wide); height: 60px; gap: var(--space-5); }
.tm-sp-org { display: flex; flex-direction: column; justify-content: center; gap: 3px; line-height: 1.35; padding-right: var(--space-5); border-right: 1px solid var(--rule); }
.tm-sp-org small { font-size: 10.5px; letter-spacing: .14em; color: var(--ink-3); }
.tm-sp-org span { font-size: 14.5px; font-weight: 600; letter-spacing: .06em; }
.tm-sp-toc { display: flex; align-items: center; gap: var(--space-5); font-size: 13.5px; counter-reset: s; }
.tm-sp-toc a { color: var(--ink-2) !important; text-decoration: none !important; letter-spacing: .06em; }
.tm-sp-toc a::before { counter-increment: s; content: counter(s, decimal-leading-zero) " "; font-family: var(--font-num); font-size: 11px; color: var(--base-deep); }
.tm-sp-toc a:hover { color: var(--ink) !important; }
.tm-sp-back { margin-left: auto; display: flex; align-items: center; gap: var(--space-4); }

/* ---------- フッター ---------- */
.tm-ft { background: var(--paper); border-top: 2px solid var(--rule-strong); color: var(--ink-2); font-size: 13.5px; }
.tm-ft__in { max-width: var(--container); margin: 0 auto; padding: var(--space-8) var(--space-5) var(--space-7); }
.tm-ft a { color: var(--ink) !important; text-decoration: none !important; }
.tm-ft a:hover { color: var(--accent) !important; text-decoration: underline !important; }
.tm-ft__copy { font-size: 11.5px; letter-spacing: .08em; color: var(--ink-3); }
.tm-ft__legal { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); align-items: center; border-top: 1px solid var(--rule); margin-top: var(--space-6); padding-top: var(--space-4); }
.tm-ft__legal a { color: var(--ink-3) !important; font-size: 12px; }
.tm-ft__legal .tm-ft__copy { margin-left: auto; }
.tm-ft--simple { border-top-width: 1px; border-top-color: var(--rule); }
.tm-ft--simple .tm-ft__in { padding: var(--space-6) var(--space-5); display: flex; flex-wrap: wrap; gap: var(--space-5); align-items: center; }
.tm-ft--simple .tm-ft__copy { margin-left: auto; }
.tm-ft__grid { display: grid; grid-template-columns: 1.5fr repeat(4, 1fr); gap: var(--space-6); }
.tm-ft__col h4 { font-size: 11.5px; letter-spacing: .16em; color: var(--ink-3); font-weight: 500; margin-bottom: var(--space-3); }
.tm-ft__col a { display: block; padding: 3px 0; font-size: 13.5px; }
.tm-ft__brand p { margin-top: var(--space-3); font-size: 12.5px; color: var(--ink-3); line-height: 1.9; }
.tm-ft__org { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: var(--space-7); }
.tm-dl { display: grid; grid-template-columns: 5.5em 1fr; gap: 6px var(--space-4); font-size: 13.5px; }
.tm-dl dt { color: var(--ink-3); letter-spacing: .08em; }
.tm-dl dd { color: var(--ink); }
.tm-ft-cta { background: var(--base-deep); color: var(--on-base-deep); }
.tm-ft-cta__in { max-width: var(--container); margin: 0 auto; padding: var(--space-8) var(--space-5); display: grid; grid-template-columns: 1fr auto; gap: var(--space-6); align-items: end; }
.tm-ft-cta .tm-label { color: var(--on-base-deep); opacity: .85; }
.tm-ft-cta .tm-h1 { margin-top: var(--space-2); }
.tm-ft-cta p { margin-top: var(--space-3); opacity: .9; max-width: 36em; }
.tm-ft--formal { text-align: center; border-top-width: 1px; border-top-color: var(--rule); }
.tm-ft--formal .tm-ft__in { padding: var(--space-8) var(--space-5) var(--space-6); }
.tm-ft--formal .tm-brand { flex-direction: column; }
.tm-ft--formal .tm-brand__name { align-items: center; font-size: 18px; letter-spacing: .16em; }
.tm-ft--formal .tm-ft__addr { margin-top: var(--space-4); line-height: 2; }
.tm-ft--formal .tm-ft__nav { display: flex; justify-content: center; flex-wrap: wrap; gap: var(--space-2) var(--space-6); margin-top: var(--space-6); padding-top: var(--space-5); border-top: 1px solid var(--rule-soft); font-size: 13px; letter-spacing: .1em; }
.tm-ft--formal .tm-ft__copy { margin-top: var(--space-5); }
.tm-ft--formal .tm-ft__legal { justify-content: center; }
.tm-ft-links { border-top: 1px solid var(--rule); background: var(--wash); }
.tm-ft-links__in { max-width: var(--container); margin: 0 auto; padding: var(--space-6) var(--space-5); }
.tm-ft-links__row { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-4); margin-top: var(--space-3); }
.tm-bnr { display: flex; align-items: center; justify-content: center; height: 64px; border: 1px solid var(--rule); background: var(--sheet); color: var(--ink-2) !important; font-size: 13px; letter-spacing: .06em; text-decoration: none !important; }
.tm-bnr:hover { border-color: var(--rule-strong); color: var(--ink) !important; }
.tm-bnr { border: 0; background: var(--wash); }
.tm-bnr:hover { color: var(--accent) !important; text-decoration: underline !important; text-underline-offset: 4px; }
.tm-sns { display: flex; gap: var(--space-5); font-size: 13px; letter-spacing: .08em; }
.tm-ft--special .tm-dl { grid-template-columns: 7em 1fr; }
.tm-ft--special .tm-ft__in { max-width: var(--container-wide); display: grid; grid-template-columns: 1fr 1fr auto; gap: var(--space-7); align-items: start; }

/* ---------- メインビジュアル ---------- */
.tm-hero { background: var(--paper); }
.tm-hero__in { max-width: var(--container); margin: 0 auto; padding: var(--space-10) var(--space-5); }
.tm-hero--editorial .tm-hero__in { display: grid; grid-template-columns: 1.35fr 1fr; gap: var(--space-8); align-items: end; }
.tm-hero--editorial .tm-display { margin-top: var(--space-5); }
.tm-hero--editorial .tm-lead { margin-top: var(--space-6); max-width: 30em; }
.tm-spec { border-top: 2px solid var(--rule-strong); }
.tm-spec div { display: grid; grid-template-columns: 6em 1fr; gap: var(--space-4); padding: 12px 0; border-bottom: 1px solid var(--rule); font-size: 14.5px; }
.tm-spec dt { color: var(--ink-3); letter-spacing: .1em; font-size: 13px; padding-top: 1px; }
.tm-hero--photo { position: relative; }
.tm-hero--photo .tm-ph { height: 520px; }
.tm-hero__plate { position: absolute; left: 0; bottom: 0; background: var(--paper); padding: var(--space-7) var(--space-8) var(--space-6) var(--space-7); max-width: 640px; }
.tm-hero__plate .tm-display { margin: var(--space-3) 0 var(--space-4); }
.tm-hero--split .tm-hero__in { max-width: none; padding: 0; display: grid; grid-template-columns: 1fr 1fr; min-height: 480px; }
/* 左の文は、ヘッダーのロゴと同じ縦の線（本文の幅 1120px の左端）にそろえる */
.tm-hero--split .tm-hero__text { padding: var(--space-9) var(--space-7) var(--space-9) max(var(--space-5), calc(100% - var(--container) / 2 + var(--space-5))); display: flex; flex-direction: column; justify-content: center; }
.tm-hero--split .tm-display { margin: var(--space-4) 0; }
.tm-hero--split .tm-lead { text-wrap: pretty; }
.tm-hero--split .tm-ph { min-height: 480px; }
.tm-hero__acts { display: flex; gap: var(--space-5); align-items: center; margin-top: var(--space-7); flex-wrap: wrap; }
.tm-hero--event .tm-hero__in { display: grid; grid-template-columns: auto 1fr; gap: var(--space-8); align-items: start; border-bottom: 1px solid var(--rule); }
.tm-date { font-family: var(--font-num); color: var(--accent); line-height: 1; border-right: 1px solid var(--rule); padding-right: var(--space-8); }
.tm-date__y { font-size: 15px; letter-spacing: .14em; display: block; margin-bottom: var(--space-3); color: var(--ink-2); }
.tm-date__md { font-size: 88px; font-weight: 300; letter-spacing: -.01em; display: block; }
.tm-date__w { font-size: 14px; letter-spacing: .1em; display: block; margin-top: var(--space-3); color: var(--ink-2); font-family: var(--font-sans); }
.tm-hero--portal .tm-hero__in { display: grid; grid-template-columns: 1fr 1.25fr; gap: var(--space-8); padding-top: var(--space-8); padding-bottom: var(--space-8); }
.tm-entry { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--rule); margin-top: var(--space-6); }
.tm-entry a { padding: var(--space-4) var(--space-4) var(--space-4) 0; border-bottom: 1px solid var(--rule); color: var(--ink) !important; text-decoration: none !important; display: flex; flex-direction: column; gap: 2px; }
.tm-entry a + a { padding-left: var(--space-4); border-left: 1px solid var(--rule); }
.tm-entry a span { font-size: 11.5px; letter-spacing: .14em; color: var(--ink-3); }
.tm-entry a strong { font-weight: 500; font-size: 16px; letter-spacing: .05em; }
.tm-entry a:hover strong { color: var(--accent); }
.tm-hero--minimal .tm-hero__in { padding: var(--space-10) var(--space-5); }
.tm-hero--minimal .tm-display { max-width: 18em; margin: var(--space-4) 0 var(--space-6); }
.tm-hero--special { background: var(--base-tint); }
.tm-hero--special .tm-hero__in { max-width: var(--container-wide); display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--space-8); align-items: end; padding-top: var(--space-9); padding-bottom: var(--space-8); }
.tm-hero--special .tm-period { font-family: var(--font-num); font-size: 15px; letter-spacing: .14em; color: var(--accent); }
.tm-hero--special .tm-display { margin: var(--space-4) 0 var(--space-5); }
.tm-hero--special .tm-ph { min-height: 300px; }

/* ---------- 下層の見出し帯 ---------- */
.tm-pt { background: var(--paper); }
.tm-pt__in { max-width: var(--container); margin: 0 auto; padding: var(--space-8) var(--space-5) var(--space-7); }
.tm-pt .tm-crumb { margin-bottom: var(--space-6); }
.tm-pt--rule .tm-pt__in { border-bottom: 1px solid var(--rule); }
.tm-pt--en .tm-label { display: block; margin-bottom: var(--space-3); }
.tm-pt--photo { position: relative; }
.tm-pt--photo .tm-ph { height: 220px; }
.tm-pt--photo .tm-pt__in { position: relative; margin-top: -72px; background: var(--paper); max-width: calc(var(--container) - 2 * var(--space-5)); padding: var(--space-6) var(--space-6) var(--space-5); }
.tm-pt--tint { background: var(--base-tint); }
.tm-pt--tint .tm-h1 { color: var(--base-deep); }
.tm-pt--meta .tm-pt__in { display: grid; grid-template-columns: 1fr 300px; gap: var(--space-8); align-items: end; border-bottom: 2px solid var(--rule-strong); }
.tm-pt--meta .tm-lead { margin-top: var(--space-4); }

/* ---------- パンくず・ページ送り・上へ ---------- */
.tm-crumb { display: flex; flex-wrap: wrap; gap: 0; font-size: 12.5px; color: var(--ink-3); letter-spacing: .04em; }
.tm-crumb li + li::before { content: "/"; margin: 0 .8em; color: var(--rule); }
.tm-crumb a { color: var(--ink-2) !important; text-decoration: none !important; }
.tm-crumb a:hover { text-decoration: underline !important; }
.tm-pager { display: flex; align-items: center; gap: 2px; font-family: var(--font-num); font-size: 14px; }
.tm-pager a, .tm-pager span { min-width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; color: var(--ink-2) !important; text-decoration: none !important; border-bottom: 2px solid transparent; padding: 0 6px; }
.tm-pager a:hover { color: var(--ink) !important; border-bottom-color: var(--rule); }
.tm-pager [aria-current="page"] { color: var(--ink) !important; border-bottom-color: var(--accent); }
.tm-pager .tm-pager__step { font-family: var(--font-sans); font-size: 13px; letter-spacing: .08em; padding: 0 var(--space-3); }
.tm-postnav { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.tm-postnav a { padding: var(--space-4) 0; color: var(--ink) !important; text-decoration: none !important; display: flex; flex-direction: column; gap: 2px; font-size: 14.5px; }
.tm-postnav a + a { text-align: right; border-left: 1px solid var(--rule); }
.tm-postnav a span { font-size: 12px; color: var(--ink-3); letter-spacing: .1em; }
.tm-totop { display: inline-flex; flex-direction: column; align-items: center; gap: 4px; background: var(--paper); border: 1px solid var(--rule-strong); width: 52px; height: 52px; justify-content: center; font-size: 10px; letter-spacing: .14em; color: var(--ink); cursor: pointer; font-family: var(--font-sans); }
.tm-totop::before { content: ""; width: 9px; height: 9px; border-left: 1.5px solid currentColor; border-top: 1.5px solid currentColor; transform: rotate(45deg); margin-top: 4px; }
.tm-totop:hover { background: var(--ink); color: var(--paper); }

/* ---------- 誘導ブロック ---------- */
.tm-cta { padding: var(--space-9) 0; }
.tm-cta--row .tm-cta__in { border-top: 2px solid var(--rule-strong); padding-top: var(--space-5); display: grid; grid-template-columns: 1fr auto; gap: var(--space-6); align-items: center; }
.tm-cta--two .tm-cta__in { display: grid; grid-template-columns: 1fr 1fr; border-top: 2px solid var(--rule-strong); }
.tm-cta--two .tm-cta__cell { padding: var(--space-7) var(--space-6) var(--space-7) 0; border-bottom: 1px solid var(--rule); }
.tm-cta--two .tm-cta__cell + .tm-cta__cell { padding-left: var(--space-6); border-left: 1px solid var(--rule); }
.tm-cta--two p { margin: var(--space-2) 0 var(--space-5); color: var(--ink-2); font-size: 14.5px; }
.tm-cta--fill { background: var(--base-deep); color: var(--on-base-deep); }
.tm-cta--fill .tm-cta__in { display: grid; grid-template-columns: 1fr auto; gap: var(--space-6); align-items: center; }
.tm-cta--fill .tm-label { color: var(--on-base-deep); opacity: .85; }
.tm-cta--contact .tm-cta__in { display: grid; grid-template-columns: 1fr 1fr 1fr; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.tm-cta--contact .tm-cta__cell { padding: var(--space-5) var(--space-5) var(--space-5) 0; }
.tm-cta--contact .tm-cta__cell + .tm-cta__cell { padding-left: var(--space-5); border-left: 1px solid var(--rule); }
.tm-cta__big { font-family: var(--font-num); font-size: 26px; letter-spacing: .04em; color: var(--ink); display: block; margin: 4px 0; font-weight: 400; }

/* ---------- 特徴紹介 ---------- */
.tm-index { counter-reset: i; border-top: 1px solid var(--rule); }
.tm-index li { display: grid; grid-template-columns: 72px 260px 1fr; gap: var(--space-5); padding: var(--space-6) 0; border-bottom: 1px solid var(--rule); align-items: baseline; }
.tm-index li::before { counter-increment: i; content: counter(i, decimal-leading-zero); font-family: var(--font-num); font-size: 28px; font-weight: 300; color: var(--base-deep); line-height: 1; }
.tm-index p { color: var(--ink-2); font-size: 14.5px; }
.tm-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-7); }
.tm-cols > div { border-top: 1px solid var(--rule-strong); padding-top: var(--space-5); }
.tm-cols p { margin-top: var(--space-3); color: var(--ink-2); font-size: 14.5px; }
.tm-cols .tm-tx { display: inline-block; margin-top: var(--space-4); }
.tm-alt > div { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-8); align-items: center; padding: var(--space-7) 0; }
.tm-alt > div + div { border-top: 1px solid var(--rule); }
.tm-alt > div:nth-child(even) .tm-ph { order: 2; }
.tm-alt .tm-ph { aspect-ratio: 3 / 2; }
.tm-alt p { margin-top: var(--space-4); color: var(--ink-2); }
.tm-deflist { border-top: 2px solid var(--rule-strong); }
.tm-deflist div { display: grid; grid-template-columns: 240px 1fr; gap: var(--space-6); padding: var(--space-6) 0; border-bottom: 1px solid var(--rule); }
.tm-deflist dt { font-size: 17px; font-weight: 500; letter-spacing: .05em; }
.tm-deflist dd { color: var(--ink-2); font-size: 14.5px; }

/* ---------- お知らせ ---------- */
.tm-news { border-top: 1px solid var(--rule); }
.tm-news li { border-bottom: 1px solid var(--rule); }
.tm-news a { display: grid; grid-template-columns: 7.5em 7em 1fr auto; gap: var(--space-4); padding: 15px 0; color: var(--ink) !important; text-decoration: none !important; align-items: baseline; font-size: 15px; }
.tm-news a::after { content: "\2192"; color: var(--ink-3); font-size: 13px; }
.tm-news a:hover .tm-news__t { color: var(--accent); text-decoration: underline; text-underline-offset: .22em; }
.tm-news time { font-family: var(--font-num); font-size: 13px; color: var(--ink-3); letter-spacing: .04em; }
.tm-cat { font-size: 11.5px; letter-spacing: .12em; color: var(--ink-2); border: 1px solid var(--rule); padding: 1px 8px; justify-self: start; line-height: 1.7; white-space: nowrap; }
.tm-cat--accent { color: var(--sub); border-color: var(--sub); }
.tm-news--thumb a { grid-template-columns: 120px 1fr auto; align-items: center; }
.tm-news--thumb .tm-ph { min-height: 0; height: 80px; }
.tm-news--thumb .tm-news__meta { display: flex; gap: var(--space-3); align-items: center; margin-bottom: 4px; }
.tm-news--compact a { grid-template-columns: 6.8em 1fr; padding: 10px 0; font-size: 14px; }
.tm-news--compact a::after { content: none; }
.tm-tabs { display: flex; gap: var(--space-5); border-bottom: 1px solid var(--rule); margin-bottom: 0; }
.tm-tabs button { background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; font: inherit; font-size: 14px; letter-spacing: .08em; color: var(--ink-2); padding: 10px 0; cursor: pointer; }
.tm-tabs button[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--accent); }
.tm-tabs button:hover { color: var(--ink); }

/* ---------- カード（箱にしない。上罫＋余白） ---------- */
.tm-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-8) var(--space-6); }
.tm-card { display: flex; flex-direction: column; gap: var(--space-3); color: var(--ink) !important; text-decoration: none !important; border-top: 1px solid var(--rule-strong); padding-top: var(--space-3); }
.tm-card .tm-ph { min-height: 0; aspect-ratio: 3 / 2; margin-bottom: var(--space-2); }
.tm-card__k { font-size: 11.5px; letter-spacing: .14em; color: var(--ink-3); display: flex; gap: var(--space-3); }
.tm-card__t { font-size: 17px; font-weight: 500; letter-spacing: .04em; line-height: 1.6; }
.tm-card__d { font-size: 14px; color: var(--ink-2); line-height: 1.85; }
a.tm-card:hover .tm-card__t { color: var(--accent); text-decoration: underline; text-underline-offset: .22em; }
.tm-card--person .tm-ph { aspect-ratio: 1 / 1; width: 96px; }
.tm-card--person { flex-direction: row; gap: var(--space-4); align-items: flex-start; }
.tm-card--event .tm-card__date { font-family: var(--font-num); font-size: 28px; font-weight: 300; color: var(--accent); line-height: 1.1; }
.tm-card--dl { flex-direction: row; justify-content: space-between; align-items: center; gap: var(--space-4); padding: var(--space-3) 0; border-top: 1px solid var(--rule); }
.tm-card--dl .tm-card__t { font-size: 15px; }
.tm-filetag { font-family: var(--font-num); font-size: 11px; letter-spacing: .08em; color: var(--ink-2); border: 1px solid var(--field-line); padding: 1px 6px; white-space: nowrap; }

/* ---------- 表 ---------- */
.tm-table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.tm-table caption { text-align: left; font-size: 12px; letter-spacing: .16em; color: var(--ink-3); padding-bottom: var(--space-2); }
.tm-table th, .tm-table td { text-align: left; padding: 11px var(--space-4) 11px 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
.tm-table thead th { border-top: 2px solid var(--rule-strong); border-bottom: 1px solid var(--rule-strong); font-size: 12.5px; letter-spacing: .1em; color: var(--ink-2); font-weight: 500; }
.tm-table tbody th { font-weight: 500; color: var(--ink); width: 10em; }
.tm-table .is-num { text-align: right; font-family: var(--font-num); font-variant-numeric: tabular-nums; }
.tm-table tr.is-hl td, .tm-table tr.is-hl th { background: var(--base-tint); }

/* ---------- FAQ・タブ・注記 ---------- */
.tm-faq { border-top: 2px solid var(--rule-strong); }
.tm-faq details { border-bottom: 1px solid var(--rule); }
.tm-faq summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 2.2em 1fr 20px; gap: var(--space-3); padding: var(--space-4) 0; font-size: 15.5px; font-weight: 500; letter-spacing: .03em; }
.tm-faq summary::-webkit-details-marker { display: none; }
.tm-faq summary::before { content: "Q"; font-family: var(--font-num); color: var(--base-deep); font-weight: 400; font-size: 17px; }
.tm-faq summary::after { content: "+"; font-family: var(--font-num); font-weight: 300; font-size: 20px; line-height: 1.3; color: var(--ink-2); text-align: right; }
.tm-faq details[open] summary::after { content: "\2212"; }
.tm-faq__a { display: grid; grid-template-columns: 2.2em 1fr; gap: var(--space-3); padding: var(--space-2) 28px var(--space-5) 0; color: var(--ink-2); font-size: 14.5px; }
.tm-faq__a::before { content: "A"; font-family: var(--font-num); color: var(--ink-3); font-size: 17px; line-height: 1.6; }
.tm-tabpanel { padding: var(--space-5) 0; }
.tm-note { border-left: 2px solid var(--base-deep); background: var(--wash); color: var(--ink-2); padding: 12px 16px; font-size: 14.5px; }
.tm-note b { color: var(--ink); font-weight: 600; letter-spacing: .1em; font-size: 12.5px; margin-right: .8em; }
.tm-note--ok { border-left-color: var(--ok); }
.tm-note--ok b { color: var(--ok); }
.tm-note--care { border-left-color: var(--care); }
.tm-note--care b { color: var(--care); }
.tm-note--danger { border-left-color: var(--danger); }
.tm-note--danger b { color: var(--danger); }

/* ---------- フォーム ---------- */
.tm-form { display: grid; gap: var(--space-5); }
.tm-field { display: grid; grid-template-columns: 13em 1fr; gap: var(--space-5); padding-bottom: var(--space-5); border-bottom: 1px solid var(--rule-soft); align-items: start; }
.tm-field > label, .tm-field > .tm-field__l { font-size: 14.5px; font-weight: 500; padding-top: 10px; display: flex; gap: .7em; align-items: baseline; flex-wrap: wrap; }
.tm-req { font-size: 11px; letter-spacing: .1em; color: var(--danger); font-weight: 500; }
.tm-opt { font-size: 11px; letter-spacing: .1em; color: var(--ink-3); font-weight: 400; }
.tm-field input[type="text"], .tm-field input[type="email"], .tm-field input[type="tel"], .tm-field select, .tm-field textarea { width: 100%; max-width: 32em; font: inherit; font-size: 15.5px; color: var(--ink); background: var(--sheet); border: 1px solid var(--field-line); border-radius: var(--radius-hair); padding: 10px 12px; }
.tm-field textarea { min-height: 7em; resize: vertical; }
.tm-field input:focus, .tm-field select:focus, .tm-field textarea:focus { outline: none; border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.tm-field .is-error { border-color: var(--danger) !important; }
.tm-field__help { font-size: 12.5px; color: var(--ink-3); margin-top: 6px; }
.tm-field__err { font-size: 13px; color: var(--danger); margin-top: 6px; }
.tm-choice { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-6); padding-top: 9px; font-size: 15px; }
.tm-choice label { display: inline-flex; gap: 8px; align-items: center; cursor: pointer; }
.tm-choice input { accent-color: var(--accent); width: 17px; height: 17px; margin: 0; }
.tm-form__act { display: flex; gap: var(--space-5); align-items: center; padding-top: var(--space-2); }
.tm-form__purpose { margin: var(--space-2) 0 0; padding: var(--space-4) var(--space-5); background: var(--wash); font-size: 13.5px; line-height: 1.85; color: var(--ink-2); }

/* ---------- 日時・会場／アクセス ---------- */
.tm-event { display: grid; grid-template-columns: 1fr 300px; gap: var(--space-7); align-items: start; }
.tm-event .tm-spec div { grid-template-columns: 6.5em 1fr; }
.tm-event__side { border-top: 2px solid var(--accent); padding-top: var(--space-4); display: grid; gap: var(--space-3); }
.tm-event__side .tm-label { color: var(--base-deep); }
.tm-event__side .tm-btn { width: 100%; }
.tm-event__side .tm-tx { justify-self: start; }
.tm-access { display: grid; grid-template-columns: 1.3fr 1fr; gap: var(--space-7); }
.tm-access .tm-ph { min-height: 300px; }

/* ---------- ロゴ並び・ログイン ---------- */
.tm-logos { display: grid; grid-template-columns: repeat(6, 1fr); border-top: 1px solid var(--rule); border-left: 1px solid var(--rule); }
.tm-logos > * { height: 84px; display: flex; align-items: center; justify-content: center; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); color: var(--ink-3); font-size: 12px; letter-spacing: .12em; background: var(--sheet); }
.tm-login { max-width: 420px; border-top: 2px solid var(--rule-strong); padding-top: var(--space-5); }
.tm-login .tm-field { grid-template-columns: 1fr; gap: var(--space-2); border: 0; padding: 0; margin-bottom: var(--space-4); }
.tm-login .tm-field > label { padding-top: 0; }
.tm-login .tm-btn { width: 100%; }
.tm-login__links { display: flex; justify-content: space-between; margin-top: var(--space-4); font-size: 13px; }


/* ---------- キーメッセージ（和文が主、英文を小さく添える。文言は変えない） ---------- */
.tm-km { font-size: 13.5px; font-weight: 500; letter-spacing: .08em; color: var(--ink); line-height: 1.8; }
.tm-km span { display: block; font-family: var(--font-num); font-size: 11px; font-weight: 400; letter-spacing: .06em; color: var(--ink-3); }
.tm-km-en { text-transform: none; letter-spacing: .08em; }
.tm-ft__brand p.tm-km { color: var(--ink); font-size: 13px; }

@font-face{font-family:"TGChorus";font-style:normal;font-weight:400;font-display:swap;
 src:url(data:font/woff2;base64,d09GMk9UVE8AAAigAAsAAAAADJQAAAhVAAIAxAAAAAAAAAAAAAAAAAAAAAAAAAAADY0iGyAcMAZgAIEAATYCJAM4BAYFhkYHIBvPC6Mi2DgABZpRir9Y4GWIX1bO6Xqn+m3r6idKOOEjrR2phqOFU8mNiEc+2H8E9f2Y7r3/AwSeVMajisKirY2MUVWt8FUSdWs7HlACDY/nG/OXU8cMyS4ZxS8X/t+FvXaWXu9yuLStMFD/F+2+SRazTkTaO4idaILwT3J7d5xSkCSkgbS2fgD4/d+bunOWlgpgBfD35p/3z5+dLTXtptvwp9Rm4QCFIxjrWoEbVrBYAClnNWa4eaGSGlIJ9ngQ3zqKjr2u8Iak2qLC0/CRsK4ME5PSewXFd16vn0M9ZSeJpXy0TU020pLN9GQpo+5I6/6e/nNAbm+b8fRvO5SMPp/WMz3ZZOemyb6PIG+pv6hIKWGhUM6Nb9blJ/Ys7tgJsj4EH3fW6+CLn0+Ht9RVv244McG5T7LYONPvj3wPsiihqBbDXI4fhL7CHzsfz6CbOn9xuN/ubgsP1z/zlAKsmuzWNGgj+hf3nmGab113ybHr9I2Sm/R/T4G+68qEzyncZUNuDX4wQjjfe4PJfLlaV3YZ+6fNyLk5973W6Loy9VHamLT96XC6L53MoGUwM96RXSmSZMNHJN6ooXL6qhpMqHRYNu8GM+37Cb3RHzEYYEtptjEfmyaRlK8mGJUsQSUVXj66sssslGpevHHzi5ubDuGSLKhUKq0IYxHQ5GUgTpCTNyNc6vTFTIwpi4XP+a9HDxIbPe74biyyViKLEJTXSd96xJSAZvWdypyMjVp+6i0oAF1BPuh2KlE0ykjcOAtdFhWvnYgN6rJs4ECiR48FZBuyJdrp+Ox3T0Dq9vNPcMqgZNO3iHYdtGjMEno5Vsxbs2+f/ZxvL3HYH43FsbCjMttAnNgAaQxqoxrdyY2VVAnk7GJ83KqaWm4eTF/MGzIbnR8r3bPvwbZLLxMdRZr9QOKNqEWT5izDFspObdUQIduHG34XvDkRW7cXXc+PFBVXVNGL8YFTK8iM3uicSM7p28/vbt+ODwQ0ZOLwvJVF+AH9FtDhOBa08LkEhZwLTr9A9AmIumIFS4QJxHb3JvsWyxZiLWgOGQLmdXbUrDCIOB2n8qm4igY5QpvCTsymEYi43PGC1YRgddWqLJRprXF7vJYtJ3C3zWw8vQU2JQuQqrhKJwyp9EqDUi+VyRVyBYOjVDGrzGxTQ6h0faK1Ua/Thbywkn+FUz+RYKM6sUgqV8JZE8XyOqxKHfZ7d4Mlm0F7AnTdavHuwhxWlTRK7DwMGXgCTT2WX16Ts5LIzhfU1heL2dwRwuyJ5IXWKqlKKkUr7NSEdUf8JWiGU9YnPaAFsqCrXCnEhFKbO2Ba77tM7AWj1GoTapMY62u5Ik4xTv45BLKsd501oyapUSKYWJQ9Hpcyofg5vcaCmQxSMa9yGKsfwRlRt/hm/CRogO6CpjqNEzPpZeJacSGNzCS4A+TVlWidvt5Whe8JXN555RBMYSQXg2vIkaItS/Jn0rLn4TNXZnXshs7ZUHB4zRpreA9+YM36iDcMbzuy7sNldMxiJLduKWsFvoBeXFGI5TE3HwfwdfD7lW2RgrkExZHkgUfIPt66MnZpLTUPHz5PZ9PatMY2li2GgB41SkwS4Ygc9X8Jh8Fu0GvbOOJGrRmzm4RVxXNJx0KyhChWUsvBGMVezdoImWHcB0ohud+m8mC7wpZ124iDW31ehxfeeHDdz/PoxFwkq24haxE+j1FKzcNYDLOTTWwGw82boFMPE54o5ndwywjK+uQSMB3ZXhMYfwKfcLzBsxM9v//YyR2uqpk2/MJe6KiUGluCdSJ/ITO7ZQXKTmQRlxZ7GavR0eOmDMrJ9iUYOC8kDoh31QhaZ3eEVm3cyz2Pgd6gB2gKmhOUdsk/jveLhPmVVjo2ofeg6RVu9hYGcaDEJGKhxatzC7jV9qAQl7iULtUGgVgskys4EdGEFFaLtyiU4CqRSixFcxLUXWt3Orzr8JMbNh08gG6WmBduxEuDdb4ouiGe2BDyCOhBfMN6tdrhgylkPqUd+Pczoo1AWWPLq+uw+ppowOm5Hf1OaJxWtQHbpoH0Vo3WTWyJQ2SLzG1gSKVQrKiVtJHIlyaWy5Wy4/Omk01bq0RStQJjZ6olarEKF0hU6uo6hVIml8jg8DnBPcFgcMnHUqsrUDdQ4gte2nHtHU75ixYfYxEBUeo00fSa7QiMB/gPAFTp0sd9XoujqsQj+CZXBwSPQZzvdJX6HYi4HduyPrjFMksnywDezXyQ48K51c59XJAU2mz38z98nZGuNrioExsNRLmWDHDI40wnip7Nby+SxhGkzcRCufIVKlWBgdP/Ags07CU9HWpXgeNZ/Xly5VQXiPNHjARwW+Ocef+309mNR/2As+4+BVzeh6eIFf/I/x7nnmakq21ZdZ2nC1og/C2SUfm4R94auQBJlVPQGYeF2Z9Flp6VlvucMt95JOdFbgyTu/+TlKah7tzRzXOkzKUkgRCH0pGPgG5S0ISocqCakdRzzTGbv2uegU2qBdhupQYD76ahG0aPRAmpoVQo1P7JmsBxSURpx046jCvMLLG7TgepCsUk2JBBB1kn3SMuQDdzFXgjuBBwjuoC8ngw9TtFXk8yGWgeh4DDXIuZlDGlIoSFJiL8IAqpAL1VYcYFT9ZPnlqpsBo1qpRVtKIlK+23Ox0o4iaSmdE8V5lBoUcC78XMDekXpaiVT2sjUIOIRZOnJqnHUc9k7zhXolgupCMbd/tesj0H6ibf1Cl0gbaG/kyKzRN3EboS5saSDU8KY4hFKGEHf99yez89LtppgM4NUvDHOUfV2P+YdGgng+YoaDpptfXmdKHPMeTK2aJhpcnLfMtlIDjmM2OXSIr8gxrVchbpa3tLDgAA) format("woff2")}
/* ==========================================================================
   単独型（特設記事型）— インフルエンザ研究班 夏季セミナー開催報告・第75回代議員会 開催報告の作りを型にしたもの
   本文・写真・図表を同じ幅（860px）の一本の柱にそろえ、記事として読ませる。見出しは基調の深い色の太字。
   ========================================================================== */
.tm-ar { max-width: 860px; margin: 0 auto; padding: 56px var(--space-5) 96px; position: relative; font-size: 16.5px; line-height: 1.9; }
.tm-ar p { margin: 0 0 1.2em; }
.tm-ar--head { padding-bottom: 0; }
.tm-ar--body { padding-top: 0; }
.tm-ar strong { color: var(--base-deep); font-weight: 700; }
.tm-ar-spc { display: flex; align-items: center; gap: 14px; margin: 0 0 36px; }
.tm-ar-spc::after { content: ""; flex: 1 1 auto; height: 1px; background: var(--rule); min-width: 20px; }
.tm-ar-badge { flex: none; display: inline-flex; flex-direction: column; align-items: flex-start; gap: 5px; padding: 10px 18px 9px; background: var(--base-deep); color: var(--on-base-deep); border-radius: 2px; }
.tm-ar-badge b { font-family: "TGChorus", "Snell Roundhand", "Apple Chancery", "Segoe Script", "Brush Script MT", cursive; font-weight: 400; font-size: 23px; line-height: 1; letter-spacing: .05em; }
.tm-ar-badge i { font-style: normal; font-size: 10px; line-height: 1; letter-spacing: .2em; opacity: .85; font-weight: 700; }
.tm-ar-mark { display: flex; align-items: center; gap: 14px; margin: 0 0 40px; }
.tm-ar-mark img { width: 52px; height: 52px; }
.tm-ar-mark span { font-size: 13px; letter-spacing: .14em; color: var(--base-deep); font-weight: 700; }
.tm-ar-wm { position: absolute; top: 12px; right: -40px; width: 280px; height: 280px; opacity: .06; pointer-events: none; }
.tm-ar-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.tm-ar-tag { display: inline-flex; align-items: center; gap: 7px; padding: 5px 12px; font-size: 11.5px; font-weight: 700; letter-spacing: .08em; line-height: 1; background: var(--base-deep); color: var(--on-base-deep); border-radius: 2px; }
.tm-ar-tag--flash { background: var(--accent-tint, #fff4ee); background: var(--wash); color: var(--accent); border: 1px solid var(--accent); }
.tm-ar-tag--flash::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.tm-ar-kicker { margin: 0 0 18px !important; font-size: 13px; letter-spacing: .14em; color: var(--base-deep); font-weight: 700; }
.tm-ar-title { margin: 0 0 30px; font-size: 34px; line-height: 1.55; color: var(--base-deep); font-weight: 700; letter-spacing: .01em; }
.tm-ar-deck { font-size: 16px; line-height: 1.95; color: var(--ink-2); margin-bottom: 26px !important; }
.tm-ar-byline { margin: 0 0 30px !important; padding-bottom: 20px; border-bottom: 1px solid var(--rule); font-size: 13.5px; color: var(--ink-2); }
.tm-ar-notice { margin: 0 0 26px !important; padding: 13px 17px; background: var(--sheet); border-left: 4px solid var(--accent); font-size: 13px; line-height: 1.85; color: var(--ink-2); }
.tm-ar-toc { margin: 8px 0 0; padding: 22px 24px; background: var(--wash); }
.tm-ar-toc > p { margin: 0 0 12px !important; font-size: 12.5px; letter-spacing: .12em; color: var(--base-deep); font-weight: 700; }
.tm-ar-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: t; }
.tm-ar-toc li { counter-increment: t; border-top: 1px solid var(--rule-soft); }
.tm-ar-toc li:first-child { border-top: 0; }
.tm-ar-toc a { display: grid; grid-template-columns: 1.9em 1fr; gap: 2px 6px; padding: 11px 2px; color: var(--ink) !important; text-decoration: none !important; }
.tm-ar-toc a::before { content: counter(t); grid-row: 1 / span 3; font-size: 13px; color: var(--base-deep); font-weight: 700; padding-top: 2px; font-family: var(--font-num); }
.tm-ar-toc .tl { font-size: 11.5px; letter-spacing: .08em; color: var(--base-deep); font-weight: 700; }
.tm-ar-toc .tt { font-size: 15.5px; line-height: 1.55; font-weight: 700; }
.tm-ar-toc .tsp { font-size: 12.5px; color: var(--ink-2); }
.tm-ar-toc li.cur { background: var(--sheet); box-shadow: inset 3px 0 0 var(--base-deep); }
.tm-ar-toc li.cur a { padding-left: 12px; }
.tm-ar-toc li.cur .tt { color: var(--base-deep); }
.tm-ar-toc--simple a { grid-template-columns: 1.6em 1fr; padding: 9px 2px; }
.tm-ar-toc--simple .tt { font-weight: 400; }
.tm-ar-sect { position: relative; margin-top: 104px; }
.tm-ar-sect::before { content: ""; display: block; width: 56px; border-top: 3px solid var(--base-deep); margin-bottom: 28px; }
.tm-ar-sect--pic .tm-ar-sect__label, .tm-ar-sect--pic .tm-ar-sect__title, .tm-ar-sect--pic .tm-ar-speaker { padding-right: 176px; }
.tm-ar-portrait { position: absolute; right: 0; top: 59px; width: 148px; height: 148px; border-radius: 50%; background: var(--base-soft); display: flex; align-items: center; justify-content: center; font-size: 11px; color: var(--ink); letter-spacing: .1em; overflow: hidden; }
.tm-ar-sect__label { margin: 0 0 14px !important; font-size: 13.5px; letter-spacing: .1em; color: var(--base-deep); font-weight: 700; }
.tm-ar-sect__title { margin: 0 0 14px; font-size: 29px; line-height: 1.45; letter-spacing: .01em; color: var(--base-deep); font-weight: 700; }
.tm-ar-speaker { margin: 0 0 30px !important; padding-bottom: 16px; border-bottom: 1px solid var(--rule-soft); font-size: 14px; color: var(--ink-2); }
.tm-ar h3 { margin: 2.8em 0 .8em; font-size: 22px; line-height: 1.55; color: var(--base-deep); font-weight: 700; }
.tm-ar h4 { margin: 2.2em 0 .6em; font-size: 18.5px; line-height: 1.6; color: var(--base-deep); font-weight: 700; }
.tm-ar-photo { margin: 0 0 2.2em; }
.tm-ar-photo .tm-ph, .tm-ar-photo img { display: block; width: 100%; aspect-ratio: 16 / 9; height: auto; object-fit: cover; border-radius: 2px; }
.tm-ar-photo figcaption { margin-top: 12px; font-size: 13px; line-height: 1.75; color: var(--ink-2); }
.tm-ar-box { margin: 1.9em 0; padding: 20px 22px; background: var(--wash); border-left: 5px solid var(--base-deep); }
.tm-ar-box p { margin: 0 0 .8em !important; font-size: 15.5px; line-height: 1.85; }
.tm-ar-box p:last-child { margin-bottom: 0 !important; }
.tm-ar-box__label { font-weight: 700; color: var(--base-deep); font-size: 14px !important; letter-spacing: .04em; }
.tm-ar-box p.tm-ar-box__label { margin-bottom: 14px !important; }
.tm-ar-box__sign { text-align: right; font-size: 14.5px !important; }
.tm-ar-quote { position: relative; margin: 2.6em 0; padding: 22px 12px 18px 58px; }
.tm-ar-quote::before { content: "\201C"; position: absolute; left: 0; top: -12px; font-family: Georgia, "Times New Roman", serif; font-size: 100px; line-height: 1; color: var(--base-deep); opacity: .14; }
.tm-ar-quote blockquote { margin: 0; font-size: 19.5px; line-height: 1.85; color: var(--base-deep); font-weight: 500; }
.tm-ar-quote figcaption { margin-top: 16px; font-size: 13px; color: var(--ink-2); }
.tm-ar-stats { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 0 30px; border-top: 1px solid var(--rule-soft); border-bottom: 1px solid var(--rule-soft); }
.tm-ar-stat { padding: 18px 14px 16px; }
.tm-ar-stat + .tm-ar-stat { border-left: 1px solid var(--rule-soft); }
.tm-ar-stat:first-child { padding-left: 2px; }
.tm-ar-stat .lb { display: block; font-size: 12.5px; letter-spacing: .06em; color: var(--ink-2); }
.tm-ar-stat .v { display: block; margin-top: 2px; font-family: var(--font-num); font-size: 32px; line-height: 1.3; color: var(--base-deep); font-weight: 500; font-variant-numeric: tabular-nums; }
.tm-ar-stat .v small { font-family: var(--font-sans); font-size: 14px; margin-left: 3px; }
.tm-ar-stat .nt { display: block; font-size: 12px; color: var(--ink-2); line-height: 1.6; }
.tm-ar-bars { margin: 1.4em 0 .6em; }
.tm-ar-bar { display: grid; grid-template-columns: 11.5em 1fr 3.2em; align-items: center; gap: 10px; margin: 0 0 8px; font-size: 14.5px; }
.tm-ar-bar .tr { height: 14px; background: var(--wash); }
.tm-ar-bar .fi { display: block; height: 100%; background: var(--accent); }
.tm-ar-bar.sub .fi { background: var(--base-soft); }
.tm-ar-bar .n { text-align: right; font-family: var(--font-num); font-variant-numeric: tabular-nums; }
.tm-ar-rep { border-top: 1px solid var(--rule-soft); }
.tm-ar-rep:last-of-type { border-bottom: 1px solid var(--rule-soft); }
.tm-ar-rep summary { list-style: none; cursor: pointer; padding: 16px 40px 16px 2px; position: relative; }
.tm-ar-rep summary::-webkit-details-marker { display: none; }
.tm-ar-rep summary::after { content: ""; position: absolute; right: 10px; top: 24px; width: 9px; height: 9px; border-right: 1.6px solid var(--base-deep); border-bottom: 1.6px solid var(--base-deep); transform: rotate(45deg); transition: transform .2s; }
.tm-ar-rep[open] summary::after { transform: rotate(-135deg); top: 28px; }
.tm-ar-rep .dept { display: block; font-size: 12px; letter-spacing: .08em; color: var(--ink-2); }
.tm-ar-rep .cn { display: block; font-size: 17px; font-weight: 700; color: var(--base-deep); line-height: 1.55; }
.tm-ar-rep .gist { display: block; margin-top: 3px; font-size: 14.5px; line-height: 1.75; color: var(--ink); }
.tm-ar-rep .body { padding: 4px 2px 24px; font-size: 15.5px; }
.tm-ar-pager { margin-top: 88px; padding-top: 30px; border-top: 1px solid var(--rule-soft); }
.tm-ar-pgs { display: flex; gap: 16px; }
.tm-ar-pg { flex: 1 1 0; min-width: 0; display: flex; align-items: center; gap: 14px; padding: 18px 20px; border: 1px solid var(--rule); border-radius: 2px; background: var(--sheet); text-decoration: none !important; color: var(--ink) !important; transition: border-color .16s; }
.tm-ar-pg:hover { border-color: var(--base-deep); }
.tm-ar-pg.ghost { visibility: hidden; }
.tm-ar-pg .pt { flex: 1 1 auto; min-width: 0; }
.tm-ar-pg .pl { display: block; font-size: 11.5px; letter-spacing: .1em; color: var(--ink-2); font-weight: 700; }
.tm-ar-pg b { display: block; margin-top: 6px; font-size: 15px; line-height: 1.55; font-weight: 700; color: var(--base-deep); }
.tm-ar-pg .ar { flex: none; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--rule); position: relative; }
.tm-ar-pg .ar::before { content: ""; position: absolute; top: 50%; left: 50%; width: 7px; height: 7px; border-top: 1.6px solid var(--base-deep); border-right: 1.6px solid var(--base-deep); transform: translate(-60%, -50%) rotate(45deg); }
.tm-ar-pg.next { text-align: right; }
.tm-ar-pnums { display: flex; justify-content: center; gap: 6px; margin-top: 26px; }
.tm-ar-pn { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 9px; border: 1px solid var(--rule); border-radius: 2px; font-size: 14px; color: var(--base-deep) !important; text-decoration: none !important; background: var(--sheet); font-family: var(--font-num); }
.tm-ar-pn.cur { background: var(--base-deep); border-color: var(--base-deep); color: var(--on-base-deep) !important; font-weight: 700; }
.tm-ar-pcount { margin: 12px 0 0 !important; text-align: center; font-size: 12px; color: var(--ink-3); }
.tm-ar-apply { margin: 2em 0; padding: 26px 28px; background: var(--base-tint); display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: center; }
.tm-ar-apply p { margin: 0 !important; }
.tm-ar-apply .tm-ar-box__label { display: block; margin-bottom: 10px !important; }
.tm-ar-foot { max-width: 860px; margin: 0 auto; padding: 32px var(--space-5) 48px; display: flex; flex-wrap: wrap; gap: 12px 28px; align-items: center; justify-content: space-between; font-size: 13px; color: var(--ink-2); border-top: 1px solid var(--rule-soft); }
.tm-ar-foot .tm-brand__name { font-size: 14px; }
.tm-ar-foot .tm-logo { width: 32px; height: 32px; }
.tm-ar-foot a.tm-homelink { font-size: 13px; }
.tm-ar-spc .tm-hd__opt { order: 2; }
.tm-ar-spc::after { order: 1; }
.tm-ar-mark .tm-hd__opt { margin-left: auto; }
.tm-ar-foot .tm-ft__opt { margin: 0; padding: 0; border: 0; }
.tm-ar-head-rule { height: 1px; }

/* ----------
   メインビジュアルの演出（オプション）：スライドショー・動画
   ---------- */
.tm-hero--slider, .tm-hero--video { position: relative; overflow: hidden; }
.tm-slides { position: relative; height: 600px; overflow: hidden; }
.tm-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.4s ease; }
.tm-slide.is-on { opacity: 1; z-index: 1; }
.tm-slide > .tm-ph, .tm-slide > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; min-height: 0; transform: scale(1.04); transition: transform 7s linear; }
.tm-slide.is-on > .tm-ph, .tm-slide.is-on > img { transform: scale(1.12); }
.tm-slide__cap { position: absolute; right: var(--space-6); bottom: var(--space-6); z-index: 2; font-size: 12px; letter-spacing: .08em; color: #fff; background: rgba(16,18,22,.55); padding: 4px 10px; }
.tm-hero--slider .tm-hero__plate { z-index: 3; }
.tm-slider__ui { position: absolute; z-index: 4; right: var(--space-6); top: var(--space-6); display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: rgba(255,255,255,.88); border-radius: 2px; }
.tm-slider__dot { width: 28px; height: 3px; border: 0; padding: 0; background: var(--rule-strong); cursor: pointer; }
.tm-slider__dot[aria-current="true"] { background: var(--base-deep); }
.tm-slider__btn { display: inline-flex; align-items: center; gap: 6px; border: 0; background: none; padding: 2px 0 2px 6px; font: inherit; font-size: 12px; color: var(--ink); cursor: pointer; }
.tm-slider__btn::before { content: ""; width: 8px; height: 10px; border-left: 2.5px solid currentColor; border-right: 2.5px solid currentColor; box-sizing: border-box; }
.tm-slider__btn[aria-pressed="true"]::before { border: 0; border-left: 9px solid currentColor; border-top: 5px solid transparent; border-bottom: 5px solid transparent; width: 0; height: 0; }
.tm-hero--video { min-height: 680px; display: flex; align-items: flex-end; color: #fff; background: #1c1c1a; }
.tm-hero__video, .tm-hero--video > .tm-ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; min-height: 0; }
.tm-hero--video > .tm-ph { background: #3a434e; color: rgba(255,255,255,.55); align-items: flex-start; padding-top: 120px; }
.tm-hero--video::after { content: ""; position: absolute; inset: 0; background: rgba(16,18,22,.42); pointer-events: none; }
.tm-hero--video .tm-hero__in { position: relative; z-index: 2; width: 100%; padding-bottom: var(--space-9); }
.tm-hero--video .tm-label { color: rgba(255,255,255,.85); }
.tm-hero--video .tm-display { color: #fff; font-size: clamp(40px, 5.4vw, 72px); line-height: 1.35; margin: var(--space-3) 0 var(--space-5); }
.tm-hero--video .tm-lead { color: rgba(255,255,255,.88); }
.tm-hero--video .tm-hero__in .tm-tx { color: #fff !important; border-bottom-color: rgba(255,255,255,.7); }
.tm-hero--video .tm-slider__ui { background: rgba(0,0,0,.35); }
.tm-hero--video .tm-slider__btn { color: #fff; }
.tm-hero--video.is-plate { align-items: stretch; }
.tm-hero--video.is-plate::after { display: none; }
.tm-hero--video .tm-hero__plate { z-index: 2; color: var(--ink); }
.tm-hero--video .tm-hero__plate .tm-display { color: var(--ink); font-size: 40px; line-height: 1.45; }
.tm-hero--video .tm-hero__plate .tm-label { color: var(--ink-3); }
.is-under-overlay > .tm-hd--overlay { position: absolute; top: 0; left: 0; right: 0; z-index: 5; }
.is-under-overlay .tm-slider__ui { top: auto; bottom: var(--space-6); }
.is-under-overlay .tm-slide::after { content: ""; position: absolute; inset: 0; background: rgba(16,18,22,.24); pointer-events: none; }
/* ----------
   全画面のメインビジュアル（HeroFull・T10）：写真・動画・スライドショーを画面の縦横いっぱいに敷く。
   文字は一様な暗い膜の上に白で（写真の上の白文字の例外。00）。下中央に「SCROLL」の合図。
   ヘッダーは透過のまま重ね（.tm-hd--float）、メインビジュアルを過ぎたら紙の地に戻す（TM.head）。
   ---------- */
.tm-hero--full { position: relative; height: 100vh; height: 100svh; min-height: 560px; overflow: hidden; display: flex; align-items: flex-end; color: #fff; background: #1c1c1a; }
.tm-hero__bg { position: absolute; inset: 0; overflow: hidden; }
.tm-hero__bg > .tm-ph, .tm-hero__bg > img, .tm-hero__bg > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; min-height: 0; }
.tm-hero--full .tm-hero__bg > .tm-ph { background: #3a434e; color: rgba(255,255,255,.55); align-items: flex-start; padding-top: 150px; box-sizing: border-box; }
.tm-hero--full .tm-slides { position: absolute; inset: 0; height: auto; }
.tm-hero--full .tm-slide__cap { display: none; }
.tm-hero--full::after { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(16,18,22,.40); pointer-events: none; }
.tm-hero--full .tm-hero__in { position: relative; z-index: 2; width: 100%; box-sizing: border-box; padding-top: calc(var(--header-height) + var(--space-7)); padding-bottom: calc(var(--space-10) + var(--space-4)); }
.tm-hero--full .tm-label { color: rgba(255,255,255,.85); }
.tm-hero--full .tm-display { color: #fff; font-size: clamp(44px, 5.6vw, 84px); line-height: 1.3; letter-spacing: .02em; margin: var(--space-4) 0 var(--space-6); }
.tm-hero--full .tm-lead { color: rgba(255,255,255,.88); }
.tm-hero--full .tm-hero__in .tm-tx { color: #fff !important; border-bottom-color: rgba(255,255,255,.7); }
.tm-hero--full .tm-slider__ui { top: auto; bottom: var(--space-6); right: var(--space-6); background: rgba(0,0,0,.35); }
.tm-hero--full .tm-slider__btn { color: #fff; }
.tm-hero--full .tm-slider__dot { background: rgba(255,255,255,.45); }
.tm-hero--full .tm-slider__dot[aria-current="true"] { background: #fff; }
.tm-scrollcue { position: absolute; left: 50%; bottom: var(--space-5); z-index: 3; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 10px; color: rgba(255,255,255,.85) !important; text-decoration: none !important; font-family: var(--font-num); font-size: 10.5px; letter-spacing: .28em; text-indent: .28em; }
.tm-scrollcue i { position: relative; display: block; width: 1px; height: 52px; overflow: hidden; background: rgba(255,255,255,.3); }
.tm-scrollcue i::after { content: ""; position: absolute; left: 0; top: -45%; width: 1px; height: 45%; background: #fff; animation: tm-cue 2.4s cubic-bezier(.6, 0, .4, 1) infinite; }
@keyframes tm-cue { 0% { top: -45%; } 75%, 100% { top: 100%; } }
.tm-hd--float { position: sticky; top: 0; z-index: 40; margin-bottom: calc(-1 * var(--header-height) - 1px); transition: background-color .3s ease, border-color .3s ease; }
.tm-hd--float.tm-hd--overlay { background: transparent; }
.tm-hd--overlay .tm-btn--quiet { color: #fff !important; }
@media (prefers-reduced-motion: reduce) {
  .tm-scrollcue i::after { animation: none; top: 0; height: 100%; background: rgba(255,255,255,.6); }
  .tm-hd--float { transition: none; }
  .tm-slide, .tm-slide > .tm-ph, .tm-slide > img { transition: none; }
  .tm-hero--video > .tm-ph { animation: none; }
}

/* 会名の「一般社団法人」を小さく添える */
.tm-corp { font-size: .7em; letter-spacing: .04em; margin-right: .35em; font-weight: inherit; vertical-align: .08em; }

/* ----------
   ログイン画面（全画面）：A 左右分割（左に写真・右の中央に入力欄）／B 中央
   ---------- */
.tm-auth { min-height: max(680px, 100svh); background: var(--paper); color: var(--ink); }
.tm-auth--split { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
.tm-auth__visual { position: relative; overflow: hidden; background: var(--base-deep); min-height: 100%; }
.tm-auth__visual > .tm-ph, .tm-auth__visual > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; min-height: 0; }
.tm-auth__visual::after { content: ""; position: absolute; inset: 0; background: rgba(16,18,22,.34); pointer-events: none; }
.tm-auth__vtext { position: absolute; z-index: 1; left: var(--space-8); right: var(--space-8); bottom: var(--space-8); color: #fff; }
.tm-auth__vtext .tm-logo { width: 56px; height: 56px; margin-bottom: var(--space-5); }
.tm-auth__vtext .tm-logo--k { display: none; }
.tm-auth__vtext .tm-logo--w { display: block; }
.tm-auth .tm-auth__km { margin: 0 0 10px; font-size: 26px; line-height: 1.6; font-weight: 500; letter-spacing: .06em; }
.tm-auth .tm-auth__kmen { margin: 0; font-size: 13px; letter-spacing: .08em; opacity: .85; font-family: var(--font-num); }
.tm-auth__panel { display: flex; flex-direction: column; padding: var(--space-6) var(--space-8); }
.tm-auth__main { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: center; width: 100%; max-width: 400px; margin: 0 auto; padding: var(--space-6) 0; }
.tm-auth__brand { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; letter-spacing: .06em; color: var(--ink-2); margin-bottom: var(--space-6); }
.tm-auth__brand .tm-logo { width: 32px; height: 32px; }
.tm-auth .tm-auth__title { margin: 0 0 var(--space-3); font-size: 28px; line-height: 1.5; font-weight: 500; letter-spacing: .04em; color: var(--ink); }
.tm-auth .tm-auth__lead { margin: 0 0 var(--space-6); font-size: 14px; color: var(--ink-2); line-height: 1.85; }
.tm-auth .tm-field { grid-template-columns: 1fr; gap: var(--space-2); border: 0; padding: 0; margin-bottom: var(--space-4); }
.tm-auth .tm-field > label { padding-top: 0; }
.tm-auth .tm-field input[type="text"], .tm-auth .tm-field input[type="password"], .tm-auth .tm-field input[type="email"] { max-width: none; }
.tm-auth .tm-field input[type="password"] { width: 100%; font: inherit; font-size: 15.5px; color: var(--ink); background: var(--sheet); border: 1px solid var(--field-line); border-radius: var(--radius-hair); padding: 11px 14px; box-sizing: border-box; }
.tm-auth__pass { position: relative; }
.tm-auth__pass input { padding-right: 64px !important; }
.tm-auth__show { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); border: 0; background: none; font: inherit; font-size: 12.5px; color: var(--base-deep); padding: 6px 8px; cursor: pointer; }
.tm-auth__keep { display: flex; align-items: center; gap: 8px; margin: 0 0 var(--space-5); font-size: 13.5px; color: var(--ink-2); }
.tm-auth__keep input { width: 16px; height: 16px; accent-color: var(--base-deep); }
.tm-auth .tm-btn--primary { width: 100%; justify-content: center; }
.tm-auth__links { display: flex; justify-content: space-between; gap: var(--space-4); margin-top: var(--space-5); font-size: 13px; }
.tm-auth__links a { color: var(--base-deep); }
.tm-auth__note { margin-top: var(--space-6); padding: var(--space-4) var(--space-5); background: var(--wash); font-size: 12.5px; line-height: 1.8; color: var(--ink-2); }
.tm-auth__foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; font-size: 12px; color: var(--ink-3); }
.tm-auth__foot a { color: var(--ink-2); }
.tm-auth--center { display: flex; flex-direction: column; background: var(--wash); padding: var(--space-6) var(--space-5); }
.tm-auth--center .tm-auth__main { max-width: 440px; align-items: stretch; text-align: left; }
.tm-auth--center .tm-auth__head { text-align: center; margin-bottom: var(--space-6); }
.tm-auth--center .tm-auth__head .tm-logo { width: 64px; height: 64px; margin: 0 auto var(--space-4); display: block; }
.tm-auth--center .tm-auth__head .tm-logo--w { display: none; }
[data-theme="yoru"] .tm-auth--center .tm-auth__head .tm-logo--k { display: none; }
[data-theme="yoru"] .tm-auth--center .tm-auth__head .tm-logo--w { display: block; }
.tm-auth--center .tm-auth__org { margin: 0 0 var(--space-5) !important; font-size: 13px; letter-spacing: .1em; color: var(--ink-2); }
.tm-auth--center .tm-auth__title { font-size: 24px; margin-bottom: 0 !important; }
.tm-auth__sheet { background: var(--sheet); padding: var(--space-7) var(--space-7) var(--space-6); }
.tm-auth--center .tm-auth__foot { justify-content: center; text-align: center; }

/* ==========================================================
   印刷物：複数ページ（冊子・企画書・報告書・配布資料） .tm-pg
   基準は「WEB講座 協賛企画書（2026年10月）」。A4縦 794×1123px（96dpi）。
   余白 上下25mm・左右20mm。柱（文書名）は右上、ノンブルは下中央。
   ========================================================== */
.tm-pg { position: relative; box-sizing: border-box; width: 794px; height: 1123px; padding: 94px 76px 96px; background: var(--sheet); color: var(--ink); font-size: 13.5px; line-height: 1.95; overflow: hidden; display: flex; flex-direction: column; }
.tm-pg p { margin: 0 0 .9em; }
.tm-pg__run { position: absolute; top: 42px; right: 76px; font-size: 10px; color: var(--ink-3); letter-spacing: .04em; }
.tm-pg__no { position: absolute; bottom: 44px; left: 0; right: 0; text-align: center; font-size: 11px; color: var(--ink-3); font-family: var(--font-num); }
.tm-pg-org { margin: 0 0 14px !important; font-size: 12px; color: var(--ink-2); letter-spacing: .04em; }
.tm-pg-title { margin: 0 0 18px; font-size: 30px; line-height: 1.5; font-weight: 400; color: var(--base-deep); letter-spacing: .02em; }
.tm-pg-sub { margin: 0 0 30px !important; font-size: 13.5px; color: var(--ink-2); }
.tm-pg-kind { margin: 0 0 40px; padding-bottom: 12px; border-bottom: 1.5px solid var(--base-deep); font-size: 16px; font-weight: 500; color: var(--ink); letter-spacing: .06em; }
.tm-pg-km { margin: 0 0 22px; font-size: 21px; line-height: 1.6; font-weight: 500; color: var(--base-deep); letter-spacing: .03em; }
.tm-pg-h { margin: 0 0 22px; padding-bottom: 9px; border-bottom: 1px solid var(--rule); font-size: 17px; font-weight: 500; color: var(--base-deep); letter-spacing: .04em; }
.tm-pg-h b { font-weight: 500; margin-right: 1em; font-family: var(--font-num); }
.tm-pg * + .tm-pg-h { margin-top: 40px; }
.tm-pg-h3 { margin: 26px 0 10px; font-size: 14.5px; font-weight: 500; color: var(--ink); }
.tm-pg-pt { margin: 14px 0 4px !important; color: var(--base-deep); font-weight: 500; }
.tm-pg-pt::before { content: "・"; }
.tm-pg-pt + p { padding-left: 1.2em; }
.tm-pg-ind { text-indent: 1em; }
.tm-pg-note { font-size: 11px !important; line-height: 1.75; color: var(--ink-2); }
.tm-pg-tbl { width: 100%; border-collapse: collapse; margin: 6px 0 14px; font-size: 12.5px; line-height: 1.75; border-top: 1.5px solid var(--ink); border-bottom: 1.5px solid var(--ink); }
.tm-pg-tbl th, .tm-pg-tbl td { padding: 9px 10px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--rule-soft); }
.tm-pg-tbl tbody th { width: 24%; color: var(--base-deep); font-weight: 400; }
.tm-pg-tbl thead th { border-bottom: 1px solid var(--ink-3); color: var(--ink-2); font-weight: 400; font-size: 11.5px; }
.tm-pg-tbl .num { text-align: right; font-family: var(--font-num); font-variant-numeric: tabular-nums; }
.tm-pg-tbl tr.sum td { font-weight: 700; }
.tm-pg-toc { margin: 0; padding: 0; list-style: none; font-size: 13px; }
.tm-pg-toc li { display: flex; align-items: baseline; gap: 6px; padding: 3px 0; }
.tm-pg-toc li::after { content: ""; order: 2; flex: 1 1 auto; border-bottom: 1px dotted var(--ink-3); transform: translateY(-4px); }
.tm-pg-toc li span:first-child { order: 1; }
.tm-pg-toc li span:last-child { order: 3; font-family: var(--font-num); }
.tm-pg-toch { margin: 34px 0 12px !important; font-size: 14px; color: var(--base-deep); font-weight: 500; }
.tm-pg-box { margin: 16px 0; padding: 16px 20px; background: var(--wash); border-left: 4px solid var(--base-deep); }
.tm-pg-box p:last-child { margin-bottom: 0; }
.tm-pg-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 10px 0 22px; border-top: 1px solid var(--rule-soft); border-bottom: 1px solid var(--rule-soft); }
.tm-pg-stats div { padding: 14px 12px; }
.tm-pg-stats div + div { border-left: 1px solid var(--rule-soft); }
.tm-pg-stats span { display: block; font-size: 11px; color: var(--ink-2); }
.tm-pg-stats b { display: block; font-family: var(--font-num); font-size: 30px; line-height: 1.3; font-weight: 500; color: var(--base-deep); }
.tm-pg-stats b small { font-family: var(--font-sans); font-size: 12px; margin-left: 2px; }
.tm-pg-cols { column-count: 2; column-gap: 34px; }
.tm-pg-cols > * { break-inside: avoid; }
.tm-pg-ph { display: flex; align-items: center; justify-content: center; background: var(--base-soft); color: var(--ink); font-size: 12px; letter-spacing: .16em; }
.tm-pg-cap { margin: 6px 0 16px !important; font-size: 11px; color: var(--ink-2); }
.tm-pg-tag { position: absolute; top: 40px; right: 76px; padding: 3px 12px; border: 1px solid var(--base-deep); color: var(--base-deep); font-size: 12px; letter-spacing: .1em; }
.tm-pg-band { margin: -94px -76px 40px; padding: 34px 76px 26px; background: var(--base-tint); }
.tm-pg-band .tm-pg-title { margin: 0 0 6px; font-size: 26px; }
.tm-pg-mk { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; letter-spacing: .08em; color: var(--ink); }
.tm-pg-mk img { width: 30px; height: 30px; }
/* 送り状（ビジネス文書） */
.tm-pg-date { text-align: right; }
.tm-pg-to { margin-top: 26px !important; }
.tm-pg-from { text-align: right; margin-bottom: 40px !important; }
.tm-pg-subject { margin: 0 0 30px !important; text-align: center; font-size: 16px; font-weight: 500; color: var(--base-deep); }
.tm-pg-close { text-align: right; }
/* 申込書（別紙） */
.tm-pg-form { margin: 18px 0; }
.tm-pg-form div { display: grid; grid-template-columns: 9em 1fr; padding: 13px 4px 7px; border-bottom: 1px solid var(--ink-3); font-size: 12.5px; color: var(--ink-2); }
/* 表紙・裏表紙 */
.tm-pg--cover { padding: 0; }
.tm-pg--cover .tm-pg__no, .tm-pg--back .tm-pg__no { display: none; }
.tm-pg-cv { flex: 1 1 auto; display: flex; flex-direction: column; padding: 76px; }
.tm-pg-cv--deep { background: var(--base-deep); color: var(--on-base-deep); }
.tm-pg-cv--deep .tm-pg-title, .tm-pg-cv--deep .tm-pg-km, .tm-pg-cv--deep .tm-pg-org, .tm-pg-cv--deep .tm-pg-sub, .tm-pg-cv--deep .tm-pg-mk { color: var(--on-base-deep); }
.tm-pg-cv .tm-pg-title { font-size: 42px; line-height: 1.45; }
.tm-pg-cv__foot { margin-top: auto; display: flex; justify-content: space-between; align-items: flex-end; font-size: 12px; }
.tm-pg-accent { display: block; width: 48px; height: 4px; background: var(--accent); margin: 0 0 26px; }
.tm-pg--back { justify-content: flex-end; }
.tm-pg-back { padding-top: 24px; border-top: 1px solid var(--rule); font-size: 12px; line-height: 1.9; color: var(--ink-2); display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: end; }
.tm-pg-qr { width: 84px; height: 84px; border: 1px solid var(--rule); display: flex; align-items: center; justify-content: center; font-size: 11px; color: var(--ink-3); }

/* ---------- 会議資料（M1〜M5）：.tm-pg--meet ----------
   白黒の複写で配られる前提。色は地・深の文字と罫だけにし、意味を色で持たせない（差し色・面の色は使わない）。
   線は使い所を絞る：題の下（.tm-pg-by）・日時と出席の囲み（上下だけ）・表の上下と見出し行・署名欄と記入欄。行ごとの区切り線は引かず、余白で分ける。
   左上に会議名（柱）、右上に資料番号（.tm-pg-tag）、下中央にノンブル。 */
.tm-pg--meet { font-size: 13px; line-height: 1.85; }
.tm-pg--meet p { margin: 0 0 .55em; }
.tm-pg--meet .tm-pg-h { margin: 14px 0 8px; padding-bottom: 0; border-bottom: 0; font-size: 14.5px; }
.tm-pg--meet .tm-pg-pt { margin: 8px 0 2px !important; }
.tm-pg--meet .tm-pg-tbl { margin: 2px 0 8px; font-size: 12px; line-height: 1.6; }
.tm-pg--meet .tm-pg-tbl { border-top-width: 1px; border-bottom-width: 1px; }
.tm-pg--meet .tm-pg-tbl th, .tm-pg--meet .tm-pg-tbl td { padding: 5px 10px; border-bottom: 0; }
.tm-pg--meet .tm-pg-tbl thead th { border-bottom: 1px solid var(--rule); }
.tm-pg--meet .tm-pg-tbl tr.sum td { border-top: 1px solid var(--rule); }
.tm-pg--meet .tm-pg-note { margin-bottom: 12px !important; }
.tm-pg--meet .tm-pg-toch { margin: 22px 0 8px !important; }
.tm-pg__run--l { left: 76px; right: auto; }
.tm-pg--meet .tm-pg-tag { border-color: var(--ink); color: var(--ink); }
.tm-pg-chead { text-align: center; margin: 4px 0 28px; }
.tm-pg-chead .tm-pg-org { margin: 0 0 8px !important; }
.tm-pg-ctitle { margin: 0; font-size: 23px; line-height: 1.5; font-weight: 500; color: var(--base-deep); letter-spacing: .04em; }
.tm-pg-csub { margin: 10px 0 0 !important; font-size: 17px; font-weight: 500; letter-spacing: .5em; text-indent: .5em; color: var(--ink); }
.tm-pg-meta { margin: 0 0 28px; padding: 8px 0; border-top: 1px solid var(--ink-3); border-bottom: 1px solid var(--ink-3); font-size: 12.5px; line-height: 1.8; }
.tm-pg-meta div { display: grid; grid-template-columns: 7.5em 1fr; gap: 14px; padding: 4px 4px; }
.tm-pg-meta dt { color: var(--base-deep); }
.tm-pg-meta dd { margin: 0; }
/* 議事次第の議事の一覧：番号・議事・担当・資料番号 */
.tm-pg-ag { margin: 0 0 22px; padding: 0; list-style: none; }
.tm-pg-ag li { display: grid; grid-template-columns: 2em 1fr 10em 3.4em; gap: 12px; align-items: baseline; padding: 4px 4px; line-height: 1.7; }
.tm-pg-ag li > b { font-family: var(--font-num); font-weight: 500; color: var(--base-deep); }
.tm-pg-ag li > span:nth-child(3) { font-size: 12px; color: var(--ink-2); }
.tm-pg-ag li > span:nth-child(4) { font-size: 12px; text-align: right; font-family: var(--font-num); }
.tm-pg-ag li.is-head { padding-top: 0; padding-bottom: 6px; font-size: 11px; color: var(--ink-2); }
.tm-pg-ag li.is-head > span { color: var(--ink-2) !important; font-size: 11px !important; font-family: inherit !important; }
.tm-pg-ag li.is-group { margin-top: 10px; }
.tm-pg-ag li.is-group > span:nth-child(2) { font-weight: 500; }
.tm-pg-ag li.is-group + li.is-item, .tm-pg-ag li.is-sub + li.is-item { margin-top: 10px; }
.tm-pg-ag li.is-sub > span:nth-child(2) { padding-left: 1em; }
.tm-pg-docs { margin: 0; padding: 0; list-style: none; columns: 2; column-gap: 34px; font-size: 12px; line-height: 2; }
/* 議案書・報告の見出し */
.tm-pg-agt { margin: 0 0 4px !important; font-size: 12px; color: var(--ink-2); letter-spacing: .08em; }
.tm-pg-atitle { margin: 0 0 12px; font-size: 21px; line-height: 1.55; font-weight: 500; color: var(--base-deep); }
.tm-pg-by { margin: 0 0 22px !important; padding-bottom: 10px; border-bottom: 1.5px solid var(--base-deep); display: flex; flex-wrap: wrap; gap: 4px 1.8em; font-size: 12.5px; color: var(--ink-2); }
/* 議事録 */
.tm-pg-ms { margin: 20px 0 6px; font-size: 14px; font-weight: 500; color: var(--base-deep); }
.tm-pg-mi { margin: 12px 0 4px !important; font-weight: 500; }
.tm-pg-res { margin: 4px 0 12px !important; padding-left: 1em; font-weight: 500; }
.tm-pg-cert { margin: 26px 0 0 !important; text-indent: 1em; }
.tm-pg-sign { width: 68%; margin: 10px 0 0 auto; }
.tm-pg-sign > p { margin: 0 !important; text-align: right; }
.tm-pg-sign > div { display: grid; grid-template-columns: 9em 1fr 32px; gap: 10px; align-items: end; padding: 18px 0 6px; border-bottom: 1px solid var(--ink-3); }
.tm-pg-sign > div > span:first-child { font-size: 12px; color: var(--ink-2); }
.tm-pg-seal { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: 1px solid var(--ink-3); border-radius: 50%; font-size: 10.5px; color: var(--ink-3); font-style: normal; }
/* 招集通知（記書き）と出欠回答・委任状 */
.tm-pg-ki { margin: 16px 0 12px !important; text-align: center; }
.tm-pg-kl { margin: 0; padding: 0; list-style: none; }
.tm-pg-kl li { display: grid; grid-template-columns: 7em 1fr; gap: 12px; padding: 4px 0; }
.tm-pg-ijo { margin: 10px 0 0 !important; text-align: right; }
.tm-pg-reply { border: 1px solid var(--ink); padding: 26px 32px 22px; }
.tm-pg-reply + .tm-pg-reply { margin-top: 28px; }
.tm-pg-reply h3 { margin: 0 0 16px; text-align: center; font-size: 17px; font-weight: 500; letter-spacing: .4em; text-indent: .4em; color: var(--ink); }
.tm-pg-reply .tm-pg-form { margin: 14px 0 0; }
.tm-pg-reply .tm-pg-form div { grid-template-columns: 8em 1fr auto; align-items: end; }
.tm-pg-opts { display: flex; flex-wrap: wrap; gap: 10px 2.4em; margin: 10px 0 4px !important; padding-left: 1em; }
.tm-pg-ck { display: inline-flex; align-items: center; gap: 8px; }
.tm-pg-ck::before { content: ""; flex: none; width: 13px; height: 13px; border: 1px solid var(--ink); }
.tm-pg-blank { display: inline-block; min-width: 12em; border-bottom: 1px solid var(--ink-3); margin: 0 .4em; }
/* 資料一式（M1）：表紙・部と委員会の一覧・議案の提出者・新旧対照表 */
.tm-pg-mcover { flex: 1 1 auto; display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: 190px; }
.tm-pg-mcover .tm-pg-ctitle { font-size: 34px; }
.tm-pg-mcover .tm-pg-csub { font-size: 20px; margin: 18px 0 64px !important; }
.tm-pg-mcover .tm-pg-meta { width: 74%; text-align: left; }
.tm-pg-mcover__foot { margin-top: auto; display: flex; flex-direction: column; align-items: center; }
.tm-pg-subby { margin: -2px 0 10px !important; font-size: 12px; color: var(--ink-2); }
.tm-pg-tbl--dept td { padding-top: 6px; padding-bottom: 6px; }
.tm-pg--meet .tm-pg-tbl--dept tr.is-grp td { border-top: 1px solid var(--rule); }
.tm-pg--meet .tm-pg-tbl--dept tbody tr:first-child td { border-top: 0; }
.tm-pg-tbl--dept td.dept { width: 30%; color: var(--base-deep); }
.tm-pg-tbl--dept td.dept small { display: block; font-size: 10.5px; color: var(--ink-2); }
.tm-pg-tbl--diff td { width: 50%; }
.tm-pg-tbl--diff td + td { padding-left: 18px; }
.tm-pg--meet .tm-pg-tbl--diff tbody tr + tr td { border-top: 1px solid var(--rule-soft); }
.tm-pg-tbl--diff u { text-decoration-thickness: 1px; text-underline-offset: 3px; }


/* ---------- オプション：SNSアイコン・日臨内サイトへのリンク ---------- */
/* アイコンの枠は仮置き。実装時は各社の公式ブランド素材（単色版が使える場合は単色版）に差し替える */
.tm-snsrow { display: inline-flex; align-items: center; gap: 8px; }
.tm-snsrow__l { font-size: 11px; letter-spacing: .14em; color: var(--ink-3); margin-right: 4px; }
.tm-snsico { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--rule-strong); font-family: var(--font-num); font-size: 8.5px; letter-spacing: .02em; color: var(--ink) !important; text-decoration: none !important; flex: none; }
.tm-snsico:hover { background: var(--ink); color: var(--paper) !important; }
.tm-homelink { font-size: 13px; letter-spacing: .06em; color: var(--ink-2) !important; text-decoration: none !important; white-space: nowrap; }
.tm-homelink::after { content: "\2197"; margin-left: .35em; font-size: .9em; }
.tm-homelink:hover { color: var(--accent) !important; text-decoration: underline !important; }
.tm-hd__opt { display: flex; align-items: center; gap: 14px; padding-left: 16px; border-left: 1px solid var(--rule); margin: auto 0; height: 30px; flex: none; }
.tm-hd__in .tm-snsrow__l { display: none; }
.tm-hd--center .tm-hd__in { position: relative; }
.tm-hd--center .tm-hd__opt { position: absolute; right: var(--space-5); top: var(--space-5); border-left: 0; padding-left: 0; }
.tm-util .tm-hd__opt { height: auto; border-left-color: var(--rule); }
.tm-util__in > .tm-hd__opt:first-child { border-left: 0; padding-left: 0; }
.tm-hd__act .tm-hd__opt { border-left: 0; padding-left: 0; padding-right: 16px; border-right: 1px solid var(--rule); }
.tm-util .tm-snsico { width: 24px; height: 24px; font-size: 7.5px; }
.tm-hd--overlay .tm-hd__opt { border-left-color: rgba(255,255,255,.35); }
.tm-hd--overlay .tm-snsico { border-color: rgba(255,255,255,.7); color: #fff !important; }
/* 公式SNSのアイコン（各社の公式配布データをそのまま表示）：PCは28px、スマホは40px。間はアイコン幅の1/2以上 */
.tm-snsrow { gap: 14px; }
.tm-snsico, .tm-util .tm-snsico, .tm-hd--overlay .tm-snsico { width: 22px; height: 22px; border: 0; padding: 0; background: none !important; font-size: 0; }
.tm-snsico img { display: block; width: 100%; height: 100%; object-fit: contain; }
.tm-snsico:hover { opacity: .8; }
.tm-hd--overlay .tm-homelink { color: #fff !important; }
.tm-ft__opt { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-4); margin-top: var(--space-7); margin-bottom: var(--space-3); padding-top: var(--space-4); border-top: 1px solid var(--rule); }
.tm-ft--simple .tm-ft__opt { margin: 0; padding: 0; border: 0; gap: var(--space-5); }
.tm-ft--formal .tm-ft__opt { justify-content: center; gap: var(--space-6); margin: var(--space-6) 0; }
.tm-side .tm-ft__opt, .tm-sheet-full .tm-ft__opt, .tm-drawer .tm-ft__opt { margin-top: var(--space-4); padding-top: var(--space-3); justify-content: flex-start; }


/* ==========================================================================
   区切りの方針（2026-10-25）：まず余白、次に淡い面（wash / base-tint）、罫は最後の手段。
   横線は禁止ではない。必要な所（一覧の行・FAQ・表・フッターの規約欄・メニュー）には、薄いグレーの1px（rule-soft / rule）を使う。
   黒い太罫で節を区切ること、罫を重ねること、面と罫を二重に使うことはしない。
   ========================================================================== */
.tm-sh { border-top: 0; padding-top: 0; }
.tm-sh__title { font-size: 26px; }
.tm-sh--rule { border-top: 1px solid var(--rule); padding-top: var(--space-5); }
.tm-sh--thin { border-top: 0; }
.tm-prose h2 { border-top: 0; padding-top: 0; }
.tm-prose h2::before { content: ""; display: block; width: 28px; border-top: 2px solid var(--base-deep); margin-bottom: var(--space-4); }
.tm-sh--thin .tm-sh__title { font-size: 19px; }
.tm-index { border-top: 0; display: grid; gap: var(--space-7); }
.tm-index li { border-bottom: 0; padding: 0; }
.tm-cols > div { border-top: 0; padding-top: 0; }
.tm-cols > div::before { content: ""; display: block; width: 28px; border-top: 2px solid var(--base-deep); margin-bottom: var(--space-4); }
.tm-alt > div + div { border-top: 0; }
.tm-deflist { border-top: 0; display: grid; gap: var(--space-6); }
.tm-deflist div { border-bottom: 0; padding: 0; }
.tm-spec { border-top: 0; background: var(--wash); padding: var(--space-5) var(--space-6); display: grid; gap: var(--space-3); }
.tm-spec div { border-bottom: 0; padding: 0; }
.tm-news { border-top: 0; }
.tm-news li { border-bottom: 1px solid var(--rule-soft); }
.tm-news a { padding: 12px 0; }
.tm-news--thumb li + li { margin-top: var(--space-4); }
.tm-card { border-top: 0; padding-top: 0; }
.tm-card--dl { border-top: 0; background: var(--wash); padding: 14px 18px; }
.tm-card--dl + .tm-card--dl { margin-top: 6px; }
.tm-faq { border-top: 0; }
.tm-faq details { border-bottom: 1px solid var(--rule-soft); }
.tm-table thead th { border-top: 0; }
.tm-table th, .tm-table td { border-bottom-color: var(--rule-soft); }
.tm-table thead th { border-bottom-color: var(--rule); }
.tm-ft, .tm-ft--simple, .tm-ft--formal { border-top: 0; background: var(--wash); }
.tm-ft__legal { border-top: 1px solid var(--rule); margin-top: var(--space-7); padding-top: var(--space-4); }
.tm-ft--formal .tm-ft__nav { border-top: 0; padding-top: 0; }
.tm-ft__opt { border-top: 0; padding-top: 0; }
.tm-ft-links { border-top: 0; background: var(--paper); }
.tm-pt--rule .tm-pt__in, .tm-pt--meta .tm-pt__in { border-bottom: 0; }
.tm-hero--event .tm-hero__in { border-bottom: 0; }
.tm-entry { border-top: 0; gap: 8px; }
.tm-entry a, .tm-entry a + a { border: 0; background: var(--wash); padding: var(--space-4); }
.tm-cta--row .tm-cta__in { border-top: 0; background: var(--base-tint); padding: var(--space-7); }
.tm-cta--two .tm-cta__in { border-top: 0; gap: var(--space-4); }
.tm-cta--two .tm-cta__cell, .tm-cta--two .tm-cta__cell + .tm-cta__cell { border: 0; background: var(--wash); padding: var(--space-7); }
.tm-cta--contact .tm-cta__in { border: 0; gap: var(--space-4); }
.tm-cta--contact .tm-cta__cell, .tm-cta--contact .tm-cta__cell + .tm-cta__cell { border: 0; background: var(--wash); padding: var(--space-5) var(--space-6); }
.tm-postnav { border: 0; gap: 8px; }
.tm-postnav a, .tm-postnav a + a { border: 0; background: var(--wash); padding: var(--space-4) var(--space-5); }
.tm-mega__col h4 { border-bottom: 0; padding-bottom: 0; }
.tm-sheet-full li { border-bottom: 1px solid var(--rule-soft); }
.tm-drawer a.tm-drawer__a { border-bottom: 1px solid var(--rule-soft); }
.tm-drawer__top { border-bottom: 0; }
.tm-field { border-bottom: 0; padding-bottom: 0; }
.tm-logos { border: 0; gap: 8px; }
.tm-logos > * { border: 0; background: var(--wash); }
.tm-event__side { border-top: 0; background: var(--base-tint); padding: var(--space-5); }
.tm-login { border-top: 0; }
.tm-side .tm-brand { border-bottom: 0; }
.tm-side__foot { border-top: 0; }
.tm-mega { border-bottom: 0; background: var(--wash); }



/* ---------- 表の横スクロール ----------
   表は .tm-table-wrap で包む。幅が足りない時は横にスクロールさせ、案内とスクロールバーで「横に動かせる」ことを示す。 */
.tm-table-wrap { position: relative; }
.tm-table-wrap__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: var(--rule) transparent; }
.tm-table-wrap__scroll::-webkit-scrollbar { height: 6px; }
.tm-table-wrap__scroll::-webkit-scrollbar-thumb { background: var(--rule); }
.tm-table-hint { display: none; align-items: center; gap: 8px; margin: 0 0 var(--space-2); font-size: 12px; letter-spacing: .06em; color: var(--ink-3); }
.tm-table-hint::after { content: "\2192"; display: inline-block; color: var(--base-deep); animation: tm-nudge 1.6s ease-in-out infinite; }
.tm-table-wrap.is-scrollable .tm-table-hint { display: flex; }
.tm-table-wrap.is-scrollable .tm-table-wrap__scroll { padding-bottom: 6px; }
.tm-table-wrap.is-end .tm-table-hint { opacity: .45; }
.tm-table-wrap.is-fit .tm-table-hint { display: none !important; }
@keyframes tm-nudge { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(5px); } }
@media (prefers-reduced-motion: reduce) { .tm-table-hint::after { animation: none; } }

/* ---------- 動き（画像の現れ方・パララックス） ----------
   TM.motion（bundle.js ／ サイトでは tm-motion.js）が tm-motion クラスを付けた後だけ効く。
   ・文字のまとまり：16px 下から、1秒かけて静かに現れる（兄弟要素は70msずつずらす）
   ・画像：かぶせた紙色の幕が下へ引かれ、上から下へ現れる（1.2秒）
   ・パララックス：写真全面・写真帯の写真が、スクロールより少し遅れて動く（最大で高さの8%） */
.tm-motion .tm-rv { opacity: 0; transform: translate3d(0, 16px, 0); transition: opacity 1s cubic-bezier(.2, .65, .2, 1), transform 1s cubic-bezier(.2, .65, .2, 1); }
.tm-motion .tm-rv.is-in { opacity: 1; transform: none; }
.tm-motion .tm-rv-img { position: relative; }
.tm-motion .tm-rv-img::after { content: ""; position: absolute; inset: 0; background: var(--paper); transform-origin: 50% 100%; transition: transform 1.2s cubic-bezier(.7, 0, .2, 1); pointer-events: none; }
.tm-motion .tm-rv-img.is-in::after { transform: scaleY(0); }
.tm-hero--photo, .tm-overlay, .tm-pt--photo { overflow: hidden; }
.tm-hero--photo > .tm-ph, .tm-overlay > .tm-ph, .tm-pt--photo > .tm-ph, .tm-hero--photo > .tm-media, .tm-overlay > .tm-media, .tm-pt--photo > .tm-media, .tm-hero__bg > .tm-ph, .tm-hero__bg > img { will-change: transform; transform: scale(1.18); }
.tm-media { margin: 0; overflow: hidden; }
.tm-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (prefers-reduced-motion: reduce) {
  .tm-motion .tm-rv { opacity: 1 !important; transform: none !important; transition: none !important; }
  .tm-motion .tm-rv-img::after { display: none !important; }
}

/* ---------- 見本カード用 ---------- */
.tm-demo { padding: var(--space-6) var(--space-5); }
.tm-demo__tag { font-size: 11px; letter-spacing: .16em; color: var(--ink-3); margin-bottom: var(--space-3); display: block; font-family: var(--font-num); }
.tm-demo + .tm-demo { border-top: 1px dashed var(--rule); }
.tm-swatches { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; background: var(--rule); border: 1px solid var(--rule); }
.tm-swatch { background: var(--paper); padding: var(--space-4); display: flex; flex-direction: column; gap: var(--space-3); }
.tm-swatch__chips { display: grid; grid-template-columns: 1fr 1fr 2fr 1fr .6fr; height: 44px; }
.tm-swatch__chips i:nth-child(1) { background: var(--base-tint); }
.tm-swatch__chips i:nth-child(2) { background: var(--base-soft); }
.tm-swatch__chips i:nth-child(3) { background: var(--base-deep); }
.tm-swatch__chips i:nth-child(4) { background: var(--accent); }
.tm-swatch__chips i:nth-child(5) { background: var(--sub); }
.tm-swatch__name { display: flex; justify-content: space-between; align-items: baseline; }
.tm-swatch__name strong { font-size: 18px; font-weight: 500; letter-spacing: .1em; color: var(--base-deep); }
.tm-swatch__name span { font-family: var(--font-num); font-size: 11px; color: var(--ink-3); letter-spacing: .08em; }
.tm-swatch p { font-size: 12.5px; color: var(--ink-2); line-height: 1.7; min-height: 3.4em; }
.tm-swatch__ui { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--rule); padding-top: var(--space-3); }
.tm-tones { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--rule); border: 1px solid var(--rule); }
.tm-tones > div { background: var(--paper); padding: var(--space-6) var(--space-5); display: flex; flex-direction: column; gap: var(--space-3); }


/* ----------
   規約・方針ページ（LegalPage）
   ---------- */
.tm-legal { max-width: var(--container); margin: 0 auto; padding: var(--space-7) var(--space-5) var(--space-10); display: grid; grid-template-columns: 240px minmax(0, 760px); gap: var(--space-9); }
.tm-legal__toc { position: sticky; top: calc(var(--header-h, 68px) + 24px); align-self: start; font-size: 13.5px; }
.tm-legal__toc p { margin: 0 0 var(--space-3); font-size: 12px; letter-spacing: .14em; color: var(--ink-3); }
.tm-legal__toc ol { counter-reset: lg; }
.tm-legal__toc li { counter-increment: lg; }
.tm-legal__toc a { display: grid; grid-template-columns: 2em 1fr; padding: 7px 0; color: var(--ink-2) !important; text-decoration: none !important; line-height: 1.6; }
.tm-legal__toc a::before { content: counter(lg); font-family: var(--font-num); color: var(--base-deep); }
.tm-legal__toc a:hover { color: var(--base-deep) !important; }
.tm-legal__toc li + li { border-top: 1px solid var(--rule-soft); }
.tm-legal__body { font-size: 15.5px; line-height: 2; }
.tm-legal__body > p:first-child { color: var(--ink-2); }
.tm-legal__body h2 { margin: var(--space-9) 0 var(--space-5); font-size: 20px; font-weight: 500; letter-spacing: .04em; line-height: 1.6; color: var(--ink); }
.tm-legal__body h2::before { content: ""; display: block; width: 28px; border-top: 2px solid var(--base-deep); margin-bottom: var(--space-4); }
.tm-legal__body h3 { margin: var(--space-7) 0 var(--space-3); font-size: 16.5px; font-weight: 600; }
.tm-legal__body p + p { margin-top: var(--space-4); }
.tm-legal__body ol, .tm-legal__body ul { margin: var(--space-4) 0; padding-left: 1.6em; }
.tm-legal__body ol { list-style: decimal; }
.tm-legal__body ul { list-style: disc; }
.tm-legal__body li + li { margin-top: var(--space-2); }
.tm-legal__body .tm-table-wrap { margin: var(--space-5) 0; }
.tm-legal__dates { margin-top: var(--space-9) !important; padding-top: var(--space-5); border-top: 1px solid var(--rule-soft); font-size: 13.5px; color: var(--ink-2); text-align: right; line-height: 1.9; }
.tm-legal__contact { margin-top: var(--space-6); padding: var(--space-5) var(--space-6); background: var(--wash); font-size: 14px; line-height: 1.9; }
.tm-legal__contact b { display: block; margin-bottom: var(--space-2); font-weight: 600; }
.tm-legal-links { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 13px; }
.tm-legal-links a { color: var(--ink-2) !important; }

/* ----------
   スライドショー動画（TM.vs・slideshow.js）
   ---------- */
.tm-vs { position: relative; width: var(--vs-w, 1920px); height: var(--vs-h, 1080px); overflow: hidden; background: var(--paper); }
.tm-vs__slide { position: absolute; inset: 0; background: var(--sheet); padding: 120px 160px; display: flex; flex-direction: column; overflow: hidden; }
.tm-vs__slide--paper { background: var(--paper); }
.tm-vs__slide--deep { background: var(--base-deep); color: var(--on-base-deep); }
.tm-vs__slide--photo { padding: 0; }
.tm-vs__slide--photo > .tm-ph, .tm-vs__slide--photo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tm-vs-mk { display: inline-flex; align-items: center; gap: 18px; font-size: 26px; letter-spacing: .06em; }
.tm-vs-mk img { width: 64px; height: 64px; }
.tm-vs-lb { font-size: 30px; letter-spacing: .14em; color: var(--base-deep); font-weight: 500; }
.tm-vs__slide--deep .tm-vs-lb { color: var(--on-base-deep); opacity: .85; }
.tm-vs-title { margin: 28px 0 0; font-size: 96px; line-height: 1.4; font-weight: 600; letter-spacing: .04em; }
.tm-vs-h { margin: 0 0 56px; font-size: 64px; line-height: 1.45; font-weight: 600; letter-spacing: .04em; }
.tm-vs-lead { font-size: 38px; line-height: 1.8; color: var(--ink-2); max-width: 26em; }
.tm-vs-list { display: grid; gap: 36px; font-size: 42px; line-height: 1.6; }
.tm-vs-list > * { display: grid; grid-template-columns: 1.6em 1fr; gap: 20px; }
.tm-vs-list b { font-family: var(--font-num); color: var(--accent); font-weight: 500; }
.tm-vs-num { font-family: var(--font-num); font-size: 220px; line-height: 1; font-weight: 300; color: var(--accent); font-variant-numeric: tabular-nums; }
.tm-vs-bars { display: grid; gap: 30px; font-size: 34px; }
.tm-vs-bars > div { display: grid; grid-template-columns: 9em 1fr 4em; gap: 28px; align-items: center; }
.tm-vs-bars i { display: block; height: 30px; background: var(--base-soft); }
.tm-vs-bars i.is-key { background: var(--accent); }
.tm-vs-bars span:last-child { text-align: right; font-family: var(--font-num); }
.tm-vs-mark { background-image: linear-gradient(var(--accent-tint, var(--base-tint)), var(--accent-tint, var(--base-tint))); background-image: linear-gradient(color-mix(in srgb, var(--accent) 28%, transparent), color-mix(in srgb, var(--accent) 28%, transparent)); background-repeat: no-repeat; background-position: 0 88%; background-size: 0 0.36em; }
.tm-vs-rule { display: block; width: 96px; height: 4px; background: var(--accent); margin: 0 0 40px; }
.tm-vs-foot { position: absolute; left: 160px; right: 160px; bottom: 56px; display: flex; justify-content: space-between; font-size: 22px; color: var(--ink-3); }
.tm-vs-plate { position: absolute; left: 0; bottom: 120px; background: var(--paper); padding: 48px 72px 48px 160px; max-width: 1100px; }

/* ----------
   縦のリズム（部品で余白を決めていない所の既定。詳細度0なので部品の指定が常に優先）
   ---------- */
:where(.tm) :where(h3, h4, .tm-h3, .tm-card__t) + :where(p, ul, ol, dl, .tm-lead, .tm-spec, .tm-tx) { margin-top: var(--space-3); }
:where(.tm) :where(h2, .tm-h2) + :where(p, ul, ol, dl, .tm-lead, .tm-spec, .tm-tx) { margin-top: var(--space-4); }
:where(.tm) :where(h1, .tm-h1, .tm-display) + :where(p, ul, ol, dl, .tm-lead, .tm-spec, .tm-tx) { margin-top: var(--space-5); }
:where(.tm) :where(.tm-label, .tm-card__k, .tm-sh__no) + :where(h1, h2, h3, h4, .tm-h1, .tm-h2, .tm-h3, .tm-display, .tm-card__t, p) { margin-top: var(--space-2); }
:where(.tm) :where(p, ul, ol, dl) + :where(p, ul, ol, dl) { margin-top: var(--space-3); }
:where(.tm) :where(.tm-km) + :where(*) { margin-top: var(--space-4); }
:where(.tm) :where(.tm-muted, time) + :where(h1, h2, .tm-h1, .tm-h2) { margin-top: var(--space-3); }
/* 折り返す横並び（リンク列・ボタン列）は、折り返した時の行間も確保する */
.tm-ft__legal, .tm-util__in, .tm-ft--simple .tm-ft__in, .tm-hero__acts, .tm-auth__foot, .tm-ar-foot, .tm-ar-tags, .tm-hd__opt, .tm-sh { row-gap: 12px; }
:where(.tm) :where(.tm-lead, p) + :where(.tm-hero__acts, .tm-btn, .tm-cta__acts) { margin-top: var(--space-6); }

/* ==========================================================================
   主メニューの下層（NavDropdown A〜D）：マウスを合わせる・Tab で入ると開く。
   開いた面は影で浮かせない。A・B は白い面に薄い線1px、C・D は淡い面。離れてから0.25秒は開いたまま。
   ========================================================================== */
.tm-dd__item { display: flex; align-items: stretch; position: relative; }
.tm-dd--c .tm-dd__item, .tm-dd--d .tm-dd__item { position: static; }
.tm-nav.tm-dd { gap: 20px; }
.tm-nav.tm-dd .tm-dd__top { letter-spacing: .05em; }
.tm-nav .tm-dd__top::after { content: ""; width: 5px; height: 5px; margin: 0 2px 3px 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); opacity: .55; flex: none; }
.tm-dd__item:hover > .tm-dd__top, .tm-dd__item:focus-within > .tm-dd__top, .tm-dd__item.is-open > .tm-dd__top { color: var(--ink) !important; }
.tm-dd__panel { position: absolute; top: 100%; z-index: 45; visibility: hidden; opacity: 0; transform: translateY(-4px); transition: opacity .18s ease, transform .18s ease, visibility 0s linear .25s; }
.tm-dd__item:hover > .tm-dd__panel, .tm-dd__item:focus-within > .tm-dd__panel, .tm-dd__item.is-open > .tm-dd__panel { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
.tm-dd__item.is-shut > .tm-dd__panel { visibility: hidden; opacity: 0; transition: none; }
.tm-nav .tm-dd__panel a { display: block; border-bottom: 0; margin-bottom: 0; white-space: normal; color: var(--ink) !important; letter-spacing: .04em; line-height: 1.6; }
.tm-nav .tm-dd__panel a:hover { color: var(--accent) !important; text-decoration: underline !important; text-underline-offset: 4px; }
.tm-nav .tm-dd__panel a[aria-current="page"] { color: var(--accent) !important; }
.tm-hd--overlay .tm-nav .tm-dd__panel a { color: var(--ink) !important; }
.tm-hd--overlay .tm-dd__item:hover > .tm-dd__top, .tm-hd--overlay .tm-dd__item:focus-within > .tm-dd__top, .tm-hd--overlay .tm-dd__item.is-open > .tm-dd__top { color: #fff !important; }
.tm-hd--overlay .tm-nav .tm-dd__panel a:hover { color: var(--accent) !important; }
.tm-dd__panel ul { list-style: none; margin: 0; padding: 0; }
/* A 縦一列 */
.tm-dd--a .tm-dd__panel, .tm-dd--b .tm-dd__panel { left: -20px; background: var(--sheet); border: 1px solid var(--rule); }
.tm-dd--a .tm-dd__item:nth-last-child(-n+2) > .tm-dd__panel, .tm-dd--b .tm-dd__item:nth-last-child(-n+2) > .tm-dd__panel { left: auto; right: -20px; }
.tm-dd--a .tm-dd__panel { min-width: 232px; padding: var(--space-3) 0; }
.tm-dd--a .tm-dd__panel a { font-size: 14px; padding: 10px var(--space-5); }
/* B 説明付き（2列） */
.tm-dd--b .tm-dd__panel { width: 540px; padding: var(--space-5) var(--space-6) var(--space-6); }
.tm-dd__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-4); margin: 0 0 var(--space-4); padding-bottom: var(--space-3); border-bottom: 1px solid var(--rule-soft); font-size: 12px; letter-spacing: .16em; color: var(--ink-3); }
.tm-nav .tm-dd__head a { display: inline; font-size: 13px; letter-spacing: .06em; color: var(--ink-2) !important; }
.tm-nav .tm-dd__head a::after { content: "\2192"; margin-left: .4em; }
.tm-dd__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4) var(--space-6); }
.tm-nav .tm-dd__grid a { padding: 0; }
.tm-dd__grid b { display: block; font-size: 14.5px; font-weight: 500; }
.tm-dd__grid span { display: block; margin-top: 4px; font-size: 12.5px; line-height: 1.6; color: var(--ink-3); letter-spacing: .02em; }
/* C 大型パネル（旧 大型メニュー型）・D 下段の帯：ヘッダーの幅いっぱいに開く */
.tm-dd--c .tm-dd__panel, .tm-dd--d .tm-dd__panel { left: 0; right: 0; border-top: 1px solid var(--rule); }
.tm-dd--c .tm-dd__panel { background: var(--wash); }
.tm-dd__wide { max-width: var(--container); margin: 0 auto; padding: 0 var(--space-5); }
.tm-dd__mega { display: grid; grid-template-columns: 1.15fr repeat(3, 1fr); gap: var(--space-7); padding-top: var(--space-7); padding-bottom: var(--space-8); }
.tm-dd__lead .tm-h2 { margin: var(--space-2) 0 var(--space-3); }
.tm-dd__leadtx { font-size: 14px; line-height: 1.85; color: var(--ink-2); margin: 0 0 var(--space-5); }
.tm-nav .tm-dd__lead a.tm-tx { display: inline-block; border-bottom: 1px solid var(--ink); padding-bottom: 2px; font-size: 14px; }
.tm-dd__colh { font-size: 12px; letter-spacing: .16em; color: var(--ink-3); margin: 0 0 var(--space-3); }
.tm-nav .tm-dd__col a { font-size: 14.5px; padding: 6px 0; }
.tm-dd--d .tm-dd__panel { background: var(--base-tint); }
.tm-dd__band { display: flex; align-items: center; gap: var(--space-7); min-height: 56px; }
.tm-nav .tm-dd__band .tm-dd__bandh { flex: none; font-size: 13px; letter-spacing: .1em; color: var(--base-deep) !important; padding-right: var(--space-6); border-right: 1px solid var(--rule); }
.tm-dd__band ul { display: flex; flex-wrap: wrap; gap: 6px var(--space-6); }
.tm-nav .tm-dd__band ul a { font-size: 14px; padding: 4px 0; }

/* ==========================================================================
   全画面のメニュー（MenuOverlay E）：MENU ボタンを押すと、サイトの全体を全画面で開く。PCでも主メニューを出さない。
   ========================================================================== */
/* 開いた画面は、いつも画面の縦横100%に収める（スクロールさせない）。文字と間隔は画面の高さに合わせて詰める。
   それでも溢れる時は TM.menu が段階的に詰める：is-fit1 間隔と文字 → is-fit2 規約類と下層の一部を省く → is-fit3 主メニューだけ → is-scroll（極端に低い画面の最後の手段） */
.tm-fm { position: fixed; inset: 0; z-index: 100; width: 100%; height: 100vh; height: 100dvh; box-sizing: border-box; display: flex; flex-direction: column; overflow: hidden; background: var(--paper); color: var(--ink); overscroll-behavior: contain; animation: tm-fmin .22s ease; }
.tm-fm[hidden] { display: none; }
.tm-fm.is-scroll { overflow-y: auto; }
@keyframes tm-fmin { from { opacity: 0; } to { opacity: 1; } }
.tm-fm__bar { flex: none; border-bottom: 1px solid var(--rule); }
.tm-fm__barin { max-width: var(--container); margin: 0 auto; padding: 0 var(--space-5); height: var(--header-height); display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); }
.tm-fm__barin > .tm-close { flex: none; white-space: nowrap; }
.tm-fm__barin > .tm-brand { min-width: 0; }
.tm-fm__in { flex: 1 1 auto; min-height: 0; width: 100%; max-width: var(--container); margin: 0 auto; box-sizing: border-box; display: flex; flex-direction: column; padding: clamp(20px, 7vh, 80px) var(--space-5) clamp(16px, 4vh, 44px); }
.tm-fm__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: clamp(18px, 5vh, 56px) clamp(24px, 3vw, 48px); align-content: start; margin-bottom: clamp(18px, 4vh, 48px); }
.tm-fm__grid:has(> :nth-child(6):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tm-fm__grid:has(> :nth-child(7)) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tm-fm__col { min-width: 0; }
.tm-fm__top { display: flex; align-items: baseline; gap: var(--space-3); padding-bottom: clamp(8px, 1.4vh, 12px); margin-bottom: clamp(10px, 1.9vh, 16px); border-bottom: 1px solid var(--rule); font-size: clamp(16px, 2.4vh, 19px); font-weight: 500; letter-spacing: .06em; color: var(--ink) !important; text-decoration: none !important; }
.tm-fm__top b { font-family: var(--font-num); font-size: 12px; font-weight: 400; letter-spacing: .08em; color: var(--base-deep); }
.tm-fm__top:hover { color: var(--accent) !important; }
.tm-fm__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(6px, 1.35vh, 12px); }
.tm-fm__col ul a { color: var(--ink-2) !important; text-decoration: none !important; font-size: clamp(13px, 1.85vh, 14.5px); letter-spacing: .04em; }
.tm-fm__col ul a:hover { color: var(--accent) !important; text-decoration: underline !important; text-underline-offset: 4px; }
.tm-fm__home { display: none; }
.tm-fm__foot { flex: none; margin-top: auto; padding-top: clamp(14px, 2.6vh, 24px); border-top: 1px solid var(--rule-soft); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-4) var(--space-5); }
.tm-fm__acts { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.tm-fm__legal { display: flex; flex-wrap: wrap; gap: 8px var(--space-5); font-size: 12.5px; }
.tm-fm__legal a { color: var(--ink-3) !important; text-decoration: none !important; }
.tm-fm__legal a:hover { color: var(--ink) !important; text-decoration: underline !important; }
.tm-fm.is-fit1 .tm-fm__in { padding-top: 16px; padding-bottom: 12px; }
.tm-fm.is-fit1 .tm-fm__grid { gap: 14px 28px; margin-bottom: 14px; }
.tm-fm.is-fit1 .tm-fm__top { font-size: 15px; padding-bottom: 6px; margin-bottom: 8px; }
.tm-fm.is-fit1 .tm-fm__col ul { gap: 4px; }
.tm-fm.is-fit1 .tm-fm__col ul a { font-size: 12.5px; }
.tm-fm.is-fit1 .tm-fm__foot { padding-top: 10px; }
.tm-fm.is-fit2 .tm-fm__legal { display: none; }
.tm-fm.is-fit2 .tm-fm__col li:nth-child(n+5) { display: none; }
.tm-fm.is-fit3 .tm-fm__col ul { display: none !important; }
.tm-fmbtn { margin-left: var(--space-5); }
.tm-hd--overlay .tm-fmbtn { color: #fff; }
.tm-hd--center .tm-fmbtn { position: absolute; right: var(--space-5); top: 50%; transform: translateY(-50%); margin: 0; }
.tm-hd--center .tm-hd__in:has(.tm-fmbtn) .tm-hd__opt { right: auto; left: var(--space-5); }
html.tm-lock, html.tm-lock body { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .tm-fm { animation: none; } .tm-dd__panel { transition: none !important; transform: none !important; } }

/* ==========================================================================
   左にサブメニューを置く下層ページ（LocalNav・L16）：左にカテゴリ内のページ、右に本文。
   現在のページは文字を濃くし、左に差し色の短い線。スマホではサブメニューを本文の後ろへ。
   ========================================================================== */
.tm-localpage { max-width: var(--container); margin: 0 auto; padding: var(--space-7) var(--space-5) var(--space-10); display: grid; grid-template-columns: 236px minmax(0, 1fr); gap: var(--space-9); align-items: start; }
.tm-local { position: sticky; top: calc(var(--header-height) + var(--space-5)); }
.tm-local__h { margin: 0 0 var(--space-4); }
.tm-local__h .tm-label { display: block; margin-bottom: var(--space-2); }
.tm-local__h a { font-size: 18px; font-weight: 600; letter-spacing: .06em; color: var(--ink) !important; text-decoration: none !important; }
.tm-local__h a:hover { color: var(--accent) !important; }
.tm-local__list, .tm-local__list ul { list-style: none; margin: 0; padding: 0; }
.tm-local__list { border-top: 1px solid var(--rule-soft); }
.tm-local__list > li { border-bottom: 1px solid var(--rule-soft); }
.tm-local__list a { position: relative; display: block; padding: 12px 0 12px var(--space-4); color: var(--ink-2) !important; text-decoration: none !important; font-size: 14.5px; line-height: 1.6; letter-spacing: .04em; }
.tm-local__list a:hover { color: var(--ink) !important; text-decoration: underline !important; text-underline-offset: 4px; }
.tm-local__list a[aria-current="page"] { color: var(--ink) !important; font-weight: 600; }
.tm-local__list a[aria-current="page"]::before { content: ""; position: absolute; left: 0; top: 50%; width: 3px; height: 1.1em; transform: translateY(-50%); background: var(--accent); }
.tm-local__list ul { margin: -6px 0 var(--space-3); }
.tm-local__list ul a { padding: 6px 0 6px calc(var(--space-4) * 2); font-size: 13.5px; }
.tm-local__list ul a[aria-current="page"]::before { left: var(--space-4); }
.tm-localpage__main { min-width: 0; max-width: var(--container-narrow); }
.tm-localpage__main > .tm-h1 { margin-bottom: var(--space-6); }


/* ナロー版の下層ページ（左のサブメニューを置かない時）：見出し帯・パンくず・本文・表・カードを、特設記事の柱と同じ 860px の一本の柱にそろえる。
   ヘッダーとフッターは標準の幅のまま。本文の行長は約50字（特設記事と同じ） */
.tm-page--narrow { --container: var(--container-mid, 860px); --container-narrow: var(--container-mid, 860px); }
.tm-page--narrow .tm-cards { grid-template-columns: repeat(2, 1fr); }

/* ===== v1.10 日臨内サイトの試作（japha.jp/new）から取り入れた部品 ===== */
/* Steps：手順。A 縦の手順（STEP と番号＋題＋説明）、B 横の流れ（頭に短い差し罫） */
.tm-steps { list-style: none; margin: 0; padding: 0; }
.tm-steps > li { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: var(--space-3) var(--space-5); padding: var(--space-5) 0; border-bottom: 1px solid var(--rule-soft); }
.tm-steps__no { grid-row: span 2; font-family: var(--font-num); font-size: 11px; letter-spacing: .18em; color: var(--base-deep); line-height: 1.2; padding-top: 2px; }
.tm-steps__no b { display: block; font-size: 30px; font-weight: 300; letter-spacing: .02em; line-height: 1.1; margin-top: 2px; }
.tm-steps__t { margin: 0; font-size: 17px; font-weight: 600; letter-spacing: .04em; line-height: 1.6; }
.tm-steps__b { margin: 0; font-size: 15px; color: var(--ink-2); line-height: 1.85; }
.tm-steps--row { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--space-6); }
.tm-steps--row > li { display: block; padding: var(--space-4) 0 0; border-bottom: 0; position: relative; }
.tm-steps--row > li::before { content: ""; position: absolute; left: 0; top: 0; width: 28px; height: 2px; background: var(--base-deep); }
.tm-steps--row .tm-steps__no { display: block; }
.tm-steps--row .tm-steps__t { margin-top: var(--space-3); }
.tm-steps--row .tm-steps__b { margin-top: var(--space-3); }
/* PageTitle F 数字付き・G キャッチ型 */
.tm-pt__stats { display: flex; flex-wrap: wrap; gap: var(--space-5) var(--space-8); margin: var(--space-6) 0 0; }
.tm-pt__stats > div { display: flex; flex-direction: column-reverse; gap: 2px; }
.tm-pt__stats dt { font-size: 12px; color: var(--ink-3); letter-spacing: .08em; }
.tm-pt__stats dd { margin: 0; font-size: 13px; color: var(--ink-2); }
.tm-pt__stats dd .tm-num { font-size: 44px; font-weight: 300; color: var(--base-deep); line-height: 1.1; margin-right: 4px; letter-spacing: .01em; }
.tm-pt--catch .tm-pt__in { padding-top: var(--space-9); padding-bottom: var(--space-8); }
.tm-pt--catch .tm-label { display: block; margin-bottom: var(--space-4); }
.tm-pt--catch .tm-display { max-width: 16em; margin: 0; }
.tm-pt__meta { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-7); margin: var(--space-7) 0 0; }
.tm-pt__meta > div { display: flex; flex-direction: column; gap: 2px; }
.tm-pt__meta dt { font-size: 11.5px; letter-spacing: .14em; color: var(--ink-3); }
.tm-pt__meta dd { margin: 0; font-size: 14px; color: var(--ink-2); }
/* Card 動画：16:9 の静止画に再生時間を重ねる */
.tm-card--video .tm-card__media { position: relative; display: block; margin-bottom: var(--space-2); }
.tm-card--video .tm-card__media .tm-ph { aspect-ratio: 16 / 9; margin: 0; }
.tm-card__dur { position: absolute; right: 8px; bottom: 8px; background: rgba(16, 18, 22, .80); color: #fff; font-family: var(--font-num); font-size: 12px; letter-spacing: .04em; line-height: 1; padding: 5px 7px; }
.tm-cards--2 { grid-template-columns: repeat(2, 1fr); }
.tm-cards--4 { grid-template-columns: repeat(4, 1fr); gap: var(--space-7) var(--space-5); }
/* NewsList D 分類を左に（読み手別の分類を縦に並べ、右に一覧） */
.tm-newsside { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: var(--space-8); align-items: start; }
.tm-newsside__cats { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule-soft); }
.tm-newsside__cats li { border-bottom: 1px solid var(--rule-soft); }
.tm-newsside__cats button { all: unset; box-sizing: border-box; position: relative; display: block; width: 100%; padding: 12px 0 12px var(--space-4); font-size: 14.5px; letter-spacing: .06em; color: var(--ink-2); cursor: pointer; }
.tm-newsside__cats button:hover { color: var(--ink); }
.tm-newsside__cats button[aria-selected="true"] { color: var(--ink); font-weight: 600; }
.tm-newsside__cats button[aria-selected="true"]::before { content: ""; position: absolute; left: 0; top: 50%; width: 3px; height: 1.1em; transform: translateY(-50%); background: var(--accent); }
.tm-newsside__cats button:focus-visible { outline: 2px solid var(--base-deep); outline-offset: 2px; }
.tm-newsside .tm-news { border-top: 0; }
/* Features E 索引：事業・媒体の名前を4列の一覧に（絵柄のアイコンは使わない） */
.tm-linkidx { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 var(--space-6); }
.tm-linkidx a { display: flex; flex-direction: column; gap: 2px; height: 100%; box-sizing: border-box; padding: var(--space-4) 0; border-bottom: 1px solid var(--rule-soft); color: var(--ink) !important; text-decoration: none !important; font-size: 15px; font-weight: 500; letter-spacing: .04em; line-height: 1.6; }
.tm-linkidx a small { font-size: 11.5px; font-weight: 400; letter-spacing: .12em; color: var(--ink-3); display: flex; gap: var(--space-3); align-items: center; }
.tm-linkidx a small em { font-style: normal; color: var(--sub); letter-spacing: .08em; }
.tm-linkidx a:hover { color: var(--base-deep) !important; text-decoration: underline !important; text-underline-offset: 4px; }
.tm-linkidx--lead { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: var(--space-8); align-items: start; }
.tm-linkidx--lead > p { margin: 0; color: var(--ink-2); line-height: 1.9; }
.tm-linkidx--lead .tm-linkidx { grid-template-columns: repeat(3, minmax(0, 1fr)); }
/* あいさつ文の結び（日付・会名・役職・氏名を右寄せ） */
.tm-sign { margin: var(--space-7) 0 0; text-align: right; line-height: 1.9; color: var(--ink-2); font-size: 15px; }
.tm-sign b { display: block; color: var(--ink); font-size: 17px; font-weight: 500; letter-spacing: .3em; margin-top: var(--space-2); }

/* 中間の幅（761〜1080px。ノートPCの狭い窓など）：主メニューの字と間隔を詰めて1行に収める */
@media (min-width: 761px) and (max-width: 1080px) {
  .tm-nav { gap: 14px; }
  .tm-nav a { font-size: 13px; letter-spacing: .03em; }
  .tm-hd__in { gap: var(--space-4); }
  .tm-hd .tm-brand__name small { display: none; }
}
@media (max-width: 760px) {
  .tm-legal { grid-template-columns: 1fr; gap: var(--space-6); padding-top: var(--space-5); }
  .tm-legal__toc { position: static; background: var(--wash); padding: var(--space-4) var(--space-5); }
  .tm-legal__body h2 { margin-top: var(--space-8); font-size: 18.5px; }

  .tm-auth--split { grid-template-columns: 1fr; }
  .tm-auth__visual { min-height: 220px; }
  .tm-auth__vtext { left: var(--space-5); right: var(--space-5); bottom: var(--space-5); }
  .tm-auth__vtext .tm-logo { width: 40px; height: 40px; margin-bottom: var(--space-3); }
  .tm-auth .tm-auth__km { font-size: 18px; }
  .tm-auth__panel { padding: var(--space-5) var(--space-5) var(--space-6); }
  .tm-auth__main { padding: var(--space-6) 0; }
  .tm-auth__brand { display: none; }
  .tm-auth .tm-auth__title { font-size: 23px; }
  .tm-auth__sheet { padding: var(--space-6) var(--space-5) var(--space-5); }
  .tm-auth--center { padding: var(--space-5) var(--space-4); }

  .tm-slides { height: 380px; }
  .tm-hero--slider .tm-hero__plate { position: relative; }
  .tm-slider__ui { right: var(--space-4); top: var(--space-4); }
  .tm-hero--video { min-height: 560px; }
  .tm-hero--video .tm-display { font-size: 30px; }
  .is-under-overlay .tm-slider__ui { top: auto; bottom: var(--space-4); }
  .tm-hero--video.is-plate { flex-direction: column; justify-content: flex-end; }
  .tm-hero--video.is-plate > .tm-ph, .tm-hero--video.is-plate > .tm-hero__video { position: relative; height: 340px; flex: none; }
  .tm-hero--video.is-plate { min-height: 0; }

  .tm-ar { padding: 36px var(--space-4) 72px; font-size: 16px; }
  .tm-ar.tm-ar--head { padding-bottom: 0; }
  .tm-ar.tm-ar--body { padding-top: 0; }
  .tm-ar-mark { margin-bottom: 32px; }
  .tm-ar-spc { margin-bottom: 28px; }
  .tm-ar-title { font-size: 26px; }
  .tm-ar-sect__title { font-size: 23px; }
  .tm-ar-sect--pic .tm-ar-sect__label, .tm-ar-sect--pic .tm-ar-sect__title, .tm-ar-sect--pic .tm-ar-speaker { padding-right: 0; }
  .tm-ar-portrait { position: static; margin: 0 auto 14px; width: 120px; height: 120px; }
  .tm-ar-stats { grid-template-columns: 1fr 1fr; }
  .tm-ar-stat:nth-child(3) { border-left: 0; padding-left: 2px; }
  .tm-ar-stat:nth-child(n+3) { border-top: 1px solid var(--rule-soft); }
  .tm-ar-bar { grid-template-columns: 7em 1fr 2.8em; font-size: 13.5px; }
  .tm-ar-pgs { flex-direction: column; }
  .tm-ar-pg.ghost { display: none; }
  .tm-ar-apply { grid-template-columns: 1fr; }
  .tm-ar-wm { width: 180px; height: 180px; right: -30px; }
  .tm-ar-badge b { font-size: 20px; }
  .tm-sp-only { display: inline-flex !important; margin-left: auto; }
  .tm-hd--special .tm-sp-only { display: none !important; }
  .tm-hd__in { height: 60px; gap: var(--space-4); padding: 0 var(--space-4); }
  .tm-brand { gap: 10px; }
  .tm-brand__name { font-size: 14px; }
  .tm-brand__name small { font-size: 9.5px; letter-spacing: .08em; }
  .tm-logo { width: 32px; height: 32px; }
  .tm-hd__act { margin-left: auto; }
  .tm-hd__act > :not(.tm-menubtn) { display: none; }
  .tm-hd__opt, .tm-util, .tm-mega { display: none; }
  .tm-hd--center .tm-hd__in { flex-direction: row; height: 60px; padding-top: 0; align-items: center; }
  .tm-hd--center .tm-brand { flex-direction: row; gap: 10px; text-align: left; }
  .tm-hd--center .tm-brand__name { align-items: flex-start; font-size: 14px; letter-spacing: .06em; }
  .tm-hd--center .tm-logo, .tm-ft--formal .tm-logo { width: 32px; height: 32px; }
  .tm-hd--special .tm-hd__in { height: 56px; }
  .tm-sp-toc, .tm-sp-back .tm-tx { display: none; }
  .tm-sp-org { border-right: 0; padding-right: 0; }
  .tm-sp-org span { font-size: 13px; }
  .tm-notice-bar__in { flex-wrap: wrap; gap: 10px 12px; font-size: 12.5px; padding: 8px var(--space-4); }
  .tm-wrap, .tm-narrow { padding: 0 var(--space-4); }
  .tm-h1 { font-size: 24px; }
  .tm-h2 { font-size: 20px; }
  .tm-sh { grid-template-columns: auto 1fr; }
  .tm-sh__en { display: none; }
  .tm-sh__title { font-size: 21px; }
  .tm-hero__in { padding-left: var(--space-4); padding-right: var(--space-4); }
  .tm-hero--photo .tm-ph { height: 340px; }
  .tm-hero__plate { position: relative; max-width: none; padding: var(--space-6) var(--space-4) var(--space-7); }
  .tm-hero--split .tm-hero__text { padding: var(--space-8) 0; margin: 0; }
  .tm-hero--split .tm-ph { min-height: 260px; }
  .tm-hero--split .tm-hero__in { min-height: 0; }
  .tm-date { border-right: 0; padding-right: 0; }
  .tm-date__md { font-size: 64px; }
  .tm-entry { grid-template-columns: 1fr; }
  .tm-entry a + a { padding-left: var(--space-4); }
  .tm-overlay { min-height: 340px; }
  .tm-pt__in { padding: var(--space-7) var(--space-4) var(--space-6); }
  .tm-pt--meta .tm-pt__in { grid-template-columns: 1fr; gap: var(--space-5); }
  .tm-pt--photo .tm-ph { height: 160px; }
  .tm-pt--photo .tm-pt__in { margin-top: -40px; padding: var(--space-5) var(--space-4); }
  .tm-ft__in { padding: var(--space-7) var(--space-4) var(--space-6); }
  .tm-ft-cta__in, .tm-cta--fill .tm-cta__in, .tm-cta--row .tm-cta__in { grid-template-columns: 1fr; }
  .tm-ft-cta__in { padding: var(--space-8) var(--space-4); }
  .tm-cta--two .tm-cta__cell, .tm-cta--two .tm-cta__cell + .tm-cta__cell { padding: var(--space-6) var(--space-5); }
  .tm-cta--contact .tm-cta__cell, .tm-cta--contact .tm-cta__cell + .tm-cta__cell { padding: var(--space-5); }
  .tm-ft-links__row { grid-template-columns: 1fr 1fr; }
  .tm-ft__legal .tm-ft__copy, .tm-ft--simple .tm-ft__copy { margin-left: 0; width: 100%; }
  .tm-table { font-size: 13.5px; }
  .tm-table-wrap .tm-table { min-width: 560px; }
  .tm-table-hint { display: flex; }
  .tm-table th, .tm-table td { white-space: nowrap; }
  .tm-table tbody th { width: auto; }
  .tm-tabs { overflow-x: auto; }
  .tm-app { grid-template-columns: 1fr; }
  .tm-side { display: none; }
  .tm-app__main { padding: 0 var(--space-4) var(--space-6); }
  .tm-app__bar { display: flex; align-items: center; justify-content: space-between; height: 60px; margin: 0 calc(-1 * var(--space-4)) var(--space-6); padding: 0 var(--space-4); border-bottom: 1px solid var(--rule); background: var(--paper); position: sticky; top: 0; z-index: 40; }
  .tm-news--thumb a { grid-template-columns: 96px 1fr; }
  .tm-postnav { grid-template-columns: 1fr; }
  .tm-postnav a + a { text-align: left; }
  .tm-field > label, .tm-field > .tm-field__l { padding-top: 0; }
  .tm-cards { gap: var(--space-7); }
  .tm-sec { padding-block: var(--space-9); }
  .tm-hero__in { padding-block: var(--space-9); }
  .tm-nav, .tm-hd__act .tm-btn--secondary { display: none; }
  .tm-hero--editorial .tm-hero__in, .tm-hero--split .tm-hero__in, .tm-hero--portal .tm-hero__in, .tm-hero--special .tm-hero__in, .tm-hero--event .tm-hero__in { grid-template-columns: 1fr; gap: var(--space-6); }
  .tm-display { font-size: 30px; }
  .tone-yuken .tm-display { font-size: 38px; }
  .tm-ft__grid, .tm-ft__org, .tm-cols, .tm-cards, .tm-cta--two .tm-cta__in, .tm-cta--contact .tm-cta__in, .tm-alt > div, .tm-access, .tm-event, .tm-field, .tm-deflist div, .tm-ft--special .tm-ft__in { grid-template-columns: 1fr; }
  .tm-index li { grid-template-columns: 56px 1fr; }
  .tm-index li p { grid-column: 2; }
  .tm-news a { grid-template-columns: 1fr auto; }
  .tm-logos { grid-template-columns: repeat(3, 1fr); }
  /* 主メニューの下層・全画面メニュー・左サブメニュー（スマホ） */
  .tm-fm { --tm-fm-acc: 1; }
  .tm-fm__in { padding: clamp(8px, 2.4vh, 24px) var(--space-4) clamp(12px, 2.6vh, 24px); }
  .tm-fm__barin { height: 60px; padding: 0 var(--space-4); }
  .tm-fm__in .tm-fm__grid:nth-child(n) { grid-template-columns: minmax(0, 1fr); gap: 0; margin-bottom: clamp(12px, 3vh, 28px); }
  .tm-fm__col { border-bottom: 1px solid var(--rule); }
  .tm-fm__top, .tm-fm.is-fit1 .tm-fm__top { margin: 0; padding: clamp(8px, 1.6vh, 14px) 0; border-bottom: 0; font-size: clamp(15px, 2.3vh, 17px); }
  .tm-fm.is-fit1 .tm-fm__top { padding: 7px 0; font-size: 15px; }
  .tm-fm__col:has(ul) .tm-fm__top::after { content: ""; margin-left: auto; align-self: center; width: 8px; height: 8px; border-right: 1.5px solid var(--ink-3); border-bottom: 1.5px solid var(--ink-3); transform: translateY(-2px) rotate(45deg); transition: transform .2s ease; }
  .tm-fm__col.is-open .tm-fm__top::after { transform: translateY(2px) rotate(-135deg); }
  .tm-fm__col ul { display: none; }
  .tm-fm__col.is-open ul { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(6px, 1.3vh, 10px) var(--space-4); padding: 0 0 clamp(10px, 1.8vh, 14px) 2.2em; }
  .tm-fm__home { display: block; grid-column: 1 / -1; }
  .tm-fm.is-fit2 .tm-fm__col li:nth-child(n+5) { display: block; }
  .tm-fm__foot { flex-direction: column; align-items: stretch; gap: var(--space-3); padding-top: clamp(10px, 2vh, 18px); }
  .tm-fm__acts { flex-wrap: nowrap; }
  .tm-fm__acts .tm-btn { flex: 1 1 0; min-width: 0; justify-content: center; padding-left: 8px; padding-right: 8px; }
  .tm-fm__legal { gap: 6px var(--space-4); font-size: 12px; }
  .tm-fmbtn { margin-left: 0; }
  .tm-hd__act > .tm-fmbtn { display: inline-flex; }
  .tm-localpage { grid-template-columns: 1fr; gap: var(--space-8); padding: var(--space-6) var(--space-4) var(--space-9); }
  .tm-local { position: static; order: 2; padding-top: var(--space-6); border-top: 1px solid var(--rule); }
  .tm-localpage__main { order: 1; }
  .tm-page--narrow .tm-cards { grid-template-columns: 1fr; }
  .tm-snsico, .tm-util .tm-snsico, .tm-hd--overlay .tm-snsico { width: 40px; height: 40px; }
  .tm-snsrow { gap: 20px; }
  .tm-hd--float { margin-bottom: -61px; }
  .tm-hero--full { min-height: 480px; }
  .tm-hero--full .tm-hero__in { padding-top: calc(60px + var(--space-6)); padding-bottom: calc(var(--space-9) + var(--space-5)); }
  .tm-hero--full .tm-display { font-size: 30px; line-height: 1.45; }
  .tm-hero--full .tm-slider__ui { right: var(--space-4); bottom: var(--space-4); }
  .tm-scrollcue { bottom: var(--space-4); }
  .tm-scrollcue i { height: 40px; }
  /* v1.10 */
  .tm-steps > li { grid-template-columns: 64px minmax(0, 1fr); gap: var(--space-3) var(--space-4); }
  .tm-steps__no b { font-size: 24px; }
  .tm-steps--row { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
  .tm-pt__stats { gap: var(--space-4) var(--space-6); }
  .tm-pt__stats dd .tm-num { font-size: 34px; }
  .tm-pt--catch .tm-pt__in { padding-top: var(--space-7); padding-bottom: var(--space-6); }
  .tm-pt__meta { gap: var(--space-3) var(--space-5); margin-top: var(--space-5); }
  .tm-cards--2 { grid-template-columns: minmax(0, 1fr); }
  .tm-cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6) var(--space-4); }
  .tm-newsside { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  .tm-newsside__cats { display: flex; overflow-x: auto; border-top: 0; border-bottom: 1px solid var(--rule); gap: var(--space-5); }
  .tm-newsside__cats li { border-bottom: 0; flex: none; }
  .tm-newsside__cats button { padding: 10px 0; border-bottom: 2px solid transparent; margin-bottom: -1px; }
  .tm-newsside__cats button[aria-selected="true"] { border-bottom-color: var(--accent); font-weight: 500; }
  .tm-newsside__cats button[aria-selected="true"]::before { content: none; }
  .tm-linkidx, .tm-linkidx--lead .tm-linkidx { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--space-4); }
  .tm-linkidx--lead { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
}
