/*
Theme Name:     Tech Stock University Child
Theme URI:      https://example.com/
Description:    SWELL child theme for テック株大学 — A案+ハイテク強化（ネイビー × クリムゾン × エレクトリックブルー + ダークデータセクション）
Author:         テック株大学 編集部
Author URI:     https://example.com/
Template:       swell
Version:        1.3.0
Text Domain:    tsu-child
*/

/* ============================================================
   テック株大学 — SWELL 子テーマ
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600;700;900&family=Noto+Sans+JP:wght@400;500;700;900&family=JetBrains+Mono:wght@400;500;700&display=swap');

:root {
  --tsu-paper:        #F7F4EC;
  --tsu-paper-2:      #EFEAE0;
  --tsu-surface:      #FFFFFF;

  --tsu-ink-900:      #0E1620;
  --tsu-ink-700:      #2A3340;
  --tsu-ink-500:      #5A6472;
  --tsu-ink-200:      #C8CCD2;
  --tsu-ink-100:      #E4E2DA;

  --tsu-navy-900:     #0B1E3D;
  --tsu-navy-800:     #14294E;
  --tsu-navy-700:     #1E3A63;
  --tsu-navy-50:      #ECF0F6;

  --tsu-crimson-700:  #8C1C2B;
  --tsu-crimson-600:  #A9212F;
  --tsu-crimson-500:  #C3283A;
  --tsu-crimson-100:  #F4D9DC;

  --tsu-tech-700:     #1746B8;
  --tsu-tech-600:     #1E5BE8;
  --tsu-tech-500:     #4277F2;
  --tsu-tech-100:     #DCE6FC;

  --tsu-up:           #A9212F;
  --tsu-down:         #1A7F4E;

  --tsu-dark-bg:      #0A0E17;
  --tsu-dark-surface: #131826;
  --tsu-dark-border:  #232838;
  --tsu-dark-ink:     #E6EAF2;
  --tsu-dark-ink-2:   #B8C0D0;

  --tsu-gold-400:     #D5B874;

  --tsu-font-serif:   "Noto Serif JP", "Yu Mincho", "游明朝", serif;
  --tsu-font-sans:    "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
  --tsu-font-mono:    "JetBrains Mono", ui-monospace, monospace;

  --tsu-sp-2:  8px;
  --tsu-sp-3:  12px;
  --tsu-sp-4:  16px;
  --tsu-sp-5:  20px;
  --tsu-sp-6:  24px;
  --tsu-sp-7:  28px;
  --tsu-sp-8:  32px;
  --tsu-sp-9:  40px;
  --tsu-sp-10: 48px;
  --tsu-sp-11: 64px;

  --tsu-container:      1180px;
  --tsu-container-read: 680px;
  --tsu-header-h:       62px;

  --tsu-shadow-sm:   0 1px 4px rgba(14,22,32,0.08);
  --tsu-shadow-md:   0 4px 16px rgba(14,22,32,0.12);
  --tsu-focus-ring:  0 0 0 3px rgba(30,91,232,0.18);

  --tsu-grid-overlay: linear-gradient(rgba(30,91,232,0.06) 1px, transparent 1px),
                      linear-gradient(90deg,rgba(30,91,232,0.06) 1px, transparent 1px);
  --tsu-grid-overlay-size: 24px 24px;

  --color_main:         var(--tsu-navy-800);
  --color_link:         var(--tsu-navy-700);
  --color_text:         var(--tsu-ink-700);
  --color_text_light:   var(--tsu-ink-500);
  --color_bg:           var(--tsu-paper);
  --color_bg_light:     var(--tsu-paper-2);
  --color_border:       var(--tsu-ink-100);
  --font_family:        var(--tsu-font-sans);
  --font_family_title:  var(--tsu-font-serif);
}

/* ============================================================
   FULL-WIDTH LAYOUT FOR FRONT PAGE
   ============================================================ */
