/* footer-0921 サイト共通のフッター。.site-footer.sf2 で始めて、各ページの古い指定より強くする */
.site-footer.sf2 { background: #2f4f43; border-top: 0; color: #e8efea; padding: 34px 0 18px; margin-top: 0; font-size: 15px; line-height: 1.7; }
.site-footer.sf2 .wrap { max-width: 1040px; margin: 0 auto; padding-left: 20px; padding-right: 20px; }
.site-footer.sf2 .footer-grid { display: grid; grid-template-columns: 1.35fr 1fr 1fr 1.25fr; gap: 22px 28px; align-items: start; }
.site-footer.sf2 .footer-brand { font-weight: 700; font-size: 1.12rem; color: #fff; margin: 0 0 8px; }
.site-footer.sf2 .foot-lead { margin: 0 0 10px; font-size: .88rem; line-height: 1.85; color: #cfded6; }
.site-footer.sf2 .foot-cred, .site-footer.sf2 .foot-org { margin: 0; font-size: .82rem; line-height: 1.9; color: #b9cdc3; }
.site-footer.sf2 .foot-sep { margin: 0 4px 0 5px; color: #7f9c8f; }
.site-footer.sf2 .nw { white-space: nowrap; }   /* 「／」が行の頭に来ないよう、区切りは前の語にくっつける */
.site-footer.sf2 .foot-h { margin: 0 0 8px; font-weight: 700; font-size: .95rem; color: #fff; }
.site-footer.sf2 ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 5px; }
.site-footer.sf2 li { margin: 0; font-size: .88rem; line-height: 1.7; }
.site-footer.sf2 a { color: #dfeae5; text-decoration: underline; text-underline-offset: 2px; }
.site-footer.sf2 a:hover { color: #fff; }
/* リンクの途中で折り返さない（「お問／い合わせ」のような1〜2文字の取り残しを出さない） */
.site-footer.sf2 li a, .site-footer.sf2 .foot-org a, .site-footer.sf2 .foot-bottom a { white-space: nowrap; }
.site-footer.sf2 .foot-bottom { margin-top: 22px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.18);
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 20px; font-size: .8rem; color: #b9cdc3; }
.site-footer.sf2 .foot-bottom p { margin: 0; }
.site-footer.sf2 .foot-home { font-weight: 700; margin-right: 8px; }
@media (max-width: 900px) { .site-footer.sf2 .footer-grid { grid-template-columns: 1fr 1fr; } .site-footer.sf2 .foot-brand { grid-column: 1 / -1; } }
@media (max-width: 560px) { .site-footer.sf2 .footer-grid { grid-template-columns: 1fr; } .site-footer.sf2 .foot-bottom { display: grid; } }
@media print { .site-footer.sf2 { display: none !important; } }

/* MARK share_0922 */
/* 共有欄：Threads・Instagram・Facebook・ほかのアプリで送る */
.sharebox .sharebtn-threads { background: #fff; color: #111; border-color: #111; }
.sharebox .sharebtn-instagram { background: #c13584; color: #fff; }
.sharebox .sharebtn-instagram.is-done { background: #fff; color: #9c2a6a; border-color: #c13584; }
.sharebox .sharebtn-facebook { background: #1463d1; color: #fff; }
.sharebox .sharebtn-more { background: #fff; color: #3c3a37; border-color: #d5cabb; }
.sharebox .sharebtn-more[hidden] { display: none; }
.sharebox .sharebox-btns .sharebtn { flex: 0 0 auto; }
/* SNSのマーク（色はボタンの文字色に合わせる） */
.sharebox .sharebtn::before { content: ""; flex: none; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
.sharebox .sharebtn-line { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cdefs%3E%3Cmask id=%22m%22%3E%3Crect width=%2224%22 height=%2224%22 fill=%22%23fff%22/%3E%3Ctext x=%2212%22 y=%2213.6%22 font-family=%22Arial,Helvetica,sans-serif%22 font-size=%225.4%22 font-weight=%22900%22 text-anchor=%22middle%22 fill=%22%23000%22%3ELINE%3C/text%3E%3C/mask%3E%3C/defs%3E%3Cpath mask=%22url%28%23m%29%22 fill=%22%23000%22 d=%22M12 2.5C6.2 2.5 1.5 6.3 1.5 11c0 4.2 3.7 7.7 8.8 8.4.3.1.8.2.9.6.1.3.1.8 0 1.1l-.1.9c0 .3-.2 1 .9.6 1-.4 5.8-3.4 7.9-5.9 1.5-1.6 2.2-3.3 2.2-5.1C22.5 6.3 17.8 2.5 12 2.5z%22/%3E%3C/svg%3E"); }
.sharebox .sharebtn-x { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23000%22%3E%3Cpath d=%22M18.9 1.2h3.7l-8 9.2L24 22.8h-7.4l-5.8-7.6-6.6 7.6H.5l8.6-9.8L0 1.2h7.6l5.2 6.9zM17.6 20.6h2L6.5 3.2H4.3z%22/%3E%3C/svg%3E"); }
.sharebox .sharebtn-threads { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%223.4%22/%3E%3Cpath d=%22M15.4 12v1.3a2.6 2.6 0 0 0 5.2 0V12a8.6 8.6 0 1 0-3.4 6.9%22/%3E%3C/svg%3E"); }
.sharebox .sharebtn-instagram { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%223%22 width=%2218%22 height=%2218%22 rx=%225%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%224%22/%3E%3Ccircle cx=%2217.3%22 cy=%226.7%22 r=%22.9%22 fill=%22%23000%22 stroke=%22none%22/%3E%3C/svg%3E"); }
.sharebox .sharebtn-facebook { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23000%22%3E%3Cpath d=%22M13.5 22v-8h2.7l.4-3.2h-3.1V8.8c0-.9.3-1.5 1.6-1.5h1.7V4.4c-.3 0-1.3-.1-2.4-.1-2.4 0-4 1.4-4 4.1v2.4H7.7V14h2.7v8z%22/%3E%3C/svg%3E"); }
.sharebox .sharebtn-more { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2218%22 cy=%225%22 r=%222.5%22/%3E%3Ccircle cx=%226%22 cy=%2212%22 r=%222.5%22/%3E%3Ccircle cx=%2218%22 cy=%2219%22 r=%222.5%22/%3E%3Cpath d=%22M8.2 10.9l7.6-4.6M8.2 13.1l7.6 4.6%22/%3E%3C/svg%3E"); }
.sharebox .sharebtn-copy { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M10 14a4.5 4.5 0 0 0 6.4 0l3.3-3.3a4.5 4.5 0 0 0-6.4-6.4L12 5.6%22/%3E%3Cpath d=%22M14 10a4.5 4.5 0 0 0-6.4 0l-3.3 3.3a4.5 4.5 0 0 0 6.4 6.4l1.3-1.3%22/%3E%3C/svg%3E"); }
.sharebox .sharebtn-line::before { width: 23px; height: 23px; }
.sharebox .share-hint { font-size: .86rem; color: #8a3b66; margin: 10px 0 0; min-height: 1.4em; }
@media (max-width: 520px) {
  .sharebox .sharebox-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .sharebox .sharebox-btns .sharebtn { justify-content: center; padding: 11px 10px; font-size: .9rem; }
}
/* /MARK share_0922 */

/* MARK menu_0922 */
/* メニュー：足した色（ICF・第2表AI・トップ）と「いまここ」 */
.mnav-ic { background: #ebe6f5; color: #46397d; }
.mnav-d2 { background: #e2eef6; color: #2f5a80; }
.mnav-ry { background: #e0f2ef; color: #1d6660; }
.mnav-ks { background: #f5ece2; color: #7a4f2a; }
.mnav-tn { background: #eceffa; color: #3f4f9a; }
.mnav-mk { background: #fae9ec; color: #8c3a4d; }
.mobile-nav a.is-here { background: var(--cream-2, #f3f0ea); font-weight: 700; }
.mnav-here { margin-left: auto; font-size: .72rem; font-weight: 700; color: var(--sky-d, #2f5a80); background: #fff; border: 1.5px solid currentColor; border-radius: 999px; padding: 0 8px; white-space: nowrap; }
/* 場面ページ下の「ほかの場面の文例をさがす」 */
.scene-nav2 { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; margin-top: 12px; }
.scene-nav2 a { display: flex; align-items: center; gap: 10px; text-wrap: balance; word-break: auto-phrase; padding: 8px 12px 8px 8px; border: 1.5px solid var(--line, #dfe6ea); border-radius: 14px; background: #fff; text-decoration: none; color: var(--ink, #2f3c46); font-size: .9rem; font-weight: 700; line-height: 1.4; transition: border-color .15s, transform .15s; }
.scene-nav2 a:hover { border-color: var(--sky, #4a7fa8); transform: translateY(-1px); }
.scene-nav2 a.is-current { background: var(--sky-l, #e6f1fa); border-color: var(--sky-d, #2f5a80); color: var(--sky-d, #2f5a80); }
.sn2-ill { flex: none; width: 44px; height: 44px; border-radius: 12px; background: var(--sky-l, #eef4f8); display: grid; place-items: center; }
.sn2-ill svg { width: 36px; height: 36px; }
.scene-nav2 a.is-current .sn2-ill { background: #fff; }
@media (max-width: 520px) { .scene-nav2 { grid-template-columns: 1fr 1fr; } .scene-nav2 a { font-size: .84rem; } }
/* 共有欄の見出し：読点で区切った固まりごとに折り返す */
.sharebox-lead .sl-seg { display: inline-block; }
/* /MARK menu_0922 */

/* sp-1004 スマホ・タブレットの押しやすさと読みやすさ（全ページ共通） */
@media (pointer: coarse), (max-width: 700px) {
  .copy, .copy-btn, .copy.copy-chip, .copy-btn.copy-chip, .type-chip, .btn.btn-quiet, .ns-go, .kh-jump a, .kh-rel-l a { min-height: 44px; }
  .copy.copy-chip, .copy-btn.copy-chip, .type-chip, .kh-jump a, .kh-rel-l a, .gl-more.gl-go { display: inline-flex; align-items: center; justify-content: center; }
  .gl-more.gl-go { min-height: 44px; }
  .kh-jump a { padding: 6px 16px; }
}
@media (max-width: 700px) {
  .copy, .copy-btn, .tag-badge, .kh-count, .sn2-name, .phrase-col-count, .field-badge, .tool-topics li,
  .kh-group-h small, .kh-stat span, .kh-hero-cap, .sitehint, .st-chat-who, .st-chat-note, .st-price, .st-cta-s, .st-by,
  .stampline-sub, .scn-sw-h, .hero-preview-cap, .field-map-cap, .tp-d, .tp-ex-l, .ns-what, .ns-what b, .ns-go,
  .audio-btn-sub, .pic-btn-sub, .foot-cred, .foot-org, .foot-bottom { font-size: 14px !important; }
  .hyo-badge { font-size: 13px !important; }
  /* 並びのメニューを持つヘッダー（/stamp/・/link/ など）は、折り返さず1行で横に送る */
  .site-header .nav { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; width: 100%; }
  .site-header .nav::-webkit-scrollbar { display: none; }
  .site-header .nav a { flex: none; white-space: nowrap; }
  /* 下に読み進めるあいだはヘッダーを隠す（sp.js が印を付ける） */
  .site-header { transition: transform .25s ease; }
  html.sp-hdr-hide .site-header { transform: translateY(-100%); }
}
@media (prefers-reduced-motion: reduce) { .site-header { transition: none; } }

/* スマホの帯：あとでパソコンで開く／LINEスタンプ */
.sp-strip { display: flex; gap: 8px; padding: 6px 12px; background: #fff; border-bottom: 1px solid #f0dcda; }
.sp-strip button, .sp-strip a { flex: 1 1 0; min-width: 0; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  font: inherit; font-size: 14px; font-weight: 700; line-height: 1.3; border-radius: 999px; padding: 4px 10px; white-space: nowrap; text-decoration: none; cursor: pointer; }
.sp-strip button { background: #fae9ec; color: #8c3a4d; border: 2px solid #f0dcda; }
.sp-strip a { background: #fff; color: #06703a; border: 2px solid #bfe3cd; }
.sp-strip svg { width: 20px; height: 20px; flex: none; }
.sp-sheet-bg { position: fixed; inset: 0; z-index: 9998; background: rgba(40, 30, 32, .45); }
.sp-sheet { position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999; background: #fff; border-radius: 20px 20px 0 0; padding: 18px 16px calc(18px + env(safe-area-inset-bottom));
  box-shadow: 0 -6px 24px rgba(0, 0, 0, .18); max-height: 86vh; overflow: auto; }
.sp-sheet h2 { font-size: 1.12rem; margin: 0 0 6px; color: #453a3c; }
.sp-sheet p { margin: 0 0 12px; font-size: 14px; line-height: 1.8; color: #6b5b5e; }
.sp-sheet .sp-opt { display: flex; width: 100%; min-height: 52px; align-items: center; justify-content: center; gap: 8px; margin: 0 0 8px; border-radius: 14px; border: 2px solid #e0c3c0;
  background: #fff; color: #453a3c; font: inherit; font-size: 16px; font-weight: 700; text-decoration: none; cursor: pointer; }
.sp-sheet .sp-opt.is-main { background: #a8465c; border-color: #a8465c; color: #fff; }
.sp-sheet .sp-opt.is-done { background: #e8f4ef; border-color: #06703a; color: #1f7a52; }
.sp-sheet .sp-close { background: #f6f1ef; border-color: #f6f1ef; color: #6b5b5e; margin-top: 4px; }
/* スマホの下の案内：LINEスタンプ */
.sp-stamp { display: grid; grid-template-columns: 96px 1fr; gap: 12px; align-items: center; padding: 18px 16px; background: #fff; border-top: 1px solid #e6ded2; }
.sp-stamp img { width: 100%; height: auto; display: block; border: 2px solid #f0dcda; border-radius: 12px; background: #fff; }
.sp-stamp b { display: block; font-size: 1.02rem; color: #453a3c; line-height: 1.5; }
.sp-stamp span { display: block; font-size: 14px; color: #6b5b5e; line-height: 1.7; margin: 2px 0 8px; }
.sp-stamp a { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 6px 20px; border-radius: 999px; background: #a8465c; color: #fff; font-weight: 700; text-decoration: none; }
/* タブレットの案内（初回だけ） */
.tab-tip { display: flex; gap: 12px; align-items: flex-start; padding: 12px 16px; background: #e8f4ef; border-bottom: 1px solid #bfe3cd; color: #2f4f43; font-size: 15px; line-height: 1.75; }
.tab-tip p { margin: 0; flex: 1 1 auto; }
.tab-tip b { color: #1f5c40; }
.tab-tip button { flex: none; min-width: 44px; min-height: 44px; border: 0; border-radius: 999px; background: #fff; color: #2f4f43; font: inherit; font-weight: 700; cursor: pointer; }
@media print { .sp-strip, .sp-stamp, .tab-tip, .sp-sheet, .sp-sheet-bg { display: none !important; } }
/* wait-1004 読み込み中のしるし */
.cm-wait-bar { position: fixed; left: 0; top: 0; z-index: 10000; height: 5px; width: 100%; pointer-events: none; opacity: 0; overflow: hidden; background: #f0dcda; }
.cm-wait-bar.is-on { opacity: 1; }
.cm-wait-bar::before { content: ""; position: absolute; top: 0; bottom: 0; left: -40%; width: 40%; border-radius: 3px; background: #a8465c; }
.cm-wait-bar.is-on::before { animation: cmWaitRun 1.1s ease-in-out infinite; }
@keyframes cmWaitRun { 0% { left: -40%; } 100% { left: 100%; } }
.cm-wait-pill { position: fixed; left: 50%; bottom: 84px; z-index: 10000; transform: translate(-50%, 12px); display: flex; align-items: center; gap: 10px; padding: 12px 22px; border-radius: 999px;
  background: #453a3c; color: #fff; font-size: 16px; font-weight: 700; line-height: 1.4; white-space: nowrap; box-shadow: 0 6px 18px rgba(0, 0, 0, .25); opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; }
.cm-wait-pill.is-on { opacity: 1; transform: translate(-50%, 0); }
.cm-wait-spin { width: 20px; height: 20px; flex: none; border-radius: 50%; border: 3px solid rgba(255, 255, 255, .35); border-top-color: #fff; animation: cmWaitSpin .8s linear infinite; }
@keyframes cmWaitSpin { to { transform: rotate(360deg); } }
.cm-wait-el { opacity: .6 !important; cursor: progress !important; }
/* 押した瞬間の手ごたえ（押せたことが分かるように） */
a.btn:active, button:active, .copy:active, .copy-btn:active, [role="button"]:active { filter: brightness(.93); }
@media (prefers-reduced-motion: reduce) { .cm-wait-bar.is-on::before { animation: none; left: 0; width: 100%; opacity: .6; } .cm-wait-spin { animation-duration: 2.4s; } .cm-wait-pill { transition: none; } }
@media print { .cm-wait-bar, .cm-wait-pill { display: none !important; } }
/* /wait-1004 */
/* /sp-1004 */
