/*
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ (Gargantua-tech v3.1: Dystopia-Corp Clean Refined)
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template: cocoon-master
Version: 1.1.3
*/

/* =================================================================
   GARGANTUA::TECH  - Cocoon Custom CSS v3.1
   Style: Dystopia-Corporate Clean (White, Red accent, Black body)
   v3.1 fix: scope heading styles, footer site-name, widget bleed
   ================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&family=Bebas+Neue&family=JetBrains+Mono:wght@400;500;700&display=swap');

:root {
  --gt-bg-primary: #F4F4F0;
  --gt-bg-content: #FFFFFF;
  --gt-bg-card: #FAFAF7;
  --gt-bg-invert: #111111;
  --gt-text-main: #111111;
  --gt-text-sub: #5C5C58;
  --gt-text-mute: #9C9C95;
  --gt-text-invert: #F4F4F0;
  --gt-text-on-dark: #ECECE6;
  --gt-accent: #E12B1B;
  --gt-accent-dark: #B81F11;
  --gt-hairline: #D8D8D2;
  --gt-frame: #111111;
}

* { box-sizing: border-box; }

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "palt" 1, "kern" 1;
}

body {
  background-color: var(--gt-bg-primary) !important;
  color: var(--gt-text-main);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  line-height: 1.85;
  letter-spacing: 0.01em;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cpath d='M19 17v6M16 20h6' stroke='%23000' stroke-width='0.5' opacity='0.07'/%3E%3C/svg%3E");
  background-size: 40px 40px;
}

::selection {
  background: var(--gt-accent);
  color: var(--gt-bg-content);
}

/* ---------- HEADER ---------- */
.header, .header-in {
  background-color: var(--gt-bg-primary) !important;
}
.header {
  border-bottom: 1px solid var(--gt-frame);
  position: relative;
  padding-top: 28px;
  padding-bottom: 8px;
}
.header::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: var(--gt-accent);
}
.header::after {
  content: '// GTECH // STAY ALERT. STAY INFORMED. // SEC.AD-0457 //';
  position: absolute;
  top: 6px;
  left: 50%;
  transform: translateX(-50%);
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.3em;
  color: var(--gt-bg-primary);
  background: var(--gt-accent);
  padding: 2px 14px;
  white-space: nowrap;
  z-index: 1;
}

.header .site-name-text {
  display: inline-flex !important;
  align-items: center;
  gap: 14px;
  line-height: 1 !important;
}
.header .site-name-text,
.header .site-name-text a,
.header .logo-text {
  font-family: 'Bebas Neue', 'Noto Sans JP', sans-serif !important;
  font-weight: 400 !important;
  color: var(--gt-text-main) !important;
  letter-spacing: 0.015em !important;
  font-size: 2.6em !important;
  text-decoration: none !important;
}
/* ▌ を実矩形に置き換え（Unicode文字のカーニング暴れ解消） */
.header .site-name-text::before {
  content: "";
  display: block;
  width: 16px;
  height: 0.88em;
  background: var(--gt-accent);
  flex-shrink: 0;
  transform: translateY(-0.04em);
}

.header .tagline {
  color: var(--gt-text-sub) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.7em !important;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  margin-top: 10px !important;
}

/* ---------- NAVIGATION ---------- */
.navi-in {
  background: var(--gt-bg-invert) !important;
  border-top: 1px solid var(--gt-frame);
  border-bottom: 1px solid var(--gt-frame);
}
.navi-in > .menu-header > .menu-item > a {
  color: var(--gt-text-on-dark) !important;
  font-family: 'Bebas Neue', sans-serif !important;
  font-weight: 400 !important;
  letter-spacing: 0.1em;
  font-size: 1.15em !important;
  transition: all 0.12s ease;
}
.navi-in > .menu-header > .menu-item > a:hover {
  color: var(--gt-bg-primary) !important;
  background: var(--gt-accent) !important;
}
.navi-in > .menu-header { counter-reset: menu-counter; }
.navi-in > .menu-header > .menu-item { counter-increment: menu-counter; }
.navi-in > .menu-header > .menu-item > a::before {
  content: counter(menu-counter, decimal-leading-zero) " /";
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.65em;
  color: var(--gt-accent);
  margin-right: 8px;
  letter-spacing: 0.1em;
}

/* ---------- MAIN CONTAINER ---------- */
#main { background-color: transparent; }

.main {
  background-color: var(--gt-bg-content);
  border: 1px solid var(--gt-frame);
  border-radius: 0;
  padding: 56px 48px 48px;
  position: relative;
}
.main::before, .main::after {
  content: '';
  position: absolute;
  width: 14px;
  height: 14px;
  background-image:
    linear-gradient(var(--gt-accent) 0 0),
    linear-gradient(var(--gt-accent) 0 0);
  background-size: 14px 2px, 2px 14px;
  background-repeat: no-repeat;
  background-position: center;
}
.main::before { top: 10px; left: 10px; }
.main::after  { bottom: 10px; right: 10px; }

/* ---------- POST TITLE ---------- */
.entry-title {
  font-family: 'Noto Sans JP', sans-serif !important;
  font-weight: 900 !important;
  color: var(--gt-text-main) !important;
  border: none !important;
  padding: 0 0 28px !important;
  margin: 0 0 36px !important;
  line-height: 1.25 !important;
  font-size: 2.1em !important;
  border-bottom: 2px solid var(--gt-frame) !important;
  position: relative;
  letter-spacing: -0.005em;
}
.entry-title::before {
  content: 'FILE / AD-0457 / CLEARED';
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.48em;
  font-weight: 400;
  letter-spacing: 0.28em;
  color: var(--gt-accent);
  margin-bottom: 14px;
  text-transform: uppercase;
}
.entry-title::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 80px;
  height: 2px;
  background: var(--gt-accent);
}

/* ---------- HEADINGS (scoped to article body) ---------- */
.entry-content { counter-reset: h2-counter; }

.entry-content h2 {
  background: var(--gt-bg-primary) !important;
  color: var(--gt-text-main) !important;
  border: none !important;
  border-top: 2px solid var(--gt-frame) !important;
  border-bottom: 1px solid var(--gt-frame) !important;
  border-radius: 0 !important;
  padding: 16px 72px 16px 84px !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  font-weight: 900 !important;
  font-size: 1.4em !important;
  position: relative;
  counter-increment: h2-counter;
  margin: 56px 0 28px !important;
  line-height: 1.4;
  letter-spacing: 0.01em;
}
.entry-content h2::before {
  content: counter(h2-counter, decimal-leading-zero);
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-family: 'Bebas Neue', sans-serif;
  font-size: 1.95em;
  color: var(--gt-accent);
  font-weight: 400;
  line-height: 1;
  border-right: 1px solid var(--gt-frame);
  padding-right: 16px;
  letter-spacing: 0.02em;
}
.entry-content h2::after {
  content: '.END';
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.55em;
  color: var(--gt-accent);
  letter-spacing: 0.2em;
  font-weight: 700;
}

.entry-content h3 {
  border: none !important;
  border-left: 4px solid var(--gt-accent) !important;
  background: transparent !important;
  color: var(--gt-text-main) !important;
  padding: 6px 0 6px 16px !important;
  font-weight: 900 !important;
  font-size: 1.22em !important;
  margin: 40px 0 16px !important;
  font-family: 'Noto Sans JP', sans-serif;
}

.entry-content h4 {
  color: var(--gt-text-main) !important;
  border: none !important;
  border-bottom: 1px solid var(--gt-hairline) !important;
  padding: 4px 0 6px !important;
  font-weight: 700;
  margin: 28px 0 14px !important;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.95em;
  letter-spacing: 0.04em;
}
.entry-content h4::before { content: '> '; color: var(--gt-accent); }

/* ---------- TEXT & LINKS ---------- */
.entry-content p { color: var(--gt-text-main); margin-bottom: 1.4em; }
.entry-content a:not(.btn):not(.button):not(.wp-block-button__link):not(.blogcard-wrap a) {
  color: var(--gt-accent);
  text-decoration: none;
  border-bottom: 1px solid var(--gt-accent);
  transition: all 0.15s;
  padding: 0 2px;
}
.entry-content a:not(.btn):not(.button):not(.wp-block-button__link):not(.blogcard-wrap a):hover {
  background: var(--gt-accent);
  color: var(--gt-bg-content);
}

/* ---------- BUTTONS ---------- */
.btn, .button, .wp-block-button__link {
  background: var(--gt-accent) !important;
  color: var(--gt-bg-content) !important;
  font-family: 'Bebas Neue', sans-serif !important;
  font-weight: 400 !important;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-size: 1.15em !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 12px 32px !important;
  transition: all 0.15s;
  display: inline-block;
}
.btn::before, .button::before, .wp-block-button__link::before { content: '▸ '; }
.btn:hover, .button:hover, .wp-block-button__link:hover {
  background: var(--gt-bg-invert) !important;
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--gt-accent);
}

