/* ==========================================================================
   サイト共通（2026-09-07）
   ヘッダーの帯幅とロゴを縮める。PCは従来比80%、SPは60%。
   GeneratePress がインラインで同じセレクタを出すため !important で上書きする。
   ========================================================================== */
.site-header .inside-header { padding-top: 14px !important; padding-bottom: 14px !important; }
.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle,
.main-navigation .menu-bar-items { line-height: 52px !important; }
.site-logo img,
.site-header .header-image { width: 120px !important; }

/* CTAボタンは行高を拾わず、自分の余白だけで高さを決める（帯を押し上げないため） */
.main-navigation .menu-item.menu-cta a { line-height: 20px !important; }

@media (max-width: 768px) {
	.site-header .inside-header { padding-top: 10px !important; padding-bottom: 10px !important; }
	.main-navigation .main-nav ul li a,
	.main-navigation .menu-toggle,
	.main-navigation .menu-bar-items { line-height: 40px !important; }
	.site-logo img,
	.site-header .header-image { width: 90px !important; }
}

/* --------------------------------------------------------------------------
   通常の固定ページ（プライバシーポリシー等）のコンテンツ幅を戻す。
   トップ・academy・サービスLP は全幅の専用テンプレートなので影響しない。
   （#page と .site-content の余白を style.css で 0 にしているため）
   -------------------------------------------------------------------------- */
.site-content .inside-article { max-width: 860px !important; margin: 0 auto !important;
	padding: 56px 24px 72px !important; box-sizing: border-box; }
@media (max-width: 768px) {
	.site-content .inside-article { padding: 28px 20px 40px !important; }
}

/* --------------------------------------------------------------------------
   共通フッター（サービスLPと同じ形）
   -------------------------------------------------------------------------- */
