/*
Theme Name: FLOW
Theme URI: http://160.251.172.148/flow/
Description: FLOW — セクター資金フロー・モニターの専用テーマ。金融ブルーのデザインで、ライブ・ダッシュボードと週次レポートを一体化。
Author: FLOW
Version: 1.0
*/

:root{
  --bg:#F4F6FA; --surface:#FFFFFF; --surface-2:#EEF2F7;
  --ink:#16283C; --ink-soft:#3A4B5C; --muted:#5E7182; --faint:#93A2B0;
  --line:#E1E7EE; --line-strong:#CBD4DE;
  --accent:#2456D6; --accent-soft:#4A74E6; --warn:#B5791F;
  --pos:#12805C; --neg:#C0403F;
  --shadow:0 1px 2px rgba(20,40,60,.05), 0 8px 24px -12px rgba(20,40,60,.16);
  --font-sans: -apple-system, "system-ui", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "Noto Sans JP", sans-serif;
  --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;
  --wrap: 1080px;
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0; background:var(--bg); color:var(--ink); font-family:var(--font-sans);
  line-height:1.75; -webkit-font-smoothing:antialiased}
a{color:var(--accent); text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%; height:auto}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 20px}
.eyebrow{font-size:11px; letter-spacing:.15em; text-transform:uppercase;
  color:var(--accent); font-weight:700}

/* header */
.site-header{border-bottom:1px solid var(--line); background:var(--bg); position:sticky; top:0; z-index:50}
.site-header .wrap{display:flex; align-items:center; justify-content:space-between;
  gap:16px; padding-top:16px; padding-bottom:16px; flex-wrap:wrap}
.brand{display:flex; align-items:center; gap:11px; text-decoration:none}
.brand .logo{width:36px; height:36px; border-radius:9px; background:var(--ink);
  color:var(--accent); display:grid; place-items:center; flex:none}
.brand-txt{display:flex; flex-direction:column; line-height:1.12}
.brand .mark{font-weight:800; font-size:20px; letter-spacing:.01em; color:var(--ink)}
.brand .sub{font-size:9.5px; color:var(--muted); letter-spacing:.2em;
  text-transform:uppercase; font-weight:700; margin-top:2px}
.nav{display:flex; gap:22px; align-items:center}
.nav a{color:var(--ink-soft); font-size:14px; font-weight:600}
.nav a:hover{color:var(--accent); text-decoration:none}

/* hero */
.hero{padding:44px 0 8px}
.hero .eyebrow{display:block; margin-bottom:14px}
.hero h1{font-size:clamp(28px,4.6vw,42px); line-height:1.15; margin:0 0 16px;
  font-weight:800; letter-spacing:-.02em; text-wrap:balance; max-width:20ch}
