/*
Theme Name: TSC Theme (投資コム)
Template: twentytwentyfive
Description: 投資コム（tousi.com）用の子テーマ。読みやすさと信頼感を優先した配色・余白・タイポグラフィ。
Version: 1.0.0
Author: 公益アクション室
Text Domain: tsc-theme
*/

:root{
  --tsc-ink:#1d2733;
  --tsc-sub:#4a5868;
  --tsc-line:#dde3ea;
  --tsc-soft:#f4f7fa;
  --tsc-brand:#1f4e79;
  --tsc-brand-d:#173a5a;
  --tsc-accent:#0e7c86;
  --tsc-warn:#a35a00;
  --tsc-warn-bg:#fff6e8;
  --tsc-ok:#1b6e3c;
  --tsc-ok-bg:#eaf6ee;
  --tsc-pass:#7a2e2e;
  --tsc-pass-bg:#fbeeee;
  --tsc-cond:#6b5200;
  --tsc-cond-bg:#fff9e0;
}
body{color:var(--tsc-ink);font-size:18px;line-height:1.85;word-break:break-word;overflow-wrap:anywhere;}
a{text-underline-offset:3px;}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #f2a900;outline-offset:2px;}
.tsc-skip{position:absolute;left:-999px;top:0;background:#fff;padding:8px 12px;z-index:100}
.tsc-skip:focus{left:8px;top:8px}

/* ヘッダー */
.tsc-header{border-bottom:1px solid var(--tsc-line);background:#fff;position:sticky;top:0;z-index:50}
.tsc-header-in{max-width:1120px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:space-between}
.tsc-logo{font-size:24px;font-weight:700;letter-spacing:.04em;color:var(--tsc-brand);text-decoration:none}
.tsc-logo small{display:block;font-size:12px;font-weight:400;color:var(--tsc-sub);letter-spacing:0}
.tsc-nav ul{list-style:none;display:flex;gap:4px 18px;margin:0;padding:0;flex-wrap:wrap}
.tsc-nav a{color:var(--tsc-ink);text-decoration:none;font-size:16px;padding:6px 2px;display:inline-block;font-weight:600}
.tsc-nav a:hover{color:var(--tsc-brand);text-decoration:underline}
.tsc-search{display:flex;gap:6px}
.tsc-search input[type=search]{border:1px solid #9aa7b5;border-radius:6px;padding:8px 10px;font-size:16px;min-width:0;width:170px}
.tsc-search button{border:0;background:var(--tsc-brand);color:#fff;border-radius:6px;padding:8px 14px;font-size:16px;cursor:pointer}
@media (max-width:760px){
  .tsc-header{position:static}
  .tsc-header-in{flex-direction:column;align-items:flex-start}
  .tsc-nav ul{gap:2px 14px}
  .tsc-search{width:100%}.tsc-search input[type=search]{flex:1;width:auto}
}

/* 共通部品 */
.tsc-wrap{max-width:1120px;margin:0 auto;padding:0 16px}
.tsc-sec{padding:44px 0}
.tsc-sec.alt{background:var(--tsc-soft)}
.tsc-h2{font-size:clamp(24px,3.4vw,32px);line-height:1.4;margin:0 0 6px}
.tsc-lead{color:var(--tsc-sub);margin:0 0 24px}
.tsc-btn{display:inline-block;background:var(--tsc-brand);color:#fff!important;padding:13px 24px;border-radius:8px;text-decoration:none;font-weight:700;font-size:17px;margin:4px 8px 4px 0;border:2px solid var(--tsc-brand)}
.tsc-btn:hover{background:var(--tsc-brand-d)}
.tsc-btn.ghost{background:#fff;color:var(--tsc-brand)!important}
.tsc-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.tsc-card{display:block;border:1px solid var(--tsc-line);border-radius:12px;padding:18px;background:#fff;text-decoration:none;color:var(--tsc-ink)}
a.tsc-card:hover{border-color:var(--tsc-brand);box-shadow:0 2px 10px rgba(31,78,121,.12)}
.tsc-card h3{font-size:19px;margin:0 0 6px;line-height:1.5}
.tsc-card p{margin:0;font-size:15.5px;color:var(--tsc-sub);line-height:1.7}
.tsc-meta{font-size:14px;color:var(--tsc-sub)}
.tsc-tag{display:inline-block;font-size:13px;padding:2px 9px;border-radius:99px;background:var(--tsc-soft);border:1px solid var(--tsc-line);color:var(--tsc-sub);margin-right:6px}

/* HERO */
.tsc-hero{background:linear-gradient(180deg,#eef4fa,#fff);padding:56px 0 48px}
.tsc-hero h1{font-size:clamp(30px,5.4vw,50px);line-height:1.3;margin:0 0 14px;color:var(--tsc-brand-d)}
.tsc-hero p{max-width:40em;color:var(--tsc-sub);font-size:19px;margin:0 0 20px}

/* 見送り（買わなかった投資） */
.tsc-pass{border-left:6px solid var(--tsc-pass);background:var(--tsc-pass-bg);border-radius:0 12px 12px 0;padding:20px 20px 8px}
.tsc-pass .tsc-card{background:#fff}

/* 判定バッジ */
.tsc-verdict{display:inline-block;font-weight:700;border-radius:8px;padding:6px 16px;font-size:18px}
.tsc-verdict.buy{background:var(--tsc-ok-bg);color:var(--tsc-ok);border:2px solid var(--tsc-ok)}
.tsc-verdict.pass{background:var(--tsc-pass-bg);color:var(--tsc-pass);border:2px solid var(--tsc-pass)}
.tsc-verdict.cond{background:var(--tsc-cond-bg);color:var(--tsc-cond);border:2px solid #c9a400}

/* マーケット */
.tsc-markets{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.tsc-mk{border:1px solid var(--tsc-line);border-radius:10px;padding:12px 14px;background:#fff}
.tsc-mk b{display:block;font-size:15px}
.tsc-mk span{font-size:14px;color:var(--tsc-sub)}
.tsc-notice{background:var(--tsc-warn-bg);border:1px solid #f0d2a0;color:#5b3a00;border-radius:10px;padding:12px 16px;font-size:16px}

/* 記事内部品 */
.tsc-disc{border:1px solid var(--tsc-line);background:var(--tsc-soft);border-radius:10px;padding:14px 18px;font-size:15.5px;line-height:1.8;margin:32px 0}
.tsc-label{display:inline-block;font-size:13px;font-weight:700;padding:3px 10px;border-radius:6px;margin-bottom:10px}
.tsc-label.ed{background:#e8f1fa;color:var(--tsc-brand)}
.tsc-label.pr{background:#fff0e0;color:var(--tsc-warn);border:1px solid #f0c890}
.tsc-toc{border:1px solid var(--tsc-line);border-radius:10px;padding:14px 20px;background:#fff;margin:24px 0}
.tsc-toc summary{font-weight:700;cursor:pointer;font-size:17px}
.tsc-toc ol{margin:10px 0 0;padding-left:1.4em}
.tsc-toc li{margin:4px 0}
.tsc-toc .l3{margin-left:1.2em;list-style:circle}
.tsc-summary{border-left:5px solid var(--tsc-accent);background:#eef8f9;padding:14px 18px;border-radius:0 10px 10px 0;margin:20px 0}
.tsc-re table,.tsc-tbl{width:100%;border-collapse:collapse;font-size:16px;margin:16px 0}
.tsc-re th,.tsc-re td,.tsc-tbl th,.tsc-tbl td{border:1px solid var(--tsc-line);padding:9px 12px;text-align:left;vertical-align:top}
.tsc-re th,.tsc-tbl th{background:var(--tsc-soft);white-space:nowrap}
.tsc-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tsc-related{margin-top:32px}

/* 計算ツール */
.tsc-tool{border:1px solid var(--tsc-line);border-radius:12px;padding:20px;background:#fff;margin:16px 0}
.tsc-tool .row{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.tsc-tool label{display:block;font-weight:600;font-size:16px}
.tsc-tool input,.tsc-tool select{width:100%;box-sizing:border-box;border:1px solid #9aa7b5;border-radius:6px;padding:10px;font-size:17px;margin-top:4px}
.tsc-tool .unit{font-weight:400;color:var(--tsc-sub);font-size:14px}
.tsc-tool button.go{margin-top:16px;background:var(--tsc-brand);color:#fff;border:0;border-radius:8px;padding:12px 26px;font-size:17px;font-weight:700;cursor:pointer}
.tsc-out{margin-top:18px;border-top:2px solid var(--tsc-line);padding-top:14px}
.tsc-out dl{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:6px 18px;margin:0}
.tsc-out dt{color:var(--tsc-sub);font-size:15.5px}
.tsc-out dd{margin:0;font-weight:700;font-size:20px}
.tsc-out .note{font-size:14.5px;color:var(--tsc-sub);margin-top:10px;font-weight:400}

/* フッター */
.tsc-footer{background:#14202c;color:#d6dee7;padding:36px 0 28px;font-size:15.5px;line-height:1.8}
.tsc-footer a{color:#fff}
.tsc-footer .cols{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.tsc-footer h2{font-size:16px;color:#fff;margin:0 0 8px}
.tsc-footer ul{list-style:none;margin:0;padding:0}
.tsc-footer li{margin:4px 0}
.tsc-footer .disc{border-top:1px solid #34475a;margin-top:24px;padding-top:16px;font-size:14.5px;color:#b9c6d3}

/* 日英の切り替え（body.tsc-en は tsc-core が英語ページに付与） */
.tsc-nav-en,.tsc-foot-en{display:none}
body.tsc-en .tsc-nav-ja,body.tsc-en .tsc-foot-ja{display:none}
body.tsc-en .tsc-nav-en{display:block}
body.tsc-en .tsc-foot-en{display:block}

@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