/* ---------- ENTRY CARDS ---------- */
.list, .related-entry-cards, .new-entry-cards { counter-reset: card-counter; }
.list .entry-card-wrap, .related-entry-card-wrap, .new-entry-card-wrap { counter-increment: card-counter; }

.entry-card, .related-entry-card-wrap, .new-entry-card-wrap {
  background-color: var(--gt-bg-content) !important;
  border: 1px solid var(--gt-frame) !important;
  border-radius: 0 !important;
  padding: 28px 24px 24px !important;
  transition: all 0.2s;
  position: relative;
  margin-bottom: 24px;
}
.entry-card::before, .related-entry-card-wrap::before, .new-entry-card-wrap::before {
  content: "N" counter(card-counter, decimal-leading-zero);
  position: absolute;
  top: -1px;
  left: 16px;
  background: var(--gt-accent);
  color: var(--gt-bg-content);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.7em;
  font-weight: 700;
  padding: 2px 10px;
  letter-spacing: 0.15em;
}
.entry-card:hover, .related-entry-card-wrap:hover, .new-entry-card-wrap:hover {
  transform: translate(-3px, -3px);
  box-shadow: 5px 5px 0 var(--gt-accent);
}
.entry-card-title, .related-entry-card-title, .new-entry-card-title {
  color: var(--gt-text-main) !important;
  font-weight: 900 !important;
}
.entry-card-snippet, .related-entry-card-snippet, .new-entry-card-snippet {
  color: var(--gt-text-sub) !important;
  font-size: 0.88em;
}

/* ---------- SIDEBAR WIDGETS（H2/H3継承を完全リセット） ---------- */
#sidebar { counter-reset: widget-counter; }
.widget {
  background-color: var(--gt-bg-content) !important;
  border: 1px solid var(--gt-frame) !important;
  border-radius: 0 !important;
  padding: 28px 18px 18px !important;
  position: relative;
  margin-bottom: 24px;
  counter-increment: widget-counter;
}
.widget::before {
  content: 'MOD / ' counter(widget-counter, decimal-leading-zero);
  position: absolute;
  top: -1px;
  right: 12px;
  background: var(--gt-bg-invert);
  color: var(--gt-bg-primary);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.68em;
  padding: 2px 10px;
  letter-spacing: 0.15em;
  font-weight: 700;
}

/* ウィジェットタイトル：H2/H3スタイル継承を完全に切る */
.widget h1, .widget h2, .widget h3, .widget h4, .widget h5, .widget h6,
.widget-title, .widget .widget-title {
  background: transparent !important;
  border: none !important;
  border-top: none !important;
  border-bottom: 1px solid var(--gt-frame) !important;
  border-left: none !important;
  border-right: none !important;
  border-radius: 0 !important;
  padding: 0 0 10px !important;
  margin: 0 0 14px !important;
  font-family: 'Bebas Neue', sans-serif !important;
  font-weight: 400 !important;
  font-size: 1.18em !important;
  letter-spacing: 0.1em !important;
  color: var(--gt-text-main) !important;
  line-height: 1.2 !important;
  counter-increment: none !important;
  text-transform: uppercase;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  width: 100%;
}
.widget h1::before, .widget h2::before, .widget h3::before, .widget h4::before, .widget h5::before, .widget h6::before,
.widget-title::before {
  content: '' !important;
  display: block !important;
  width: 6px !important;
  height: 0.88em !important;
  background: var(--gt-accent) !important;
  flex-shrink: 0 !important;
  position: static !important;
  transform: translateY(-0.04em) !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.widget h1::after, .widget h2::after, .widget h3::after, .widget h4::after, .widget h5::after, .widget h6::after,
.widget-title::after { content: none !important; display: none !important; }

.widget ul li, .widget ol li { line-height: 1.7; }
.widget a { color: var(--gt-text-main) !important; transition: color 0.15s; }
.widget a:hover { color: var(--gt-accent) !important; }

/* ---------- CODE / PRE ---------- */
pre, code { font-family: 'JetBrains Mono', monospace !important; border-radius: 0 !important; }
pre {
  background-color: var(--gt-bg-invert) !important;
  color: var(--gt-bg-primary) !important;
  border: 1px solid var(--gt-frame) !important;
  border-left: 4px solid var(--gt-accent) !important;
  padding: 20px !important;
}
code {
  padding: 2px 6px !important;
  background: var(--gt-bg-primary) !important;
  color: var(--gt-accent) !important;
  border: 1px solid var(--gt-hairline) !important;
}
pre code {
  background: transparent !important;
  color: var(--gt-bg-primary) !important;
  border: none !important;
}

/* ---------- TABLE ---------- */
table {
  background-color: var(--gt-bg-content);
  border: 1px solid var(--gt-frame);
  border-collapse: collapse;
  width: 100%;
  margin: 24px 0;
}
th {
  background-color: var(--gt-bg-invert) !important;
  color: var(--gt-bg-primary) !important;
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  letter-spacing: 0.1em;
  font-size: 1.05em;
  border: 1px solid var(--gt-frame) !important;
  padding: 12px !important;
  text-align: left;
}
td {
  color: var(--gt-text-main) !important;
  border: 1px solid var(--gt-hairline) !important;
  padding: 12px !important;
}
tr:hover td { background-color: var(--gt-bg-card); }

/* ---------- BLOCKQUOTE ---------- */
blockquote {
  background-color: var(--gt-bg-card) !important;
  border: 1px solid var(--gt-frame) !important;
  border-left: 6px solid var(--gt-accent) !important;
  border-radius: 0 !important;
  color: var(--gt-text-main);
  padding: 24px !important;
  position: relative;
  margin: 32px 0;
}
blockquote::before {
  content: "MANDATE: NOTE";
  position: absolute;
  top: -11px;
  left: 16px;
  background: var(--gt-accent);
  color: var(--gt-bg-content);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.7em;
  padding: 2px 10px;
  letter-spacing: 0.15em;
  font-weight: 700;
}

/* ---------- SPEECH (Chua) ---------- */
.speech-wrap {
  background-color: var(--gt-bg-content) !important;
  border: 1px solid var(--gt-accent) !important;
  border-radius: 0 !important;
  padding: 26px 24px 20px !important;
  position: relative;
  margin: 32px 0;
}
.speech-wrap::before {
  content: "AI-ASSIST / CHUA / GTECH-001";
  position: absolute;
  top: -11px;
  left: 16px;
  background: var(--gt-bg-content);
  color: var(--gt-accent);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.7em;
  padding: 2px 10px;
  letter-spacing: 0.15em;
  border: 1px solid var(--gt-accent);
  font-weight: 700;
}
.speech-balloon {
  background-color: transparent !important;
  color: var(--gt-text-main) !important;
  border: none !important;
  border-radius: 0 !important;
}

/* ---------- FOOTER（フッターのサイト名・タグライン重なり修正） ---------- */
.footer {
  background-color: var(--gt-bg-invert) !important;
  color: var(--gt-text-mute);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.78em;
  position: relative;
  border-top: none;
  padding: 40px 24px 48px !important;
}
.footer::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: var(--gt-accent);
}
.footer::after {
  content: '// GTECH // ALL FILES INDEXED // STAY ALERT. STAY INFORMED. //';
  position: absolute;
  bottom: 14px;
  left: 0; right: 0;
  text-align: center;
  font-size: 9px;
  letter-spacing: 0.3em;
  color: var(--gt-text-mute);
  white-space: nowrap;
}
.footer a { color: var(--gt-accent) !important; border-bottom: none !important; }

/* フッター内のサイト名（黒×黒で重なる問題） */
.footer .site-name-text {
  display: inline-flex !important;
  align-items: center;
  gap: 10px;
}
.footer .site-name-text,
.footer .site-name-text a,
.footer .logo-text,
.footer .logo-text a {
  color: var(--gt-text-on-dark) !important;
  font-size: 1.35em !important;
  font-family: 'Bebas Neue', sans-serif !important;
  letter-spacing: 0.02em !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  text-decoration: none !important;
}
.footer .site-name-text::before {
  content: "";
  display: block;
  width: 11px;
  height: 0.88em;
  background: var(--gt-accent);
  flex-shrink: 0;
  transform: translateY(-0.04em);
}
.footer .tagline {
  color: var(--gt-text-mute) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.85em !important;
  letter-spacing: 0.2em;
}
.footer .copyright {
  color: var(--gt-text-mute);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.85em;
  letter-spacing: 0.05em;
}