.hero p{font-size:16px; color:var(--ink-soft); max-width:60ch; margin:0}
.hero .meta{margin-top:16px; font-family:var(--font-mono); font-size:12px; color:var(--muted);
  display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.hero .meta .live{color:var(--pos); font-weight:700}
.hero .meta .live::before{content:"●"; margin-right:4px; font-size:9px}
.hero .meta .updated{display:inline-flex; align-items:center; min-height:28px;
  padding:5px 9px; border:1px solid var(--line-strong); border-radius:999px;
  background:var(--surface); color:var(--ink-soft); font-weight:700}
.hero .actions{margin-top:20px; display:flex; gap:12px; flex-wrap:wrap}
.btn{display:inline-block; padding:10px 18px; border-radius:9px; font-weight:700; font-size:14px}
.btn.primary{background:var(--accent); color:#fff}
.btn.primary:hover{background:var(--accent-soft); text-decoration:none}
.btn.ghost{border:1px solid var(--line-strong); color:var(--ink)}
.btn.ghost:hover{border-color:var(--accent); color:var(--accent); text-decoration:none}

/* dashboard embed */
.dash-embed{margin:26px 0 8px; background:var(--surface); border:1px solid var(--line);
  border-radius:12px; box-shadow:var(--shadow); overflow:hidden}
.dash-embed iframe{width:100%; border:0; display:block; height:2600px}

/* section head */
.sec{padding:44px 0}
.sec-head{display:flex; align-items:baseline; justify-content:space-between; gap:14px;
  border-bottom:2px solid var(--ink); padding-bottom:14px; margin-bottom:24px; flex-wrap:wrap}
.sec-head h2{font-size:24px; margin:0; font-weight:800; letter-spacing:-.02em}
.sec-head a{font-size:13px; font-weight:600}

/* post cards */
.posts{display:grid; grid-template-columns:repeat(auto-fill, minmax(300px,1fr)); gap:18px}
.pcard{background:var(--surface); border:1px solid var(--line); border-radius:10px;
  box-shadow:var(--shadow); overflow:hidden; display:flex; flex-direction:column}
.pcard a.thumb{display:block; aspect-ratio:16/9; background:var(--surface-2); overflow:hidden}
.pcard a.thumb img{width:100%; height:100%; object-fit:cover}
.pcard .body{padding:16px 18px 18px; display:flex; flex-direction:column; gap:8px; flex:1}
.pcard time{font-family:var(--font-mono); font-size:11px; color:var(--muted)}
.pcard h3{font-size:16px; margin:0; font-weight:700; line-height:1.4}
.pcard h3 a{color:var(--ink)}
.pcard h3 a:hover{color:var(--accent); text-decoration:none}
.pcard .excerpt{font-size:13px; color:var(--muted); line-height:1.6; margin:0}
.empty{color:var(--muted); font-size:14px; padding:24px; background:var(--surface);
  border:1px dashed var(--line-strong); border-radius:10px}

/* single article */
.article{padding:36px 0 8px; max-width:760px; margin:0 auto}
.article .eyebrow{display:block; margin-bottom:12px}
.article h1{font-size:clamp(26px,4vw,38px); line-height:1.2; margin:0 0 14px;
  font-weight:800; letter-spacing:-.02em; text-wrap:balance}
.article .a-meta{font-family:var(--font-mono); font-size:12px; color:var(--muted); margin-bottom:28px}
.article-body{font-size:16px; color:var(--ink-soft)}
.article-body h2{font-size:22px; color:var(--ink); font-weight:800; margin:36px 0 12px; letter-spacing:-.01em}
.article-body h3{font-size:17px; color:var(--ink); font-weight:700; margin:26px 0 8px}
.article-body p{margin:0 0 16px}
.article-body ul,.article-body ol{margin:0 0 16px; padding-left:1.3em}
.article-body li{margin:6px 0}
.article-body strong{color:var(--ink)}
.article-body table{width:100%; border-collapse:collapse; margin:8px 0 20px; font-size:14px}
.article-body th,.article-body td{border:1px solid var(--line); padding:8px 10px; text-align:left}
.article-body th{background:var(--surface-2); font-weight:700; color:var(--ink)}
.article-body td{font-variant-numeric:tabular-nums}
.article-body blockquote{border-left:3px solid var(--accent); margin:0 0 16px; padding:4px 0 4px 16px; color:var(--muted)}
.disclaimer{margin-top:32px; padding:16px 18px; background:var(--surface-2);
  border:1px solid var(--line); border-radius:10px; font-size:12px; color:var(--muted); line-height:1.7}
.disclaimer strong{color:var(--ink-soft)}

/* footer */
.site-footer{margin-top:40px; border-top:1px solid var(--line); background:var(--surface)}
.site-footer .wrap{padding:28px 20px; display:flex; flex-direction:column; gap:10px}
.site-footer .f-brand{font-weight:800; color:var(--ink)}
.site-footer .f-note{font-size:12px; color:var(--muted); max-width:74ch; line-height:1.7}
.site-footer .f-links{display:flex; gap:18px; font-size:13px; flex-wrap:wrap}

@media (max-width:640px){
  .dash-embed iframe{height:3200px}
  .nav{gap:16px}
}


/* latest report band --- the newest weekly, lifted above the dashboard embed.
   It used to sit below a 2600px iframe, where nobody scrolled to it. */
.latest-report{display:block; margin:26px 0 0; padding:22px 24px; background:var(--surface);
  border:1px solid var(--line); border-left:4px solid var(--accent); border-radius:12px;
  box-shadow:var(--shadow); color:inherit}
.latest-report:hover{text-decoration:none; border-color:var(--accent-soft)}
.latest-report .eyebrow{display:inline-block; margin-right:10px}
.latest-report time{font-family:var(--font-mono); font-size:11px; color:var(--muted)}
.latest-report h2{font-size:clamp(19px,2.4vw,24px); margin:8px 0; font-weight:800;
  letter-spacing:-.02em; line-height:1.35; color:var(--ink)}
.latest-report p{margin:0; font-size:14px; color:var(--ink-soft); line-height:1.7}
.latest-report .more{display:inline-block; margin-top:12px; font-size:13px;
  font-weight:700; color:var(--accent)}


/* guide strip --- sits between the latest report and the dashboard embed, so a
   first-time reader is offered "how to read this" before the wall of numbers. */
.guide-strip{display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr));
  gap:14px; margin:18px 0 0}
.guide-strip a{display:flex; flex-direction:column; gap:6px; padding:18px 20px;
  background:var(--surface); border:1px solid var(--line); border-radius:11px;
  box-shadow:var(--shadow); color:inherit}
.guide-strip a:hover{text-decoration:none; border-color:var(--accent)}
.guide-strip strong{font-size:16px; color:var(--ink); font-weight:800; letter-spacing:-.01em}
.guide-strip small{font-size:13px; color:var(--muted); line-height:1.65}