.home .l-main,
.home .l-mainContent,
.home .l-mainContent__inner,
.home .l-content,
.home .l-container {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.home .l-sidebar,
.home .p-sidebar {
  display: none !important;
}
.home .l-wrap,
.home .l-mainArea,
.home .l-main__inner {
  max-width: 100% !important;
  width: 100% !important;
}
.home .post_content,
.home .entry-content {
  max-width: 100% !important;
  padding: 0 !important;
}
.home {
  padding-top: 0 !important;
}
.home .c-pageTitle,
.home .p-pageTitle {
  display: none !important;
}

/* ============================================================
   BASE
   ============================================================ */
body {
  font-family: var(--tsu-font-sans);
  background: var(--tsu-paper);
  color: var(--tsu-ink-700);
  font-feature-settings: "palt" 1;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, .entry-title, .post_title, .c-postTitle__ttl {
  font-family: var(--tsu-font-serif);
  color: var(--tsu-ink-900);
  letter-spacing: -0.01em;
}

.p-mainContents h1,
.post_title,
.c-postTitle__ttl,
.entry-title {
  font-weight: 900;
  line-height: 1.25;
}

.post_content h2,
.p-postList__title,
.entry-content h2 {
  font-family: var(--tsu-font-serif);
  font-weight: 900;
  font-size: clamp(22px, 3.2vw, 28px);
  color: var(--tsu-ink-900);
  border: 0;
  border-bottom: 1px solid var(--tsu-ink-100);
  padding: 0 0 10px;
  margin: 48px 0 20px;
  background: none;
}

.post_content h3,
.entry-content h3 {
  font-family: var(--tsu-font-sans);
  font-weight: 700;
  font-size: 20px;
  color: var(--tsu-ink-900);
  padding: 0;
  border: 0;
  border-left: 3px solid var(--tsu-crimson-600);
  padding-left: 14px;
  margin: 40px 0 14px;
  background: none;
}

.post_content p,
.entry-content p {
  font-size: 16px;
  line-height: 1.95;
  color: var(--tsu-ink-700);
  margin-bottom: 22px;
}

.post_content a,
.entry-content a {
  color: var(--tsu-navy-700);
  border-bottom: 1px solid var(--tsu-navy-50);
  text-decoration: none;
}
.post_content a:hover,
.entry-content a:hover {
  color: var(--tsu-crimson-600);
  border-bottom-color: var(--tsu-crimson-500);
}

/* ============================================================
   HEADER / NAV
   ============================================================ */
.l-header,
.l-header__inner {
  background: rgba(247, 244, 236, 0.92) !important;
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--tsu-ink-100);
}
.l-header .c-gnav a {
  font-family: var(--tsu-font-sans);
  font-weight: 500;
  font-size: 14px;
  color: var(--tsu-ink-700);
}
.l-header .c-gnav a:hover,
.l-header .c-gnav li.current-menu-item > a {
  color: var(--tsu-crimson-600);
  border-bottom: 2px solid var(--tsu-crimson-600);
}

/* ============================================================
   EYEBROW / CATEGORY BADGE
   ============================================================ */
.cat-label,
.p-postList__cat a,
.c-postThumb__cat {
  font-family: var(--tsu-font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 2px;
  background: var(--tsu-crimson-100);
  color: var(--tsu-crimson-700);
}

/* ============================================================
   BUTTONS
   ============================================================ */
.wp-block-button__link,
.c-btn,
.btn,
button.swl-block-button__link {
  font-family: var(--tsu-font-sans);
  font-weight: 700;
  background: var(--tsu-navy-800);
  color: #fff;
  border-radius: 4px;
  padding: 12px 22px;
  border: 0;
  transition: background .15s ease;
}
.wp-block-button__link:hover,
.c-btn:hover {
  background: var(--tsu-navy-900);
  color: #fff;
}
.wp-block-button.is-style-accent .wp-block-button__link,
.c-btn.btn-accent {
  background: var(--tsu-crimson-600);
}

/* ============================================================
   BLOCK — 結論 callout
   ============================================================ */
.wp-block-group.is-style-tsu-conclusion {
  background: var(--tsu-surface);
  border: 1px solid var(--tsu-ink-100);
  border-left: 3px solid var(--tsu-crimson-600);
  border-radius: 2px;
  padding: 22px 26px;
  margin: 28px 0;
}
.wp-block-group.is-style-tsu-conclusion p:first-child {
  font-family: var(--tsu-font-serif);
  font-weight: 700;
  font-size: 13px;
  color: var(--tsu-crimson-700);
  margin: 0 0 6px;
}
.wp-block-group.is-style-tsu-conclusion p:last-child {
  font-family: var(--tsu-font-serif);
  font-weight: 700;
  font-size: 19px;
  line-height: 1.5;
  color: var(--tsu-ink-900);
  margin: 0;
}

/* ============================================================
   BLOCK — 免責事項
   ============================================================ */
.wp-block-group.is-style-tsu-disclaimer {
  background: var(--tsu-paper-2);
  border: 1px solid var(--tsu-ink-100);
  border-radius: 2px;
  padding: 16px 20px;
  margin: 28px 0;
  font-family: var(--tsu-font-sans);
  font-size: 12px;
  line-height: 1.75;
  color: var(--tsu-ink-500);
}

/* ============================================================
   PRICE DELTA
   ============================================================ */
.tsu-delta {
  font-family: var(--tsu-font-mono);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}
.tsu-delta--up,
.delta.delta-up   { color: var(--tsu-up); }
.tsu-delta--down,
.delta.delta-down { color: var(--tsu-down); }
.tsu-delta--flat  { color: var(--tsu-ink-500); }

/* ============================================================
   STOCK TABLE
   ============================================================ */
.tsu-stock-table-wrap,
.stock-table-wrap {
  background: var(--tsu-dark-surface) !important;
  border: 1px solid var(--tsu-dark-border);
  border-radius: 4px;
  overflow: hidden;
  margin: 28px 0;
  position: relative;
}
.tsu-stock-table-wrap::before,
.stock-table-wrap::before {
  content: "";
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(30,91,232,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(30,91,232,0.06) 1px, transparent 1px);
  background-size: 24px 24px;
  opacity: 0.5;
  pointer-events: none;
}
.tsu-stock-table-hd,
.stock-table-hd {
  position: relative;
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 16px;
  background: #1A1F30;
  border-bottom: 1px solid var(--tsu-dark-border);
  font-family: var(--tsu-font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--tsu-dark-ink-2);
}
.tsu-stock-table-hd .pulse,
.stock-table-hd .pulse {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--tsu-tech-500);
}
.tsu-stock-table-hd .pulse::before,
.stock-table-hd .pulse::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: #2FD18C;
  animation: tsu-pulse 1.8s infinite;
}
@keyframes tsu-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(47,209,140,0.6); }
  70%  { box-shadow: 0 0 0 6px rgba(47,209,140,0); }
  100% { box-shadow: 0 0 0 0 rgba(47,209,140,0); }
}
.tsu-stock-table,
.stock-table {
  width: 100%;
  border-collapse: collapse;
  position: relative;
  background: transparent;
}
.tsu-stock-table th,
.tsu-stock-table td,
.stock-table th,
.stock-table td { border: 0; }
.tsu-stock-table th,
.stock-table th {
  text-align: left;
  padding: 10px 14px;
  font-family: var(--tsu-font-sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #7A8499;
  border-bottom: 1px solid var(--tsu-dark-border);
}
.tsu-stock-table th.r,
.stock-table th.r { text-align: right; }
.tsu-stock-table td,
.stock-table td {
  padding: 14px;
  font-family: var(--tsu-font-mono);
  font-variant-numeric: tabular-nums;
  font-size: 13px;
  color: var(--tsu-dark-ink);
  border-bottom: 1px solid var(--tsu-dark-border);
}
.tsu-stock-table td.r,
.stock-table td.r { text-align: right; }
.tsu-stock-table .name,
.stock-table .name {
  font-family: var(--tsu-font-sans);
  font-weight: 700;
  font-size: 14px;
}
.tsu-stock-table .code,
.stock-table .code {
  font-family: var(--tsu-font-mono);
  font-size: 11px;
  color: var(--tsu-tech-500);
  margin-left: 8px;
}
.tsu-stock-table tbody tr:hover td,
.stock-table tbody tr:hover td {
  background: rgba(30,91,232,0.08);
}
.tsu-stock-table .tsu-delta--up,
.tsu-stock-table .delta.delta-up,
.stock-table .tsu-delta--up,
.stock-table .delta.delta-up   { color: #FF5B6E; }
.tsu-stock-table .tsu-delta--down,
.tsu-stock-table .delta.delta-down,
.stock-table .tsu-delta--down,
.stock-table .delta.delta-down { color: #2FD18C; }

/* ============================================================
   TICKER
   ============================================================ */
.tsu-ticker {
  background: var(--tsu-dark-bg);
  color: var(--tsu-dark-ink);
  font-family: var(--tsu-font-mono);
  font-variant-numeric: tabular-nums;
  font-size: 12px;
  padding: 10px 0;
  overflow: hidden;
  white-space: nowrap;
  border-top: 1px solid var(--tsu-dark-border);
  border-bottom: 1px solid var(--tsu-dark-border);
  position: relative;
}
.tsu-ticker::before {
  content: "LIVE";
  position: absolute; left: 0; top: 0; bottom: 0;
  display: flex; align-items: center;
  padding: 0 14px;
  background: var(--tsu-crimson-600);
  color: #fff;
  font-family: var(--tsu-font-sans);
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.14em;
  z-index: 2;
}
.tsu-ticker__track {
  display: inline-flex;
  gap: 28px;
  padding-left: 72px;
  animation: tsu-ticker-scroll 60s linear infinite;
}
@keyframes tsu-ticker-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.tsu-ticker .sym { color: var(--tsu-tech-500); font-weight: 700; margin-right: 8px; }
.tsu-ticker .tsu-delta--up,
.tsu-ticker .delta.delta-up   { color: #FF5B6E; }
.tsu-ticker .tsu-delta--down,
.tsu-ticker .delta.delta-down { color: #2FD18C; }

/* ============================================================
   FOOTER
   ============================================================ */
.l-footer {
  background: var(--tsu-navy-900);
  color: var(--tsu-paper);
}
.l-footer a { color: #D9E0EC; }
.l-footer a:hover { color: var(--tsu-gold-400); }

/* ============================================================
   EYEBROW / ARTICLE TITLES
   ============================================================ */
.tsu-eyebrow {
  font-family: var(--tsu-font-sans);
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--tsu-crimson-600);
}
.tsu-article-title-xl {
  font-family: var(--tsu-font-serif);
  font-weight: 900; font-size: 44px;
  line-height: 1.15; letter-spacing: -0.02em;
  color: var(--tsu-ink-900); margin: 0;
}
.tsu-article-title-lg {
  font-family: var(--tsu-font-serif);
  font-weight: 700; font-size: 22px;
  line-height: 1.35; color: var(--tsu-ink-900); margin: 0;
}
.tsu-article-title-md {
  font-family: var(--tsu-font-serif);
  font-weight: 700; font-size: 17px;
  line-height: 1.4; color: var(--tsu-ink-900); margin: 0;
}

/* ============================================================
   BUTTONS (追加バリアント)
   ============================================================ */
.tsu-btn {
  font-family: var(--tsu-font-sans);
  font-weight: 700; font-size: 14px;
  padding: 10px 18px; border-radius: 4px;
  border: 1px solid transparent; cursor: pointer;
  transition: all 0.1s ease-out;
  display: inline-flex; align-items: center; gap: 6px;
  text-decoration: none;
}
.tsu-btn-primary   { background: var(--tsu-navy-800); color: #fff; }
.tsu-btn-primary:hover  { background: var(--tsu-navy-900); color: #fff; }
.tsu-btn-accent    { background: var(--tsu-crimson-600); color: #fff; }
.tsu-btn-accent:hover   { background: var(--tsu-crimson-500); color: #fff; }
.tsu-btn-secondary { background: var(--tsu-surface); color: var(--tsu-navy-800); border-color: var(--tsu-ink-200); }
.tsu-btn-secondary:hover { background: var(--tsu-navy-50); border-color: var(--tsu-navy-700); }
.tsu-btn-ghost     { background: transparent; color: var(--tsu-navy-700); padding: 8px 0; border: 0; }
.tsu-btn-ghost:hover    { color: var(--tsu-crimson-600); }
.tsu-btn-sm        { font-size: 12px; padding: 6px 12px; }

/* ============================================================
   CARDS
   ============================================================ */
.tsu-card {
  background: var(--tsu-surface);
  border: 1px solid var(--tsu-ink-100);
  border-radius: 2px;
  transition: box-shadow 0.2s ease-out, border-color 0.2s ease-out;
}
.tsu-card:hover { box-shadow: var(--tsu-shadow-sm); border-color: var(--tsu-ink-200); }
.tsu-card-body,
.card-body       { padding: var(--tsu-sp-5); }

.tsu-thumb {
  aspect-ratio: 16/9;
  background: linear-gradient(135deg, var(--tsu-navy-800) 0%, var(--tsu-navy-700) 100%);
  display: flex; align-items: center; justify-content: center;
  color: var(--tsu-gold-400);
  font-family: var(--tsu-font-serif); font-weight: 900; letter-spacing: 0.04em;
}
.tsu-thumb-paper {
  aspect-ratio: 16/9;
  background: var(--tsu-paper-2);
  border-bottom: 1px solid var(--tsu-ink-100);
  display: flex; align-items: center; justify-content: center;
  color: var(--tsu-navy-800);
  font-family: var(--tsu-font-serif); font-weight: 900;
}
.tsu-thumb-crimson {
  aspect-ratio: 16/9;
  background: var(--tsu-crimson-700);
  display: flex; align-items: center; justify-content: center;
  color: var(--tsu-paper);
  font-family: var(--tsu-font-serif); font-weight: 900;
}

/* ============================================================
   BADGES
   ============================================================ */
.tsu-badge {
  display: inline-flex; align-items: center;
  font-family: var(--tsu-font-sans);
  font-size: 11px; font-weight: 700;
  padding: 3px 8px; border-radius: 2px; letter-spacing: 0.04em;
}
.tsu-badge-analysis { background: var(--tsu-crimson-100);  color: var(--tsu-crimson-700); }
.tsu-badge-compare  { background: var(--tsu-tech-100);     color: var(--tsu-tech-700); }
.tsu-badge-beginner { background: #D4F0E4;                  color: #1A7F4E; }
.tsu-badge-news     { background: var(--tsu-navy-50);       color: var(--tsu-navy-800); }
.tsu-badge-premium  { background: var(--tsu-ink-900);       color: var(--tsu-gold-400); }
.tsu-badge-tech     { background: var(--tsu-tech-100);      color: var(--tsu-tech-700); }
.tsu-badge-live     { background: #FF5B6E;                   color: #fff; }

/* ============================================================
   SECTION LAYOUT
   ============================================================ */
.tsu-section {
  max-width: var(--tsu-container);
  margin: 0 auto;
  padding: var(--tsu-sp-10) var(--tsu-sp-6);
}
.tsu-section-hd {
  display: flex; align-items: baseline; justify-content: space-between;
  border-bottom: 2px solid var(--tsu-ink-900);
  padding-bottom: var(--tsu-sp-3);
  margin-bottom: var(--tsu-sp-6);
}
.tsu-section-hd h2 {
  margin: 0;
  font-family: var(--tsu-font-serif);
  font-weight: 900; font-size: 22px;
  color: var(--tsu-ink-900); letter-spacing: -0.01em;
}
.tsu-section-hd .tsu-more {
  font-family: var(--tsu-font-sans);
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--tsu-navy-700);
}

/* ============================================================
   CHIPS / FILTER
   ============================================================ */
.tsu-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.tsu-chip {
  display: inline-flex; align-items: center;
  font-family: var(--tsu-font-sans); font-size: 12px;
  padding: 5px 14px; border-radius: 999px;
  border: 1px solid var(--tsu-ink-200);
  background: var(--tsu-surface); color: var(--tsu-ink-700);
  cursor: pointer; transition: all 0.1s ease-out;
}
.tsu-chip:hover { border-color: var(--tsu-navy-700); color: var(--tsu-navy-800); }
.tsu-chip.active,
.tsu-chip-active { background: var(--tsu-navy-800); color: #fff; border-color: var(--tsu-navy-800); }

/* ============================================================
   HERO SPOTLIGHT
   ============================================================ */
.tsu-hero {
  background: var(--tsu-paper) !important;
  padding: var(--tsu-sp-9) 0 var(--tsu-sp-8) !important;
  border-bottom: 1px solid var(--tsu-ink-100);
  position: relative; overflow: hidden;
}
.tsu-hero::before {
  content: "";
  position: absolute; inset: 0;
  background-image: var(--tsu-grid-overlay);
  background-size: var(--tsu-grid-overlay-size);
  opacity: 0.6; pointer-events: none;
  mask-image: radial-gradient(ellipse 80% 70% at 50% 40%, #000 30%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 40%, #000 30%, transparent 75%);
}
.tsu-hero .tsu-hero-inner {
  position: relative;
  max-width: var(--tsu-container); margin: 0 auto;
  padding: 0 var(--tsu-sp-6);
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: var(--tsu-sp-8);
}
.tsu-hero .tsu-feat-thumb {
  aspect-ratio: 4/3;
  background: linear-gradient(135deg, #0B1E3D 0%, #14294E 60%, #1E3A63 100%);
  display: flex; align-items: center; justify-content: center;
  color: var(--tsu-gold-400);
  font-family: var(--tsu-font-serif); font-weight: 900;
  font-size: 88px; letter-spacing: 0.04em;
  position: relative;
}
.tsu-hero .tsu-feat-thumb::after {
  content: ""; position: absolute; inset: 12px;
  border: 1px solid rgba(213, 184, 116, 0.3);
}

/* ============================================================
   DATA SECTION (dark wrapper)
   ============================================================ */
.tsu-data-section {
  background: var(--tsu-dark-bg) !important;
  color: var(--tsu-dark-ink);
  padding: var(--tsu-sp-9) 0 !important;
  position: relative; overflow: hidden;
}
.tsu-data-section::before {
  content: "";
  position: absolute; inset: 0;
  background-image: var(--tsu-grid-overlay);
  background-size: var(--tsu-grid-overlay-size);
  opacity: 0.5; pointer-events: none;
}
.tsu-data-section .tsu-section { padding-top: 0; padding-bottom: 0; }
.tsu-data-section .tsu-section-hd {
  border-bottom-color: var(--tsu-dark-border); position: relative;
}
.tsu-data-section .tsu-section-hd h2 { color: var(--tsu-dark-ink); }
.tsu-data-section .tsu-section-hd h2::before {
  content: ""; display: inline-block;
  width: 3px; height: 22px; margin-right: 12px;
  background: var(--tsu-tech-600); vertical-align: -4px;
}
.tsu-data-section .tsu-more { color: var(--tsu-tech-500); }

/* ============================================================
   BROKER COMPARE GRID
   ============================================================ */
.tsu-compare-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--tsu-sp-5);
}
.tsu-compare-card {
  background: var(--tsu-surface);
  border: 1px solid var(--tsu-ink-100);
  border-radius: 2px; padding: var(--tsu-sp-6);
}
.tsu-compare-card .tsu-rank,
.tsu-compare-card .rank {
  font-family: var(--tsu-font-serif);
  font-weight: 900; font-size: 48px;
  color: var(--tsu-crimson-600); line-height: 1; letter-spacing: -0.04em;
}
.tsu-compare-card .tsu-rank small,
.tsu-compare-card .rank small {
  font-size: 14px; color: var(--tsu-ink-500); font-weight: 400; margin-left: 4px;
}
.tsu-compare-card h4 {
  font-family: var(--tsu-font-serif);
  font-weight: 700; font-size: 22px; color: var(--tsu-ink-900);
  margin: var(--tsu-sp-3) 0 var(--tsu-sp-2);
}
.tsu-compare-card .tsu-broker-meta,
.tsu-compare-card .meta {
  font-family: var(--tsu-font-sans); font-size: 12px;
  color: var(--tsu-ink-500); margin-bottom: var(--tsu-sp-4);
}
.tsu-compare-card .tsu-stars,
.tsu-compare-card .stars {
  color: #C5982E; letter-spacing: 2px; margin-bottom: var(--tsu-sp-3);
}
.tsu-compare-card .tsu-specs {
  list-style: none; padding: 0; margin: 0 0 var(--tsu-sp-4);
  font-family: var(--tsu-font-sans); font-size: 13px; color: var(--tsu-ink-700);
}
.tsu-compare-card .tsu-specs li {
  display: flex; justify-content: space-between;
  padding: 6px 0; border-bottom: 1px dashed var(--tsu-ink-100);
}
.tsu-compare-card .tsu-specs li:last-child { border: 0; }
.tsu-compare-card .tsu-specs b {
  font-family: var(--tsu-font-mono); color: var(--tsu-ink-900);
}

/* ============================================================
   ARTICLE GRID
   ============================================================ */
.tsu-article-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--tsu-sp-5);
}
.tsu-article-grid-2col {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--tsu-sp-5);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
  .post_content h2,
  .entry-content h2 { font-size: 22px; margin: 40px 0 16px; }
  .post_content h3,
  .entry-content h3 { font-size: 17px; margin: 32px 0 12px; }
  .post_content p,
  .entry-content p  { font-size: 15.5px; line-height: 1.9; }

  .wp-block-group.is-style-tsu-conclusion { padding: 18px 18px; }
  .wp-block-group.is-style-tsu-conclusion p:last-child { font-size: 16px; }

  .tsu-stock-table-wrap,
  .stock-table-wrap { border-radius: 0; border-left: 0; border-right: 0; overflow-x: auto; }
  .tsu-stock-table,
  .stock-table { min-width: 640px; }
  .tsu-ticker { font-size: 11px; }
  .tsu-ticker::before { font-size: 9px; padding: 0 10px; }
  .tsu-ticker__track { padding-left: 56px; gap: 20px; }
}

@media (hover: none) {
  .wp-block-button__link,
  .c-btn,
  .tsu-stock-table tbody tr,
  .stock-table tbody tr { min-height: 44px; }
}

@media (max-width: 1024px) {
  .tsu-compare-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tsu-article-grid { grid-template-columns: repeat(2, 1fr); }
  .tsu-hero .tsu-hero-inner { padding: 0 var(--tsu-sp-5); }
}
@media (max-width: 768px) {
  .tsu-hero { padding: var(--tsu-sp-6) 0 !important; }
  .tsu-hero .tsu-hero-inner { grid-template-columns: 1fr; gap: var(--tsu-sp-5); padding: 0 var(--tsu-sp-4); }
  .tsu-hero .tsu-feat-thumb { font-size: 56px; aspect-ratio: 16/10; }
  .tsu-article-title-xl { font-size: 30px; line-height: 1.2; }
  .tsu-section { padding: var(--tsu-sp-7) var(--tsu-sp-4); }
  .tsu-section-hd h2 { font-size: 18px; }
  .tsu-compare-grid { grid-template-columns: 1fr; gap: var(--tsu-sp-4); }
  .tsu-compare-card { padding: var(--tsu-sp-5); }
  .tsu-compare-card .tsu-rank,
  .tsu-compare-card .rank { font-size: 40px; }
  .tsu-article-grid { grid-template-columns: 1fr; }
  .tsu-article-grid-2col { grid-template-columns: 1fr; }
  .tsu-data-section { padding: var(--tsu-sp-7) 0 !important; }
  .tsu-chips { gap: 4px; }
  .tsu-chip { padding: 5px 10px; font-size: 11px; }
}
@media (max-width: 480px) {
  .tsu-article-title-xl { font-size: 26px; }
  .tsu-compare-card .tsu-rank,
  .tsu-compare-card .rank { font-size: 34px; }
}
@media (hover: none) {
  .tsu-btn, .tsu-chip { min-height: 44px; }
  .tsu-btn { padding-top: 12px; padding-bottom: 12px; }
}

/* ── 記事カード：続きを読むリンク ─────────────────── */
.tsu-card {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  cursor: pointer;
}
.tsu-card-link {
  display: block;
  margin-top: var(--tsu-sp-4);
  font-size: 13px;
  font-weight: 600;
  color: var(--tsu-navy-600);
  text-decoration: none;
  letter-spacing: 0.02em;
}
.tsu-card-link:hover {
  color: var(--tsu-crimson-600);
  text-decoration: underline;
}