/* ---------- TOC ---------- */
.toc {
  background-color: var(--gt-bg-card) !important;
  border: 1px solid var(--gt-frame) !important;
  border-radius: 0 !important;
  padding: 28px 24px !important;
  position: relative;
  margin: 32px 0;
}
.toc::before {
  content: 'CONTENTS';
  position: absolute;
  top: -9px;
  left: 14px;
  background: #fff;
  color: var(--gt-text-mid, #8c8c87);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.62em;
  padding: 0 8px;
  letter-spacing: 0.22em;
  font-weight: 600;
  border: 1px solid var(--gt-hairline, #e6e6e0);
  line-height: 1.4;
}
.toc-title {
  font-family: 'Bebas Neue', sans-serif !important;
  color: var(--gt-text-main) !important;
  letter-spacing: 0.15em;
  font-size: 1.35em !important;
  margin-bottom: 14px !important;
  font-weight: 400 !important;
}

/* ---------- BLOGCARD ---------- */
.blogcard {
  background-color: var(--gt-bg-card) !important;
  border: 1px solid var(--gt-frame) !important;
  border-left: 4px solid var(--gt-accent) !important;
  border-radius: 0 !important;
}
.blogcard-title { color: var(--gt-text-main) !important; font-weight: 900 !important; }
.blogcard-snippet { color: var(--gt-text-sub) !important; }

/* ---------- BREADCRUMB ---------- */
.breadcrumb {
  color: var(--gt-text-mute);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.78em;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--gt-hairline);
  padding-bottom: 12px;
  margin-bottom: 24px;
}
.breadcrumb a { color: var(--gt-accent); border-bottom: none; }

/* ---------- LISTS ---------- */
.entry-content ul li::marker { color: var(--gt-accent); }
.entry-content ol { counter-reset: ol-counter; list-style: none; padding-left: 0; }
.entry-content ol > li {
  counter-increment: ol-counter;
  padding-left: 56px;
  position: relative;
  margin-bottom: 14px;
}
.entry-content ol > li::before {
  content: counter(ol-counter, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 0;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 1.4em;
  color: var(--gt-accent);
  letter-spacing: 0.04em;
  min-width: 42px;
  border-right: 2px solid var(--gt-frame);
  padding-right: 10px;
  line-height: 1.3;
}

/* ---------- LAYOUT BALANCE ---------- */
#content { max-width: 1200px; margin: 0 auto; }
.entry-content > * + * { margin-top: 1em; }
.entry-content h2 + p,
.entry-content h3 + p,
.entry-content h4 + p { margin-top: 0.8em; }

/* ---------- SCROLLBAR ---------- <:-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--gt-bg-primary); }
::-webkit-scrollbar-thumb { background: var(--gt-frame); }
::-webkit-scrollbar-thumb:hover { background: var(--gt-accent); }

/* ---------- RESPONSIVE ---------- */
@media (max-width: 768px) {
  body { font-size: 15px; background-size: 30px 30px; }
  .main { padding: 32px 16px; }
  .header .site-name-text { font-size: 1.8em !important; }
  .entry-title { font-size: 1.5em !important; }
  .entry-content h2 {
    padding: 12px 50px 12px 60px !important;
    font-size: 1.15em !important;
  }
  .entry-content h2::before { font-size: 1.5em; left: 12px; padding-right: 10px; }
  .entry-content h2::after { font-size: 0.5em; right: 8px; }
  .main::before, .main::after { width: 12px; height: 12px; }
  .header::after { font-size: 7px; letter-spacing: 0.2em; padding: 2px 8px; }
  .footer::after { font-size: 7px; letter-spacing: 0.2em; }
  .footer { padding: 32px 16px 40px !important; }
}

/* ============ v3.5 ARTICLE LAYOUT FIXES ============ */
/* H2: トーンダウン */
.entry-content h2 {
  font-size: 1.25em !important;
  padding: 12px 56px 12px 72px !important;
  margin: 44px 0 22px !important;
}
.entry-content h2::before {
  font-size: 1.6em;
  padding-right: 12px;
  left: 16px;
}
.entry-content h2::after {
  font-size: 0.5em;
  right: 14px;
}

/* H3: 余白調整 + 絵文字対応 */
.entry-content h3 {
  padding: 6px 0 6px 18px !important;
  font-size: 1.15em !important;
  margin: 32px 0 14px !important;
}

/* コードブロックを軽量＆コピーボタン追加 */
.entry-content pre {
  background-color: #FAFAF7 !important;
  color: var(--gt-text-main) !important;
  border: 1px solid var(--gt-hairline) !important;
  border-left: 3px solid var(--gt-accent) !important;
  padding: 14px 16px !important;
  font-size: 0.85em !important;
  position: relative !important;
  white-space: pre-wrap;
  word-wrap: break-word;
}
.entry-content pre code {
  background: transparent !important;
  color: var(--gt-text-main) !important;
  font-size: 1em;
  border: none !important;
  padding: 0 !important;
}
.gt-copy-btn {
  position: absolute;
  top: 6px;
  right: 6px;
  background: var(--gt-bg-invert);
  color: var(--gt-bg-primary);
  border: none;
  padding: 4px 9px 4px 8px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.68em;
  letter-spacing: 0.14em;
  cursor: pointer;
  border-radius: 0;
  transition: opacity 0.15s, background-color 0.15s, color 0.15s;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  line-height: 1;
  opacity: 0.72;
  font-weight: 600;
}
.gt-copy-btn:hover {
  opacity: 1;
  background: var(--gt-accent);
  color: #fff;
}
.gt-copy-btn.gt-copied,
.gt-copy-btn.copied {
  opacity: 1;
  background: var(--gt-accent);
  color: #fff;
}
.gt-copy-btn .gt-copy-icon {
  display: block;
  flex: 0 0 auto;
}
.gt-copy-btn .gt-copy-label {
  display: inline-block;
  white-space: nowrap;
  transform: translateY(0.5px);
}

/* 目次コンパクト化 */
.toc {
  padding: 22px 18px 18px !important;
}
.toc-content li {
  margin: 2px 0 !important;
  line-height: 1.55 !important;
}
.toc-content ol, .toc-content ul {
  padding-left: 14px !important;
  margin: 4px 0 !important;
}
.toc-content a {
  padding: 1px 0;
  display: inline-block;
}


/* ============================================
   v3.6 目次のスマートリビルド & H3カブり修正
============================================ */

/* ---------- 目次：余分な装飾を全部はがす ---------- */
.toc {
  background: #fff !important;
  border: 1px solid var(--gt-hairline, #e6e6e0) !important;
  padding: 28px 24px 22px !important;
}
.toc-title {
  display: inline-block;
  font-family: 'Bebas Neue', sans-serif !important;
  font-size: 1.05em !important;
  letter-spacing: 0.22em !important;
  color: var(--gt-text-main, #1a1a1a) !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
}
.toc-title::before { content: none !important; }

/* 「目次」のアイコンを消す（Cocoonの丸い灰色アイコン） */
.toc-title i,
.toc-title .fa,
.toc-title svg { display: none !important; }

/* 開閉トグル */
.toc-checkbox + label,
.toc .toc-open-close-button {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.62em !important;
  letter-spacing: 0.18em !important;
  color: var(--gt-text-mid, #8c8c87) !important;
  text-decoration: none !important;
  background: none !important;
  border: 1px solid var(--gt-hairline, #e6e6e0) !important;
  padding: 1px 8px !important;
  margin-left: 10px !important;
  vertical-align: middle !important;
}

/* リスト構造の整え */
.toc-content > ol,
.toc-content > ul {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  counter-reset: gt-toc-l1;
}
.toc-content > ol > li,
.toc-content > ul > li {
  counter-increment: gt-toc-l1;
  margin: 0 !important;
  padding: 8px 0 8px 0 !important;
  border-bottom: 1px dashed var(--gt-hairline, #e6e6e0);
  position: relative;
}
.toc-content > ol > li:last-child,
.toc-content > ul > li:last-child { border-bottom: none; }

/* L1 のナンバリング（赤い▶アイコンを撤去して数字に） */
.toc-content > ol > li::marker,
.toc-content > ul > li::marker { content: '' !important; }
.toc-content > ol > li > a,
.toc-content > ul > li > a {
  display: inline-block;
  font-weight: 700;
  color: var(--gt-text-main, #1a1a1a) !important;
  text-decoration: none !important;
  font-size: 0.98em;
  padding-left: 30px;
  position: relative;
}
.toc-content > ol > li > a::before,
.toc-content > ul > li > a::before {
  content: counter(gt-toc-l1, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 1px;
  font-family: 'JetBrains Mono', monospace;
  color: var(--gt-accent, #e63946);
  font-size: 0.78em;
  font-weight: 800;
  letter-spacing: 0.05em;
}

/* L2 サブ項目：縦線を薄く、数字を控えめに */
.toc-content > ol > li > ol,
.toc-content > ol > li > ul,
.toc-content > ul > li > ol,
.toc-content > ul > li > ul {
  margin: 6px 0 0 0 !important;
  padding: 0 0 0 30px !important;
  border-left: none !important;
  list-style: none !important;
  counter-reset: gt-toc-l2;
}
.toc-content > ol > li > ol > li,
.toc-content > ol > li > ul > li,
.toc-content > ul > li > ol > li,
.toc-content > ul > li > ul > li {
  counter-increment: gt-toc-l2;
  margin: 0 !important;
  padding: 4px 0 4px 28px !important;
  position: relative;
  border: none !important;
  background: none !important;
}
.toc-content > ol > li > ol > li::before,
.toc-content > ol > li > ul > li::before,
.toc-content > ul > li > ol > li::before,
.toc-content > ul > li > ul > li::before {
  content: counter(gt-toc-l2, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 6px;
  font-family: 'JetBrains Mono', monospace;
  color: var(--gt-text-mid, #b3b3ad);
  font-size: 0.7em;
  font-weight: 600;
  letter-spacing: 0.04em;
}
.toc-content > ol > li > ol > li > a,
.toc-content > ol > li > ul > li > a,
.toc-content > ul > li > ol > li > a,
.toc-content > ul > li > ul > li > a {
  color: var(--gt-text-sub, #4a4a45) !important;
  text-decoration: none !important;
  font-size: 0.92em;
  font-weight: 400;
  line-height: 1.55;
  display: inline-block;
}

/* L1にぶら下がる赤▶を撤去 */
.toc-content li > .toc-content-marker,
.toc-content li::marker { display: none !important; }

/* ホバー時 */
.toc-content a:hover {
  color: var(--gt-accent, #e63946) !important;
  text-decoration: none !important;
}

/* ---------- H3：Cocoonデフォルトの::before装飾を完全に消す ---------- */
.entry-content h3::before,
.entry-content h3::after {
  display: none !important;
  content: none !important;
}
/* 自前のH3スタイルを再宣言（::before装飾が無いシンプル版） */
.entry-content h3 {
  padding: 6px 0 6px 14px !important;
  position: relative;
  background: none !important;
}

/* ---------- H4のチェック装飾も同様に整理 ---------- */
.entry-content h4::before {
  content: '> ' !important;
  display: inline !important;
  color: var(--gt-accent) !important;
  position: static !important;
  width: auto !important;
  margin-right: 4px;
}


/* ============================================
   v3.6.1 目次セレクタを Cocoon の構造に厳密適合
============================================ */

/* ol.toc-list (Cocoonが付ける実際のクラス) で確実に上書き */
.toc-content ol.toc-list,
.toc-content > ol {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  counter-reset: gt-toc-l1 !important;
}
.toc-content ol.toc-list > li,
.toc-content > ol > li {
  counter-increment: gt-toc-l1 !important;
  margin: 0 !important;
  padding: 10px 0 10px 36px !important;
  border-bottom: 1px dashed var(--gt-hairline, #e6e6e0) !important;
  position: relative !important;
  list-style: none !important;
  background: none !important;
}
.toc-content ol.toc-list > li:last-child,
.toc-content > ol > li:last-child { border-bottom: none !important; }
.toc-content ol.toc-list > li::marker,
.toc-content > ol > li::marker { content: '' !important; }
.toc-content ol.toc-list > li::before,
.toc-content > ol > li::before {
  content: counter(gt-toc-l1, decimal-leading-zero) !important;
  position: absolute !important;
  left: 2px !important;
  top: 12px !important;
  font-family: 'JetBrains Mono', monospace !important;
  color: var(--gt-accent, #e63946) !important;
  font-size: 0.78em !important;
  font-weight: 800 !important;
  letter-spacing: 0.05em !important;
}
.toc-content ol.toc-list > li > a,
.toc-content > ol > li > a {
  display: inline-block !important;
  font-weight: 700 !important;
  color: var(--gt-text-main, #1a1a1a) !important;
  text-decoration: none !important;
  font-size: 0.98em !important;
  padding: 0 !important;
  line-height: 1.5 !important;
}

/* L2 (li内の子ol) */
.toc-content ol.toc-list > li > ol,
.toc-content > ol > li > ol {
  margin: 8px 0 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
  counter-reset: gt-toc-l2 !important;
  border-left: none !important;
}
.toc-content ol.toc-list > li > ol > li,
.toc-content > ol > li > ol > li {
  counter-increment: gt-toc-l2 !important;
  margin: 0 !important;
  padding: 4px 0 4px 28px !important;
  position: relative !important;
  list-style: none !important;
  background: none !important;
  border: none !important;
}
.toc-content ol.toc-list > li > ol > li::before,
.toc-content > ol > li > ol > li::before {
  content: counter(gt-toc-l2, decimal-leading-zero) !important;
  position: absolute !important;
  left: 0 !important;
  top: 6px !important;
  font-family: 'JetBrains Mono', monospace !important;
  color: var(--gt-text-mid, #b3b3ad) !important;
  font-size: 0.7em !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
}
.toc-content ol.toc-list > li > ol > li > a,
.toc-content > ol > li > ol > li > a {
  color: var(--gt-text-sub, #4a4a45) !important;
  text-decoration: none !important;
  font-size: 0.9em !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  padding: 0 !important;
  display: inline-block !important;
}

/* 目次のリンクhover (再宣言) */
.toc-content a:hover { color: var(--gt-accent, #e63946) !important; }


/* ============================================
   v3.6.2 a::before 重複番号を抹消 ＆ 末尾免責文をひっそり
============================================ */

/* aタグ側に絶対配置されていた重複「01」を完全削除（被りの真犯人） */
.toc-content a::before,
.toc-content > ol > li > a::before,
.toc-content > ul > li > a::before,
.toc-content > ol > li > ol > li > a::before,
.toc-content > ol > li > ul > li > a::before,
.toc-content > ul > li > ol > li > a::before,
.toc-content > ul > li > ul > li > a::before,
.toc-content ol.toc-list > li > a::before,
.toc-content ol.toc-list a::before {
  content: none !important;
  display: none !important;
}

/* 念のため li::before だけが残るよう、左端パディングを微増 */
.toc-content ol.toc-list > li,
.toc-content > ol > li {
  padding-left: 42px !important;
}
.toc-content ol.toc-list > li::before,
.toc-content > ol > li::before {
  left: 6px !important;
  top: 12px !important;
  width: auto !important;
  min-width: 22px !important;
}

/* ---------- 記事末尾の免責文をひっそり配置 ---------- */
.entry-content > p:last-of-type {
  margin: 36px 0 16px !important;
  padding: 14px 0 0 !important;
  border-top: 1px dashed var(--gt-hairline, #e6e6e0) !important;
}
.entry-content > p:last-of-type > em,
.entry-content > p:last-of-type > em:only-child {
  font-size: 0.78em !important;
  color: #9a9a93 !important;
  font-style: italic !important;
  line-height: 1.7 !important;
  font-weight: 400 !important;
  letter-spacing: 0.01em !important;
}


/* ============================================
   v3.6.3 目次の border-bottom / 縦バー完全除去
            ＆ シェア・フォロータイトルを黒に
============================================ */

/* 目次内の全リンクの border / 下線 / outline を完全消去 */
.toc a,
.toc-content a,
.toc-content ol.toc-list a,
.toc-content ol.toc-list > li > a,
.toc-content ol.toc-list > li > ol > li > a,
.toc-content > ol > li > a,
.toc-content > ol > li > ol > li > a,
.toc-content > ul a {
  border: none !important;
  border-bottom: none !important;
  text-decoration: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: none !important;
}
.toc a::before,
.toc a::after,
.toc-content a::before,
.toc-content a::after {
  content: none !important;
  display: none !important;
  border: none !important;
}

/* hover 時にも下線が出ないように上書き */
.toc a:hover,
.toc-content a:hover {
  border-bottom: none !important;
  text-decoration: none !important;
  color: var(--gt-accent, #e63946) !important;
}

/* L1 a：li 内の余白を確保（縦バーが見える件への保険） */
.toc-content ol.toc-list > li > a,
.toc-content > ol > li > a {
  padding: 0 !important;
  margin: 0 !important;
  border-left: none !important;
  background: none !important;
  display: inline-block;
}

/* ---------- シェア・フォロー見出し ---------- */
/* 「シェアする」「○○をフォローする」見出しを黒く */
.sns-share-message,
.sns-follow-message,
.sns-share .sns-share-message,
.sns-follow .sns-follow-message,
.share-buttons-title,
.follow-buttons-title {
  color: var(--gt-text-main, #1a1a1a) !important;
  font-weight: 700 !important;
  font-family: 'Bebas Neue', 'Noto Sans JP', sans-serif !important;
  letter-spacing: 0.16em !important;
  font-size: 0.95em !important;
}
/* タイトル下のアンダーラインアクセント */
.sns-share-message::after,
.sns-follow-message::after {
  background: var(--gt-accent, #e63946) !important;
}


/* ============================================
   v3.6.4 目次番号 absolute → inline-block 抜本転換
   （これで被りは構造的に消える）
============================================ */

/* L1：li padding を 0 に、::before を inline で番号として描画 */
.toc-content ol.toc-list > li,
.toc-content > ol > li {
  padding: 10px 0 10px 0 !important;
  position: static !important;
  border-bottom: 1px dashed var(--gt-hairline, #e6e6e0) !important;
  list-style: none !important;
  display: block !important;
}
.toc-content ol.toc-list > li:last-child,
.toc-content > ol > li:last-child {
  border-bottom: none !important;
}

.toc-content ol.toc-list > li::before,
.toc-content > ol > li::before {
  content: counter(gt-toc-l1, decimal-leading-zero) !important;
  position: static !important;
  display: inline-block !important;
  width: auto !important;
  min-width: 28px !important;
  margin-right: 14px !important;
  font-family: 'JetBrains Mono', monospace !important;
  color: var(--gt-accent, #e63946) !important;
  font-size: 0.82em !important;
  font-weight: 800 !important;
  letter-spacing: 0.05em !important;
  vertical-align: baseline !important;
  text-align: left !important;
}

/* L1 a は通常 inline で並ぶ */
.toc-content ol.toc-list > li > a,
.toc-content > ol > li > a {
  display: inline !important;
  padding: 0 !important;
  margin: 0 !important;
  vertical-align: baseline !important;
  font-weight: 700 !important;
  color: var(--gt-text-main, #1a1a1a) !important;
}

/* L2：同じく inline-block ベースに */
.toc-content ol.toc-list > li > ol,
.toc-content > ol > li > ol {
  margin: 8px 0 0 0 !important;
  padding: 0 0 0 42px !important;
  border: none !important;
  list-style: none !important;
}
.toc-content ol.toc-list > li > ol > li,
.toc-content > ol > li > ol > li {
  padding: 4px 0 !important;
  margin: 0 !important;
  border: none !important;
  background: none !important;
  position: static !important;
  list-style: none !important;
  display: block !important;
}
.toc-content ol.toc-list > li > ol > li::before,
.toc-content > ol > li > ol > li::before {
  content: counter(gt-toc-l2, decimal-leading-zero) !important;
  position: static !important;
  display: inline-block !important;
  width: auto !important;
  min-width: 22px !important;
  margin-right: 10px !important;
  font-family: 'JetBrains Mono', monospace !important;
  color: var(--gt-text-mid, #b3b3ad) !important;
  font-size: 0.72em !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  vertical-align: baseline !important;
  text-align: left !important;
}
.toc-content ol.toc-list > li > ol > li > a,
.toc-content > ol > li > ol > li > a {
  display: inline !important;
  padding: 0 !important;
  margin: 0 !important;
  color: var(--gt-text-sub, #4a4a45) !important;
  font-size: 0.95em !important;
  font-weight: 400 !important;
  vertical-align: baseline !important;
}

/* a::before は全部封印（番号は li::before のみ）*/
.toc-content a::before,
.toc-content a::after,
.toc-content ol.toc-list a::before,
.toc-content ol.toc-list a::after {
  content: none !important;
  display: none !important;
}

/* hover/border-bottomは消す */
.toc-content a,
.toc-content a:hover {
  border: none !important;
  border-bottom: none !important;
  text-decoration: none !important;
  outline: none !important;
  background: none !important;
  box-shadow: none !important;
}
.toc-content a:hover {
  color: var(--gt-accent, #e63946) !important;
}


/* ============================================
   v3.7 H2の謎番号「01-05」完全抹消 ＆ チュアの吹き出し化
============================================ */

/* ---------- 1. H2の左にデカく出てた連番カウンタを完全削除 ---------- */
.entry-content h2::before,
.entry-content h2::after,
.entry-content > h2::before,
.entry-content > h2::after {
  content: none !important;
  display: none !important;
  counter-reset: none !important;
}
.entry-content {
  counter-reset: none !important;
}

/* H2を再宣言（左の番号スペースを使わない自然な見出しに） */
.entry-content h2 {
  font-size: 1.3em !important;
  padding: 14px 18px !important;
  margin: 48px 0 24px !important;
  background: #fafaf7 !important;
  border: none !important;
  border-left: 4px solid var(--gt-accent, #e63946) !important;
  color: var(--gt-text-main, #1a1a1a) !important;
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
}

/* ---------- 2. チュアの吹き出し（JSでクラス付与）---------- */
.chua-talk {
  background: linear-gradient(180deg, #fff 0%, #faf9f5 100%) !important;
  border: 1px solid var(--gt-hairline, #e6e6e0) !important;
  border-left: 4px solid var(--gt-accent, #e63946) !important;
  padding: 18px 22px 18px 70px !important;
  margin: 28px 0 !important;
  position: relative !important;
  border-radius: 0 !important;
  font-style: normal !important;
}
.chua-talk::before {
  content: 'CHUA' !important;
  position: absolute !important;
  top: 18px !important;
  left: 16px !important;
  width: 42px !important;
  height: 42px !important;
  background: var(--gt-bg-invert, #111) !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: 'Bebas Neue', sans-serif !important;
  font-size: 0.78em !important;
  letter-spacing: 0.1em !important;
  border-radius: 50% !important;
}
.chua-talk p {
  margin: 0 0 8px !important;
  color: var(--gt-text-main, #1a1a1a) !important;
  line-height: 1.75 !important;
}
.chua-talk p:last-child { margin-bottom: 0 !important; }

/* ---------- 3. チュアの一言（小さめ・本文中の引用形）---------- */
.chua-comment {
  background: #fff !important;
  border: none !important;
  border-left: 3px solid var(--gt-accent, #e63946) !important;
  padding: 8px 0 8px 16px !important;
  margin: 14px 0 !important;
  font-size: 0.95em !important;
  color: var(--gt-text-sub, #4a4a45) !important;
}
.chua-comment::before {
  content: 'チュアの一言' !important;
  display: block !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.7em !important;
  letter-spacing: 0.18em !important;
  color: var(--gt-accent, #e63946) !important;
  font-weight: 700 !important;
  margin-bottom: 4px !important;
}
.chua-comment p { margin: 0 !important; line-height: 1.7 !important; }

/* ---------- 4. 画像プレースホルダー枠 ---------- */
.image-placeholder {
  background: #f5f5f0 !important;
  border: 1px dashed #cfcfc8 !important;
  padding: 28px 16px !important;
  text-align: center !important;
  color: #999 !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.78em !important;
  letter-spacing: 0.08em !important;
  margin: 20px 0 !important;
}
.image-placeholder::before {
  content: '[ IMAGE ]' !important;
  display: block !important;
  font-size: 0.85em !important;
  color: var(--gt-accent, #e63946) !important;
  margin-bottom: 6px !important;
  letter-spacing: 0.2em !important;
}

/* ---------- 5. 出典 ---------- */
.source-citation {
  font-size: 0.82em !important;
  color: var(--gt-text-mid, #8c8c87) !important;
  margin: 6px 0 28px !important;
  padding: 6px 0 0 !important;
  border-top: 1px dotted var(--gt-hairline, #e6e6e0) !important;
}
.source-citation::before {
  content: 'SOURCE — ' !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.85em !important;
  letter-spacing: 0.16em !important;
  color: var(--gt-accent, #e63946) !important;
  font-weight: 700 !important;
}
.source-citation a {
  color: var(--gt-text-sub, #4a4a45) !important;
  text-decoration: underline !important;
  text-decoration-color: var(--gt-hairline, #e6e6e0) !important;
}
.source-citation a:hover {
  color: var(--gt-accent, #e63946) !important;
}

/* ---------- 6. 関連記事カード ---------- */
.related-articles-title {
  font-family: 'Bebas Neue', sans-serif !important;
  letter-spacing: 0.2em !important;
  font-size: 0.95em !important;
  color: var(--gt-text-main, #1a1a1a) !important;
  border-bottom: 2px solid var(--gt-accent, #e63946) !important;
  padding-bottom: 6px !important;
  margin: 40px 0 14px !important;
  display: inline-block !important;
}

/* ---------- 7. ニュースアイテムの間に余白を増やす ---------- */
.entry-content h3 {
  margin-top: 36px !important;
}
.entry-content h3 + p {
  margin-top: 12px !important;
}

/* 段落の line-height 微増（読みやすく） */
.entry-content p {
  line-height: 1.85 !important;
}

/* hr を細く繊細に */
.entry-content hr {
  border: none !important;
  border-top: 1px solid var(--gt-hairline, #e6e6e0) !important;
  margin: 36px 0 !important;
}


/* ============================================
   v3.8 マーカー＆ハイライト効果 ＆ チュアアイコン画像対応
============================================ */

/* ---------- マーカー（蛍光ペン風） ---------- */
.entry-content mark,
.entry-content .gt-mark {
  background: linear-gradient(transparent 62%, #ffec80 62%, #ffec80 92%, transparent 92%) !important;
  padding: 0 3px !important;
  color: inherit !important;
  font-weight: 700 !important;
}

/* 赤系マーカー */
.entry-content .gt-mark-red {
  background: linear-gradient(transparent 62%, #ffc9c0 62%, #ffc9c0 92%, transparent 92%) !important;
  padding: 0 3px !important;
  color: inherit !important;
  font-weight: 700 !important;
}

/* ハイライトボックス（callout） */
.entry-content .gt-callout {
  background: #fffaf0 !important;
  border-left: 4px solid var(--gt-accent, #e63946) !important;
  padding: 14px 18px !important;
  margin: 20px 0 !important;
  border-radius: 0 !important;
}
.entry-content .gt-callout p { margin: 0 0 6px !important; }
.entry-content .gt-callout p:last-child { margin-bottom: 0 !important; }

/* 重要キーワード用バッジ */
.entry-content .gt-badge {
  display: inline-block !important;
  background: var(--gt-bg-invert, #111) !important;
  color: #fff !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.72em !important;
  padding: 2px 8px !important;
  letter-spacing: 0.14em !important;
  margin: 0 4px !important;
  vertical-align: 1px !important;
  font-weight: 700 !important;
}

/* リード文の「読了 約X分」用 */
.entry-content .gt-readtime {
  display: inline-block !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.78em !important;
  letter-spacing: 0.12em !important;
  color: var(--gt-text-mid, #8c8c87) !important;
  border: 1px solid var(--gt-hairline, #e6e6e0) !important;
  padding: 2px 10px !important;
  margin-top: 8px !important;
}

/* ---------- チュアアイコン：画像対応 ---------- */
/* デフォルトは「CHUA」テキスト。チュア画像があれば --gt-chua-icon に設定 */
:root {
  --gt-chua-icon: url('https://gargantuatech.com/wp-content/uploads/2026/05/chua-avatar-v5-calm.jpg');
}

/* チュア画像が設定されている場合 */
.chua-talk.has-chua-image::before,
.has-chua-image .chua-talk::before {
  content: '' !important;
  background: var(--gt-chua-icon) center/cover, var(--gt-bg-invert, #111) !important;
}

/* チュア画像をbodyレベルでセットするための utility class */
body.chua-image-loaded .chua-talk::before {
  content: '' !important;
  background-color: transparent !important;
  background-image: var(--gt-chua-icon) !important;
  background-size: cover !important;
  background-position: center !important;
  border: 2px solid var(--gt-accent, #e63946) !important;
}


/* ===== チュアアイコン: 円形強制＋被り回避 (v3.9) ===== */
.chua-image-loaded .chua-talk::before {
  width: 48px !important;
  height: 48px !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 50% !important;
  display: block !important;
  box-sizing: border-box !important;
  top: 18px !important;
  left: 18px !important;
  background-size: cover !important;
  background-position: center !important;
}
.chua-image-loaded .chua-talk {
  padding-left: 86px !important;
}


/* =============================================================
   v3.9 / v6フォーマット用クラス（Tier 1メディア対応）
   ============================================================= */

/* ----- HERO（記事冒頭） ----- */
.gt-hero {
  position: relative;
  padding: 8px 0 32px;
  margin: 0 0 36px;
  border-bottom: 1px solid var(--gt-hairline, #e6e6e0);
}
.gt-hero-label {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 12px;
  letter-spacing: 0.22em;
  color: var(--gt-text-mute, #9c9c95);
  margin-bottom: 18px;
  font-weight: 700;
}
.gt-hero-title {
  font-size: 34px !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
  color: var(--gt-text-main, #111) !important;
  margin: 0 0 22px !important;
  letter-spacing: -0.005em;
}
.gt-hero-title strong, .gt-hero-title mark {
  background: linear-gradient(transparent 70%, rgba(225,43,27,0.18) 70%);
  padding: 0 2px;
}
.gt-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  font-size: 13px;
  color: var(--gt-text-sub, #5c5c58);
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.05em;
}
@media (max-width: 700px) {
  .gt-hero-title { font-size: 24px !important; }
}

/* ----- TL;DR ボックス ----- */
.gt-tldr {
  background: #fafaf7;
  border: 1px solid var(--gt-hairline, #e6e6e0);
  border-left: 4px solid var(--gt-accent, #e12b1b);
  padding: 24px 28px 22px;
  margin: 36px 0;
}
.gt-tldr-label {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: var(--gt-accent, #e12b1b);
  margin-bottom: 14px;
}
.gt-tldr ul {
  margin: 0 !important;
  padding-left: 20px !important;
  list-style: disc !important;
}
.gt-tldr li {
  font-size: 15px !important;
  line-height: 1.75 !important;
  margin-bottom: 10px !important;
  color: var(--gt-text-main, #111) !important;
}
.gt-tldr li:last-child { margin-bottom: 0 !important; }

/* ----- 巨大数字（インフォグラフィック） ----- */
.gt-bignumber {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: 28px;
  padding: 38px 30px;
  margin: 40px 0;
  background: #111;
  color: #f4f4f0;
  align-items: center;
}
.gt-bignumber-value {
  font-family: 'Bebas Neue', 'Oswald', sans-serif;
  font-size: 92px;
  font-weight: 900;
  line-height: 1;
  color: var(--gt-accent, #e12b1b);
  letter-spacing: 0.02em;
}
.gt-bignumber-context {
  font-size: 15px;
  line-height: 1.75;
}
.gt-bignumber-context strong.gt-bn-label {
  display: block;
  font-size: 11px;
  color: rgba(255,255,255,0.6);
  margin-bottom: 10px;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.22em;
  font-weight: 700;
}
.gt-bignumber-context strong {
  color: #fff;
  font-weight: 800;
}
@media (max-width: 700px) {
  .gt-bignumber { grid-template-columns: 1fr; padding: 28px 22px; }
  .gt-bignumber-value { font-size: 64px; }
}

/* ----- 3社カード ----- */
.gt-3cards {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 16px;
  margin: 36px 0;
}
.gt-card {
  border: 1px solid var(--gt-hairline, #e6e6e0);
  padding: 22px 20px;
  background: #fff;
  display: flex;
  flex-direction: column;
}
.gt-card-num {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px;
  color: var(--gt-accent, #e12b1b);
  letter-spacing: 0.22em;
  margin-bottom: 8px;
  font-weight: 700;
}
.gt-card-company {
  font-size: 22px;
  font-weight: 800;
  margin-bottom: 4px;
  color: var(--gt-text-main, #111);
}
.gt-card-weapon {
  font-size: 17px;
  font-weight: 700;
  color: var(--gt-text-main, #111);
  border-top: 1px solid var(--gt-hairline, #e6e6e0);
  border-bottom: 1px solid var(--gt-hairline, #e6e6e0);
  padding: 10px 0;
  margin: 12px 0;
}
.gt-card-impact {
  font-size: 13px;
  color: var(--gt-text-sub, #5c5c58);
  line-height: 1.65;
  flex-grow: 1;
}
.gt-card-impact strong {
  color: var(--gt-text-main, #111);
  font-weight: 700;
}
@media (max-width: 700px) {
  .gt-3cards { grid-template-columns: 1fr; }
}

/* ----- 深掘りセクション（4層構造） ----- */
.gt-deepdive {
  margin: 48px 0;
  padding: 4px 0 0;
}
.gt-deepdive-tag {
  display: inline-block;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  background: var(--gt-accent, #e12b1b);
  color: #fff;
  padding: 5px 12px;
  margin-bottom: 16px;
}
.gt-deepdive h3 {
  font-size: 26px !important;
  font-weight: 800 !important;
  margin: 0 0 24px !important;
  line-height: 1.45 !important;
  border: none !important;
  padding: 0 !important;
}
.gt-layer {
  border-left: 3px solid var(--gt-hairline, #e6e6e0);
  padding: 4px 0 4px 22px;
  margin: 20px 0;
}
.gt-layer-label {
  display: block;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.2em;
  font-weight: 700;
  margin-bottom: 10px;
  text-transform: uppercase;
}
.gt-layer-fact   { border-left-color: #b8b8b0; }
.gt-layer-why    { border-left-color: var(--gt-accent, #e12b1b); }
.gt-layer-next   { border-left-color: #0066cc; }
.gt-layer-do     { border-left-color: #00997a; }
.gt-layer-fact .gt-layer-label   { color: #5c5c58; }
.gt-layer-why  .gt-layer-label   { color: var(--gt-accent, #e12b1b); }
.gt-layer-next .gt-layer-label   { color: #0066cc; }
.gt-layer-do   .gt-layer-label   { color: #00997a; }
.gt-layer p {
  font-size: 15px;
  line-height: 1.85;
  margin: 0;
}

/* ----- Pull Quote ----- */
.gt-pullquote {
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.55 !important;
  color: var(--gt-text-main, #111) !important;
  border-left: 4px solid var(--gt-accent, #e12b1b) !important;
  padding: 18px 0 18px 26px !important;
  margin: 44px 0 !important;
  background: none !important;
}
.gt-pullquote::before { content: none !important; }
.gt-pullquote cite {
  display: block;
  font-size: 13px;
  font-weight: 600;
  font-style: normal;
  color: var(--gt-text-mute, #9c9c95);
  margin-top: 10px;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.1em;
}
@media (max-width: 700px) {
  .gt-pullquote { font-size: 19px !important; }
}

/* ----- Action Box ----- */
.gt-actionbox {
  background: var(--gt-accent, #e12b1b);
  color: #fff;
  padding: 28px 30px 26px;
  margin: 44px 0;
}
.gt-actionbox-label {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  margin-bottom: 12px;
  opacity: 0.9;
  font-weight: 700;
}
.gt-actionbox h3 {
  font-size: 22px !important;
  font-weight: 800 !important;
  margin: 0 0 18px !important;
  color: #fff !important;
  border: none !important;
  padding: 0 !important;
  line-height: 1.45 !important;
}
.gt-actionbox ol {
  margin: 0 !important;
  padding-left: 22px !important;
  list-style: decimal !important;
  counter-reset: gt-action;
}
.gt-actionbox li {
  font-size: 15px !important;
  line-height: 1.75 !important;
  margin-bottom: 12px !important;
  color: #fff !important;
}
.gt-actionbox li:last-child { margin-bottom: 0 !important; }
.gt-actionbox strong {
  color: #fff !important;
  font-weight: 800;
}

/* ----- チュアの歴史的位置づけ（まとめの代替） ----- */
.gt-chua-historical {
  background: #fafaf7;
  border-top: 4px solid var(--gt-text-main, #111);
  padding: 32px 32px 28px 92px;
  margin: 48px 0;
  position: relative;
}
.gt-chua-historical::before {
  content: 'CHUA' !important;
  position: absolute !important;
  top: 28px !important;
  left: 24px !important;
  width: 48px !important;
  height: 48px !important;
  aspect-ratio: 1 / 1 !important;
  background: var(--gt-text-main, #111) !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: 'Bebas Neue', sans-serif !important;
  font-size: 0.78em !important;
  letter-spacing: 0.1em !important;
  border-radius: 50% !important;
  box-sizing: border-box !important;
}
.chua-image-loaded .gt-chua-historical::before {
  content: '' !important;
  background-color: transparent !important;
  background-image: var(--gt-chua-icon) !important;
  background-size: cover !important;
  background-position: center !important;
  border: 2px solid var(--gt-accent, #e12b1b) !important;
}
.gt-chua-historical-label {
  font-size: 11px !important;
  font-family: 'JetBrains Mono', ui-monospace, monospace !important;
  letter-spacing: 0.22em !important;
  color: var(--gt-text-mute, #9c9c95) !important;
  margin: 0 0 16px !important;
  font-weight: 700 !important;
  border: none !important;
  padding: 0 !important;
  background: none !important;
}
.gt-chua-historical p {
  font-size: 16px !important;
  line-height: 1.9 !important;
  margin: 0 0 14px !important;
}
.gt-chua-historical p:last-child { margin-bottom: 0 !important; }
.gt-chua-historical strong { font-weight: 700; }
.gt-chua-historical mark {
  background: linear-gradient(transparent 65%, rgba(225,43,27,0.22) 65%);
  padding: 0 2px;
}
@media (max-width: 700px) {
  .gt-chua-historical { padding: 26px 22px 22px; }
  .gt-chua-historical::before {
    position: relative !important;
    top: 0 !important;
    left: 0 !important;
    margin-bottom: 18px !important;
  }
}


/* ===== v3.10 / HEROサブタイトル追加 ===== */
.gt-hero-subtitle {
  font-size: 28px !important;
  font-weight: 800 !important;
  color: var(--gt-text-main, #111) !important;
  margin: 0 0 18px !important;
  line-height: 1.4 !important;
  letter-spacing: -0.005em;
  padding-left: 16px;
  border-left: 4px solid var(--gt-accent, #e12b1b);
}
@media (max-width: 700px) {
  .gt-hero-subtitle { font-size: 22px !important; }
}


/* ===== v3.11 / チュアアイコン拡大 (48px→72px) ===== */
.chua-image-loaded .chua-talk::before,
.chua-image-loaded .gt-chua-historical::before {
  width: 72px !important;
  height: 72px !important;
}
.chua-image-loaded .chua-talk {
  padding-left: 110px !important;
}
.gt-chua-historical {
  padding-left: 118px !important;
}
@media (max-width: 700px) {
  .chua-image-loaded .chua-talk::before,
  .chua-image-loaded .gt-chua-historical::before {
    width: 56px !important;
    height: 56px !important;
  }
  .chua-image-loaded .chua-talk { padding-left: 86px !important; }
}


/* ===== v3.12 / チュア表情差分変数（将来の表情切替UI用） ===== */
:root {
  --gt-chua-icon-pleased:    url('https://gargantuatech.com/wp-content/uploads/2026/05/chua-avatar-v5-pleased.jpg');
  --gt-chua-icon-puzzled:    url('https://gargantuatech.com/wp-content/uploads/2026/05/chua-avatar-v5-puzzled.jpg');
  --gt-chua-icon-thinking:   url('https://gargantuatech.com/wp-content/uploads/2026/05/chua-avatar-v5-thinking.jpg');
  --gt-chua-icon-explaining: url('https://gargantuatech.com/wp-content/uploads/2026/05/chua-avatar-v5-explaining.jpg');
  --gt-chua-icon-surprised:  url('https://gargantuatech.com/wp-content/uploads/2026/05/chua-avatar-v5-surprised.jpg');
}
/* 表情セレクター（本文で .chua-pleased などを追加して切替可能） */
.chua-image-loaded .chua-talk.chua-pleased::before,
.chua-image-loaded .gt-chua-historical.chua-pleased::before { background-image: var(--gt-chua-icon-pleased) !important; }
.chua-image-loaded .chua-talk.chua-puzzled::before,
.chua-image-loaded .gt-chua-historical.chua-puzzled::before { background-image: var(--gt-chua-icon-puzzled) !important; }
.chua-image-loaded .chua-talk.chua-thinking::before,
.chua-image-loaded .gt-chua-historical.chua-thinking::before { background-image: var(--gt-chua-icon-thinking) !important; }
.chua-image-loaded .chua-talk.chua-explaining::before,
.chua-image-loaded .gt-chua-historical.chua-explaining::before { background-image: var(--gt-chua-icon-explaining) !important; }
.chua-image-loaded .chua-talk.chua-surprised::before,
.chua-image-loaded .gt-chua-historical.chua-surprised::before { background-image: var(--gt-chua-icon-surprised) !important; }


/* =============================================================
   v3.13 / v6h ハウツー記事用クラス
   ============================================================= */

/* ----- gt-caveat（表・データの注意書きボックス） ----- */
.gt-caveat {
  background: #FFF8E1;
  border: 1px solid #FFD54F;
  border-left: 4px solid #F9A825;
  padding: 18px 22px;
  margin: 28px 0 12px;
}
.gt-caveat-label {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #B26A00;
  margin-bottom: 8px;
}
.gt-caveat p {
  font-size: 14px !important;
  line-height: 1.75 !important;
  margin: 0 !important;
  color: var(--gt-text-main, #111) !important;
}
.gt-caveat strong { font-weight: 700; }
.gt-caveat mark {
  background: linear-gradient(transparent 65%, rgba(249,168,37,0.30) 65%);
  padding: 0 2px;
}

/* ----- gt-target-audience（こんな人におすすめ／対象外） ----- */
.gt-target-audience {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 32px 0;
}
.gt-ta-block {
  border: 1px solid var(--gt-hairline, #e6e6e0);
  padding: 22px 22px 18px;
  background: #fff;
}
.gt-ta-yes { border-left: 4px solid #00997A; }
.gt-ta-no  { border-left: 4px solid #B0B0AB; }
.gt-ta-label {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  margin-bottom: 12px;
}
.gt-ta-yes .gt-ta-label { color: #00997A; }
.gt-ta-no .gt-ta-label { color: #5C5C58; }
.gt-ta-block ul {
  margin: 0 !important;
  padding-left: 20px !important;
}
.gt-ta-block li {
  font-size: 14px !important;
  line-height: 1.7 !important;
  margin-bottom: 8px !important;
}
.gt-ta-block li:last-child { margin-bottom: 0 !important; }
@media (max-width: 700px) {
  .gt-target-audience { grid-template-columns: 1fr; }
}

/* ----- gt-compare-table（比較表） ----- */
.gt-compare-table {
  width: 100%;
  border-collapse: collapse;
  margin: 24px 0 32px;
  font-size: 14px;
}
.gt-compare-table thead {
  background: var(--gt-bg-invert, #111);
  color: #fff;
}
.gt-compare-table th {
  padding: 12px 14px;
  text-align: left;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.05em;
}
.gt-compare-table td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--gt-hairline, #e6e6e0);
  vertical-align: top;
}
.gt-compare-table tbody tr:hover {
  background: #fafaf7;
}
.gt-compare-table td:first-child {
  font-weight: 700;
  white-space: nowrap;
}
@media (max-width: 700px) {
  .gt-compare-table { font-size: 12px; }
  .gt-compare-table th, .gt-compare-table td { padding: 8px 8px; }
}

/* ----- gt-failure-box（やってはいけないパターン警告） ----- */
.gt-failure-box {
  background: #FFEBEE;
  border: 1px solid #FFCDD2;
  border-left: 4px solid #C62828;
  padding: 24px 28px;
  margin: 32px 0;
}
.gt-failure-label {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: #C62828;
  margin-bottom: 12px;
}
.gt-failure-box ul {
  margin: 0 !important;
  padding-left: 22px !important;
}
.gt-failure-box li {
  font-size: 15px !important;
  line-height: 1.75 !important;
  margin-bottom: 10px !important;
  color: var(--gt-text-main, #111) !important;
}
.gt-failure-box li:last-child { margin-bottom: 0 !important; }
.gt-failure-box strong { color: #C62828; font-weight: 800; }

/* ----- gt-faq（FAQ アコーディオン） ----- */
.gt-faq {
  margin: 24px 0;
}
.gt-faq details {
  border: 1px solid var(--gt-hairline, #e6e6e0);
  border-radius: 0;
  margin-bottom: 10px;
  background: #fff;
}
.gt-faq details[open] {
  border-left: 4px solid var(--gt-accent, #e12b1b);
}
.gt-faq summary {
  padding: 14px 22px;
  cursor: pointer;
  font-size: 15px;
  line-height: 1.5;
  list-style: none;
  position: relative;
  user-select: none;
}
.gt-faq summary::-webkit-details-marker { display: none; }
.gt-faq summary::before {
  content: 'Q. ';
  color: var(--gt-accent, #e12b1b);
  font-weight: 800;
  margin-right: 6px;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
}
.gt-faq summary::after {
  content: '＋';
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--gt-accent, #e12b1b);
  font-size: 20px;
  font-weight: 700;
  transition: transform 0.2s ease;
}
.gt-faq details[open] summary::after {
  content: '−';
}
.gt-faq details p {
  padding: 0 22px 18px;
  margin: 0 !important;
  font-size: 14px;
  line-height: 1.85;
  color: var(--gt-text-sub, #5c5c58);
}
.gt-faq details p::before {
  content: 'A. ';
  color: var(--gt-accent, #e12b1b);
  font-weight: 800;
  margin-right: 6px;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
}


/* ===== v3.14.2 / 記事内 H2 セクション区切り（太め赤縦線版） ===== */
.entry-content h2 {
  margin-top: 72px !important;
  margin-bottom: 24px !important;
  padding: 6px 0 6px 22px !important;
  border-top: none !important;
  border-left: 8px solid var(--gt-accent, #e12b1b) !important;
  font-size: 26px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  background: none !important;
  border-bottom: 1px solid var(--gt-hairline, #e6e6e0) !important;
  padding-bottom: 14px !important;
}
.entry-content h2::before {
  display: none !important;
}
.entry-content h2::after {
  display: none !important;
}
.entry-content .gt-hero + h2 {
  margin-top: 48px !important;
}
@media (max-width: 700px) {
  .entry-content h2 {
    margin-top: 56px !important;
    padding-left: 18px !important;
    border-left-width: 6px !important;
    font-size: 22px !important;
  }
}


/* ===== v3.15 / gt-prompt-box （コピーボタン付きプロンプトボックス） ===== */
.gt-prompt-box {
  position: relative;
  background: #f8f8f5;
  border: 1px solid var(--gt-hairline, #e6e6e0);
  border-left: 4px solid var(--gt-accent, #e12b1b);
  padding: 18px 110px 18px 22px;
  margin: 18px 0;
}
.gt-prompt-box .gt-prompt-content {
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  font-family: 'Hiragino Sans', 'Yu Gothic', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.85 !important;
  color: var(--gt-text-main, #111) !important;
  white-space: pre-wrap !important;
  word-wrap: break-word !important;
  overflow-x: auto;
}
.gt-prompt-copy {
  position: absolute;
  top: 12px;
  right: 12px;
  background: #fff;
  border: 1px solid var(--gt-text-main, #111);
  color: var(--gt-text-main, #111);
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 700;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.05em;
  cursor: pointer;
  border-radius: 0;
  transition: all 0.2s ease;
}
.gt-prompt-copy:hover {
  background: var(--gt-accent, #e12b1b);
  color: #fff;
  border-color: var(--gt-accent, #e12b1b);
}
.gt-prompt-copy.copied {
  background: #00997A;
  color: #fff;
  border-color: #00997A;
}
@media (max-width: 700px) {
  .gt-prompt-box {
    padding: 14px 14px 50px 18px;
  }
  .gt-prompt-copy {
    top: auto;
    bottom: 10px;
    right: 14px;
  }
}


/* ===== v3.15.1 / gt-prompt-box 内の旧コピーボタンを隠す ===== */
.gt-prompt-box .gt-copy-btn,
.gt-prompt-content .gt-copy-btn {
  display: none !important;
}


/* v3.16 ベンチマーク表トップ値の強調色（2026-05-24） */
.gt-table .gt-top {
  color: #E12B1B;
}


/* v3.19 ベンチマーク表ヘッダー：黒背景+中央揃え、3社は文字色でブランド識別（2026-05-24） */
.gt-table thead th {
  background: #111111 !important;
  color: #FFFFFF !important;
  text-align: center !important;
  font-weight: 700;
  border-bottom: none !important;
}
.gt-table thead th.gt-col-chatgpt { color: #19C37D !important; }
.gt-table thead th.gt-col-claude  { color: #D4836F !important; }
.gt-table thead th.gt-col-gemini  { color: #5B9BFF !important; }


/* v3.20 Action Box内のmark装飾を下線スタイルに変更（2026-06-01） */
.gt-actionbox mark {
  background: transparent !important;
  color: #FFFFFF !important;
  border-bottom: 2px solid rgba(255, 255, 255, 0.7) !important;
  padding-bottom: 1px;
}


/* v3.21 3カード型コンテンツブロック（2026-06-01）週刊記事のTL;DRやトピック並べに使う */
.gt-three-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 24px 0; }
@media (max-width: 640px) { .gt-three-cards { grid-template-columns: 1fr; } }
.gt-three-cards .gt-card { background: #FFFFFF; border: 1px solid #D8D8D2; border-top: 4px solid #E12B1B; padding: 18px 18px 16px; }
.gt-three-cards .gt-card-label { font-family: "Bebas Neue", sans-serif; font-size: 12px; letter-spacing: 0.08em; color: #9C9C95; margin-bottom: 6px; }
.gt-three-cards .gt-card-num { font-family: "Bebas Neue", serif; font-size: 32px; font-weight: 700; color: #111; line-height: 1.1; margin-bottom: 8px; }
.gt-three-cards .gt-card-title { font-size: 14px; font-weight: 700; color: #111; margin-bottom: 6px; line-height: 1.4; }
.gt-three-cards .gt-card-body { font-size: 13px; line-height: 1.6; color: #333; }


/* v3.22 gt-bignumber内のmark装飾を白下線スタイルに変更（2026-06-01） */
.gt-bignumber mark {
  background: transparent !important;
  color: #FFFFFF !important;
  border-bottom: 2px solid rgba(255, 255, 255, 0.7) !important;
  padding-bottom: 1px;
}