.ft { background: #111111; color: #ffffff; padding: 64px 0 0; font-size: 13px; }
.ft__inner { max-width: 1200px; margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
.ft__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 48px;
	padding-bottom: 48px; border-bottom: 1px solid rgba(255,255,255,0.06); }
.ft__logo { display: block; height: 35px; width: auto; margin-bottom: 16px; filter: brightness(0) invert(1); opacity: .95; }
.ft__desc { font-size: 13px; line-height: 1.95; margin: 0; color: rgba(255,255,255,0.72); }
.ft__h { position: relative; font-size: 15px; font-weight: 700; letter-spacing: .04em;
	color: #fff; margin-bottom: 18px; padding-bottom: 10px; }
.ft__h::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 28px; height: 2px; background: #15A4C6; }
.ft__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ft__col a { font-size: 13px; line-height: 1.7; color: rgba(255,255,255,0.72); text-decoration: none; }
.ft__col a:hover { color: #fff; }

/* GeneratePress のフッターバーをインク地に揃える */
.site-footer { margin-top: 0 !important; background: #111111; }
.site-footer .site-info { background: #111111; border-top: 0; }
.site-footer .inside-site-info { max-width: 1200px; margin: 0 auto;
	padding: 28px 24px 32px !important; box-sizing: border-box; }
.site-footer .copyright-bar { color: rgba(255,255,255,0.72); font-size: 12px; }
.site-footer .copyright-bar a { color: rgba(255,255,255,0.6); }

@media (max-width: 768px) {
	.ft { padding-top: 32px; }
	.ft__inner { padding: 0 20px; }
	.ft__grid { grid-template-columns: 1fr 1fr; gap: 24px; padding-bottom: 24px; }
	.ft__brand { grid-column: 1 / -1; }
	.site-footer .inside-site-info { padding: 16px 20px 22px !important; }
}

/* フッター下部の行（サービスLPと同じ左右分け） */
.site-footer .copyright-bar .ft-bottom { display: flex; align-items: center; justify-content: space-between;
	gap: 16px; margin: 0; }
.site-footer .copyright-bar .ft-bottom a { color: rgba(255,255,255,0.72); text-decoration: none; }
.site-footer .copyright-bar .ft-bottom a:hover { color: #fff; }
@media (max-width: 768px) {
	.site-footer .copyright-bar .ft-bottom { flex-direction: column; align-items: flex-start; gap: 12px; }
}

/* 下部の行を上の列と同じ幅に広げる（GPの既定だと中央に縮む） */
.site-footer .inside-site-info { display: block !important; text-align: left !important; }
.site-footer .copyright-bar { width: 100%; float: none !important; padding: 0 !important; }


/* --------------------------------------------------------------------------
   overflow-x: clip をサポートしない古いブラウザ（iOS 15 以前の Safari など）では
   style.css の html,body{overflow-x:clip} が無効になり、横スクロールが発生する。
   その場合だけ hidden を適用する（clip 対応ブラウザには一切影響しない）。
   -------------------------------------------------------------------------- */
@supports not (overflow-x: clip) {
	html, body { overflow-x: hidden; }
}

/* 幅のあふれを作らないための保険 */
html, body { max-width: 100%; }
img, video, iframe { max-width: 100%; }


/* --------------------------------------------------------------------------
   記事目次（Table of Contents Plus）案A：索引型。箱・背景・左の太線・ピル型ボタンをやめ、
   黒1pxの罫だけで区切る。H2は常に全部出し、H3は「小見出しを表示」で開閉（functions.php のスクリプト）。
   style.css 側の !important を上書きするため body #toc_container で詳細度を上げている。
   -------------------------------------------------------------------------- */
body #toc_container { background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
	padding: 0 !important; margin: 8px 0 40px !important; width: 100% !important; max-width: none !important; }
body #toc_container .toc_title { display: flex !important; align-items: baseline !important; justify-content: space-between !important;
	gap: 12px !important; margin: 0 !important; padding: 0 0 10px !important; border-bottom: 1px solid #111111 !important;
	font-size: 13px !important; font-weight: 700 !important; letter-spacing: 0.12em !important; color: #111111 !important; }
body #toc_container .toc_title::before { display: none !important; content: none !important; }
body #toc_container .toc_toggle { display: none !important; }
body #toc_container .toc-sub-toggle { margin-left: auto; background: none; border: 0; padding: 0; font: inherit; font-size: 12px;
	font-weight: 400; letter-spacing: 0; color: #111111; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
body #toc_container .toc-sub-toggle:hover { color: #0C6F88; }
body #toc_container .toc_list { margin: 0 !important; padding: 0 !important; counter-reset: af-toc !important; }
body #toc_container .toc_list > li { display: grid !important; grid-template-columns: 34px minmax(0,1fr) !important; column-gap: 10px !important;
	margin: 0 !important; padding: 13px 0 !important; border-bottom: 1px solid #EDF0F1 !important; list-style: none !important; counter-increment: af-toc; }
body #toc_container .toc_list > li::before { content: counter(af-toc, decimal-leading-zero); font-size: 12px; font-weight: 700; color: #0C6F88;
	padding-top: 3px; font-variant-numeric: tabular-nums; letter-spacing: 0.02em; }
body #toc_container .toc_list > li:last-child { border-bottom: 0 !important; }
body #toc_container .toc_number { display: none !important; }
body #toc_container .toc_list > li > a { display: block !important; font-size: 15px !important; font-weight: 700 !important; line-height: 1.6 !important;
	color: #111111 !important; text-decoration: none !important; }
body #toc_container .toc_list > li > a:hover { color: #0C6F88 !important; text-decoration: none !important; }
body #toc_container .toc_list ul { display: none !important; grid-column: 2; margin: 6px 0 0 !important; padding: 0 !important; }
body #toc_container.toc-sub-open .toc_list ul { display: block !important; }
body #toc_container .toc_list ul li { display: inline !important; padding: 0 !important; margin: 0 !important; border: 0 !important; }
body #toc_container .toc_list ul li + li::before { content: "／"; margin: 0 0.45em; color: #B4C6CC; }
body #toc_container .toc_list ul a { font-size: 12.5px !important; font-weight: 400 !important; line-height: 1.9 !important; color: #111111 !important; }
body #toc_container .toc_list ul a:hover { color: #0C6F88 !important; text-decoration: underline; }
body #toc_container .toc-extra { display: grid !important; }
body #toc_container .toc-more-li { display: none !important; }
@media (max-width: 768px) {
	body #toc_container { margin: 4px 0 32px !important; }
	body #toc_container .toc_list > li { grid-template-columns: 28px minmax(0,1fr) !important; padding: 11px 0 !important; }
	body #toc_container .toc_list > li > a { font-size: 14px !important; }
}

/* 目次を面で区別する：角丸・枠線・影なしの薄い地色（サイト共通の #F4F8FA） */
body #toc_container { background: #F4F8FA !important; padding: 22px 28px 14px !important; margin: 60px 0 96px !important; }
body #toc_container .toc_list > li { border-bottom-color: #E3EAEC !important; }
@media (max-width: 768px) {
	body #toc_container { padding: 18px 18px 10px !important; margin: 48px 0 72px !important; }
}
