/* kaigo-doko.jp — 札幌市中央区 page styles
   Inherits the existing site's design tokens (teal/coral, warm cream bg, Sora + Noto Sans JP).
*/

@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;600;700;800&family=Noto+Sans+JP:wght@400;500;700;800&family=DM+Mono:wght@400;500&display=swap');

:root{
  /* Brand tokens — lifted directly from existing kaigo-doko.jp pages */
  --bg:#fafaf7; --card:#fff; --warm:#f5f3ee;
  --ink:#2c2a25; --sub:#5c584f; --muted:#8e897d; --faint:#b5b0a4;
  --border:#e5e0d5; --border-light:#ebe7de;

  /* Accent (tweakable) — defaults to brand teal */
  --accent:#0d9488;
  --accent-pale:rgba(13,148,136,0.06);
  --accent-pale-strong:rgba(13,148,136,0.10);
  --accent-border:rgba(13,148,136,0.18);
  --accent-soft:rgba(13,148,136,0.4);

  --coral:#f97316;
  --coral-pale:rgba(249,115,22,0.06);
  --coral-border:rgba(249,115,22,0.18);

  --navy:#1d6fb5;
  --warning:#c2410c;

  --f-display:'Sora','Noto Sans JP',sans-serif;
  --f-body:'Noto Sans JP',-apple-system,'Hiragino Sans',sans-serif;
  --f-mono:'DM Mono','JetBrains Mono',monospace;
}

/* Accent palette swaps (controlled by [data-accent] on <body>) */
body[data-accent="navy"]{
  --accent:#1d6fb5;
  --accent-pale:rgba(29,111,181,0.06);
  --accent-pale-strong:rgba(29,111,181,0.10);
  --accent-border:rgba(29,111,181,0.20);
  --accent-soft:rgba(29,111,181,0.4);
}
body[data-accent="forest"]{
  --accent:#1f8a5b;
  --accent-pale:rgba(31,138,91,0.06);
  --accent-pale-strong:rgba(31,138,91,0.10);
  --accent-border:rgba(31,138,91,0.20);
  --accent-soft:rgba(31,138,91,0.4);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg)}
body{
  font-family:var(--f-body);
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:transparent}

/* ───── Shell ───── */
.outer{
  min-height:100vh;
  background:
    radial-gradient(ellipse 1200px 600px at 50% -200px, rgba(13,148,136,0.04), transparent 70%),
    var(--bg);
}
.page{
  max-width:640px;
  margin:0 auto;
  background:transparent;
}

/* ───── Header ───── */
.hdr{
  background:rgba(255,255,255,0.86);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  backdrop-filter:blur(12px) saturate(140%);
  border-bottom:1px solid var(--border);
  position:sticky;top:0;z-index:50;
}
.hdr-inner{
  max-width:640px;margin:0 auto;
  display:flex;align-items:center;gap:10px;
  padding:11px 16px;
}
.logo-icon{
  width:30px;height:30px;border-radius:50%;
  background:var(--accent-pale);border:2px solid var(--accent-border);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.logo-icon::before{
  content:"";width:10px;height:10px;border-radius:50%;background:var(--accent);
}
.logo{font-size:15px;font-weight:800;color:var(--accent);font-family:var(--f-display);letter-spacing:0.3px}
.tagline{font-size:9px;color:var(--muted);margin-top:1px}
/* Header right slot — small text link to TOP / pref index */
.hdr-link{
  margin-left:auto;
  font-size:11px;font-weight:700;color:var(--accent);
  border:1px solid var(--accent-border);
  background:var(--accent-pale);
  padding:6px 10px;border-radius:7px;
  display:inline-flex;align-items:center;gap:5px;
  text-decoration:none;
  transition:background 0.15s, border-color 0.15s, color 0.15s;
}
.hdr-link:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.hdr-link .arr{font-size:13px;font-weight:600;line-height:1}

/* ───── Layout primitives ───── */
.main{padding:18px 16px 40px}
.bc{font-size:11px;color:var(--muted);margin-bottom:14px;letter-spacing:0.02em}
.bc a{text-decoration:none}
.bc a:hover{color:var(--accent);text-decoration:underline}
.bc .sep{color:var(--faint);margin:0 4px}

.section{margin-top:22px}
.section-head{margin-bottom:8px}
.h-eyebrow{
  font-size:10px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--accent);font-family:var(--f-display);
  display:flex;align-items:center;gap:6px;margin-bottom:4px;
}
.h-eyebrow::before{
  content:"";width:14px;height:1px;background:var(--accent);
}
.h-sec{
  font-size:16px;font-weight:800;color:var(--ink);
  font-family:var(--f-display);letter-spacing:-0.01em;line-height:1.3;
}
.h-sub{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.6}

.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:12px;
  padding:14px 16px;
}

.divider{height:1px;background:var(--border);margin:20px 0}

/* ───── Hero ───── */
.hero{
  margin-top:6px;
  padding:18px 18px 20px;
  background:
    linear-gradient(180deg, var(--accent-pale-strong) 0%, transparent 60%),
    var(--card);
  border:1px solid var(--border);
  border-radius:14px;
  position:relative;overflow:hidden;
}
.hero::after{
  content:"";position:absolute;right:-30px;top:-30px;
  width:120px;height:120px;border-radius:50%;
  background:var(--accent-pale-strong);
  opacity:0.6;pointer-events:none;
}
.hero-row{display:flex;align-items:center;gap:12px;position:relative;z-index:1}
.tier-badge{
  width:52px;height:52px;border-radius:14px;
  background:var(--accent-pale);
  border:2px solid var(--accent-soft);
  color:var(--accent);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-mono);font-weight:700;font-size:24px;flex-shrink:0;
  letter-spacing:-0.02em;
}
body[data-hide-tier="true"] .tier-badge{display:none}
.hero h1{
  font-family:var(--f-display);
  font-size:24px;font-weight:800;letter-spacing:-0.02em;line-height:1.2;
}
.hero h1 .small{font-size:13px;font-weight:600;color:var(--muted);display:block;margin-bottom:2px;letter-spacing:0}
.hero-tags{display:flex;align-items:center;gap:6px;margin-top:6px;flex-wrap:wrap}
.tag{
  font-size:10px;font-weight:700;color:#fff;background:var(--accent);
  border-radius:5px;padding:2px 7px;letter-spacing:0.02em;
}
.tag.is-ghost{
  background:transparent;color:var(--accent);
  border:1px solid var(--accent-border);
}
.score-inline{font-size:11px;color:var(--muted);font-family:var(--f-mono)}
.score-inline b{color:var(--ink);font-weight:700}

/* ───── CTA ───── */
.cta-soft{
  margin-top:14px;
  position:relative;
  display:flex;align-items:center;gap:12px;
  padding:13px 14px;
  background:#fff;
  border:1px solid var(--accent-border);
  border-radius:11px;
  cursor:pointer;
  transition:transform 0.15s, box-shadow 0.15s, border-color 0.15s;
}
.cta-soft:hover{
  border-color:var(--accent);
  box-shadow:0 4px 14px -8px var(--accent-soft);
  transform:translateY(-1px);
}
.cta-soft .icon{
  width:34px;height:34px;border-radius:50%;
  background:var(--accent-pale);
  border:1px solid var(--accent-border);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;color:var(--accent);
}
.cta-soft .body{flex:1;min-width:0}
.cta-soft .ttl{font-size:13px;font-weight:700;color:var(--ink);line-height:1.3}
.cta-soft .sub{font-size:10.5px;color:var(--muted);margin-top:2px;line-height:1.5}
.cta-soft .arrow{color:var(--accent);font-size:18px;font-weight:600;flex-shrink:0}
.cta-soft .pill{
  display:inline-flex;align-items:center;gap:4px;
  font-size:9px;font-weight:700;color:#fff;background:var(--accent);
  border-radius:4px;padding:2px 6px;margin-bottom:4px;letter-spacing:0.05em;
}

/* ───── Info / problem boxes ───── */
.info-box{
  background:var(--accent-pale);
  border:1px solid var(--accent-border);
  border-radius:12px;padding:14px 15px;
}
.info-box .info-h{
  font-size:12px;font-weight:700;color:var(--accent);
  margin-bottom:8px;font-family:var(--f-display);letter-spacing:0.01em;
}
.info-box .info-row{display:flex;gap:10px;margin-bottom:10px}
.info-box .info-row:last-child{margin-bottom:0}
.info-box .info-row .dot{
  width:6px;height:6px;border-radius:50%;background:var(--accent);
  flex-shrink:0;margin-top:7px;
}
.info-box .info-row .t-ttl{font-size:12px;font-weight:700;color:var(--ink);line-height:1.5}
.info-box .info-row .t-sub{font-size:11px;color:var(--sub);line-height:1.6;margin-top:1px}

.warm-box{
  background:var(--warm);border:1px solid var(--border);
  border-radius:12px;padding:14px 15px;
}
.warm-box h2{
  font-family:var(--f-display);
  font-size:13px;font-weight:700;color:var(--ink);margin-bottom:8px;
}
.warm-box p{font-size:12px;line-height:1.85;color:var(--sub);text-wrap:pretty}
.warm-box p + p{margin-top:8px}
.warm-box em{
  font-style:normal;color:var(--ink);font-weight:700;
  background:linear-gradient(180deg, transparent 60%, var(--accent-pale-strong) 60%);
}

/* ───── KPI grid ───── */
.kpi-grid{
  display:grid;grid-template-columns:1fr 1fr 1fr;
  gap:1px;background:var(--border);
  border:1px solid var(--border);border-radius:12px;overflow:hidden;
}
.kpi{
  background:var(--card);
  padding:13px 12px;
  display:flex;flex-direction:column;gap:3px;
  min-width:0;
}
.kpi .k-label{
  font-size:9.5px;color:var(--muted);
  letter-spacing:0.04em;line-height:1.3;
}
.kpi .k-value{
  font-family:var(--f-mono);font-weight:700;color:var(--ink);
  font-size:20px;line-height:1.1;display:flex;align-items:baseline;gap:2px;
  letter-spacing:-0.02em;
}
.kpi .k-value .unit{font-size:10px;font-weight:500;color:var(--muted);font-family:var(--f-body);margin-left:2px}
.kpi .k-trend{
  font-size:9px;color:var(--accent);font-weight:600;
  display:flex;align-items:center;gap:3px;
}
.kpi .k-trend.is-down{color:var(--muted)}
.kpi.is-highlight .k-value{color:var(--accent)}

/* ───── Service table ───── */
.svc-tbl{
  background:var(--card);border:1px solid var(--border);
  border-radius:12px;overflow:hidden;
}
.svc-row{
  display:grid;
  grid-template-columns:1fr 56px 60px;
  align-items:center;gap:8px;
  padding:11px 14px;
  border-bottom:1px solid var(--border-light);
  font-size:12px;
}
.svc-row:last-child{border-bottom:0}
.svc-row .name{color:var(--sub);line-height:1.3}
.svc-row .count{
  font-family:var(--f-mono);font-weight:700;color:var(--ink);text-align:right;
  font-size:13px;
}
.svc-row .vs{
  font-size:9.5px;color:var(--accent);font-weight:700;text-align:right;
  font-family:var(--f-mono);
}
.svc-row .vs.is-down{color:var(--muted);font-weight:500}
.svc-head{
  background:var(--warm);
  font-size:9.5px;color:var(--muted);font-weight:600;
  text-transform:uppercase;letter-spacing:0.06em;
  padding:8px 14px;
  display:grid;grid-template-columns:1fr 56px 60px;gap:8px;
}
.svc-head .a-r{text-align:right}

/* ───── 10-ward comparison ───── */
.cmp-tbl{
  background:var(--card);border:1px solid var(--border);
  border-radius:12px;overflow:hidden;
}
.cmp-row{
  display:grid;
  grid-template-columns:22px 30px 1fr 44px 90px;
  align-items:center;gap:8px;
  padding:9px 12px;
  border-bottom:1px solid var(--border-light);
}
.cmp-row:last-child{border-bottom:0}
.cmp-row.is-self{
  background:var(--accent-pale);
  border-left:3px solid var(--accent);
  padding-left:9px;
}
.cmp-rank{
  font-size:10px;color:var(--muted);font-family:var(--f-mono);font-weight:500;
}
.cmp-row.is-self .cmp-rank{color:var(--accent);font-weight:700}
.mini-badge{
  width:22px;height:22px;border-radius:6px;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-mono);font-weight:700;font-size:11px;flex-shrink:0;
}
.mini-badge[data-tier="A"]{background:var(--accent-pale);border:1px solid var(--accent-soft);color:var(--accent)}
.mini-badge[data-tier="B"]{background:rgba(29,111,181,0.06);border:1px solid rgba(29,111,181,0.3);color:var(--navy)}
.mini-badge[data-tier="C"]{background:rgba(194,65,12,0.06);border:1px solid rgba(194,65,12,0.25);color:var(--warning)}
.mini-badge[data-tier="D"]{background:#f3efe6;border:1px solid var(--border);color:var(--muted)}
body[data-hide-tier="true"] .mini-badge{display:none}
.cmp-name{font-size:12px;color:var(--sub);font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmp-row.is-self .cmp-name{color:var(--accent);font-weight:700}
.cmp-count{font-size:11px;font-family:var(--f-mono);color:var(--sub);text-align:right;font-weight:500}
.cmp-bar-wrap{display:flex;align-items:center;gap:5px;justify-content:flex-end}
.cmp-bar{
  width:54px;height:5px;background:#eeeae0;border-radius:10px;overflow:hidden;
}
.cmp-bar > div{height:100%;background:var(--accent);border-radius:10px;transition:width 0.6s}
.cmp-score{
  font-size:10px;font-family:var(--f-mono);font-weight:700;color:var(--accent);
  width:24px;text-align:right;
}

/* ───── Wide bar chart (10区比較) ───── */
.bar-row{
  display:grid;
  grid-template-columns:18px 22px 1fr 38px;
  align-items:center;gap:8px;
  padding:9px 12px;
  border-bottom:1px solid var(--border-light);
}
.bar-row:last-child{border-bottom:0}
.bar-row.is-self{
  background:var(--accent-pale);
  position:relative;
}
.bar-row.is-self::before{
  content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;
  background:var(--accent);border-radius:0 2px 2px 0;
}
.bar-rank{font-size:10px;font-family:var(--f-mono);color:var(--muted);font-weight:600;text-align:center}
.bar-row.is-self .bar-rank{color:var(--accent);font-weight:800}
.bar-track{
  position:relative;height:22px;
  display:flex;align-items:center;
}
.bar-track .name{
  position:absolute;left:8px;top:50%;transform:translateY(-50%);
  font-size:11px;color:var(--ink);font-weight:600;z-index:2;
  text-shadow:0 1px 0 rgba(255,255,255,0.4);
  pointer-events:none;letter-spacing:-0.01em;
}
.bar-row.is-self .bar-track .name{
  color:#fff;font-weight:800;
  text-shadow:0 1px 2px rgba(0,0,0,0.35), 0 0 1px rgba(0,0,0,0.25);
  letter-spacing:0;
}
.bar-track .name .you{
  display:inline-flex;align-items:center;gap:3px;
  font-size:10px;font-weight:800;color:#fff;
  background:var(--coral);
  border-radius:4px;padding:2px 6px 2px 5px;
  margin-left:6px;letter-spacing:0.04em;
  vertical-align:middle;
  box-shadow:0 1px 3px rgba(0,0,0,0.18), 0 0 0 1.5px rgba(255,255,255,0.9);
  text-shadow:none;
}
.bar-track .name .you::before{
  content:"";
  width:6px;height:6px;border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 1px var(--coral);
  flex-shrink:0;
}
.bar-fill-wide{
  height:22px;border-radius:5px;
  background:linear-gradient(90deg, var(--accent), var(--accent-soft));
  position:relative;transition:width 0.7s ease-out;
}
.bar-row[data-tier="B"] .bar-fill-wide{background:linear-gradient(90deg,#1d6fb5,rgba(29,111,181,0.5))}
.bar-row[data-tier="C"] .bar-fill-wide{background:linear-gradient(90deg,#c2410c,rgba(194,65,12,0.45))}
.bar-row[data-tier="D"] .bar-fill-wide{background:linear-gradient(90deg,#8e897d,rgba(142,137,125,0.4))}
.bar-count{font-size:10px;color:var(--muted);font-family:var(--f-mono);text-align:right;font-weight:500}
.bar-row.is-self .bar-count{color:var(--accent);font-weight:700}

.cmp-legend{
  display:flex;flex-wrap:wrap;gap:10px;
  font-size:10px;color:var(--muted);margin-top:8px;padding:0 4px;
}
.cmp-legend .lg{display:flex;align-items:center;gap:4px}
.cmp-legend .sw{width:9px;height:9px;border-radius:2px}

/* ───── National-avg comparison in service table ───── */
.svc-row .svc-bar{
  position:relative;height:6px;
  background:#f0ece2;border-radius:10px;overflow:visible;
  margin-top:5px;
}
.svc-row .svc-bar > .fill{
  height:100%;background:var(--accent);border-radius:10px;
  transition:width 0.6s;
}
.svc-row .svc-bar > .avg-tick{
  position:absolute;top:-3px;bottom:-3px;width:1.5px;
  background:var(--ink);opacity:0.55;
  border-radius:1px;
}
.svc-row .svc-bar > .avg-tick::after{
  content:"全国平均";position:absolute;
  top:-13px;left:50%;transform:translateX(-50%);
  font-size:7.5px;color:var(--muted);font-family:var(--f-mono);
  white-space:nowrap;letter-spacing:0.02em;
}
.svc-row{
  grid-template-columns:1fr 60px;
  gap:10px;
  align-items:start;
  padding:11px 14px 13px;
}
.svc-row .name{font-size:12px;font-weight:600;color:var(--ink);line-height:1.3}
.svc-row .nat{font-size:9px;color:var(--muted);margin-top:1px;font-family:var(--f-mono)}
.svc-row .count-col{text-align:right}
.svc-row .count-big{
  font-family:var(--f-mono);font-weight:700;color:var(--ink);
  font-size:15px;line-height:1.1;
}
.svc-row .vs-tag{
  display:inline-block;
  font-size:9px;font-weight:700;color:var(--accent);
  background:var(--accent-pale);border:1px solid var(--accent-border);
  border-radius:4px;padding:1px 4px;margin-top:3px;
  font-family:var(--f-mono);
}
.svc-row .vs-tag.is-down{color:var(--muted);background:var(--warm);border-color:var(--border)}

/* ───── Context note (under KPIs) ───── */
.kpi-context{
  margin-top:8px;
  display:flex;align-items:flex-start;gap:8px;
  padding:11px 12px;
  background:var(--warm);border:1px solid var(--border);
  border-radius:10px;
  font-size:11px;color:var(--sub);line-height:1.65;
}
.kpi-context .ic{
  flex-shrink:0;width:18px;height:18px;border-radius:50%;
  background:var(--accent-pale);color:var(--accent);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-mono);font-weight:800;font-size:11px;
  margin-top:1px;
}
.kpi-context em{font-style:normal;font-weight:700;color:var(--ink);background:linear-gradient(180deg,transparent 60%, var(--accent-pale-strong) 60%)}

/* (Modal CSS removed in v4 — diagnostic flow deprecated) */

/* ───── Affiliate CTA stack ───── */
.cta-wrap{
  background:var(--coral-pale);
  border:1px solid var(--coral-border);
  border-radius:12px;
  padding:16px 14px;
}
.cta-wrap .pr-tag{font-size:9px;font-weight:700;color:var(--coral);margin-bottom:4px;letter-spacing:0.06em}
.cta-wrap .cta-h{font-size:14px;font-weight:800;color:var(--ink);margin-bottom:4px;font-family:var(--f-display)}
.cta-wrap .cta-d{font-size:11px;color:var(--sub);line-height:1.6;margin-bottom:12px}
.cta-btn{
  display:flex;align-items:center;justify-content:space-between;
  padding:11px 12px;border:1px solid var(--border);border-radius:9px;
  margin-bottom:6px;background:var(--card);
  transition:border-color 0.15s, transform 0.15s;
}
.cta-btn:last-child{margin-bottom:0}
.cta-btn:hover{border-color:var(--accent);transform:translateY(-1px)}
.cta-btn .b-name{font-size:12px;font-weight:700;color:var(--ink)}
.cta-btn .b-desc{font-size:9.5px;color:var(--muted);margin-top:1px;line-height:1.4}
.cta-pill{
  display:inline-block;border-radius:6px;padding:5px 10px;
  font-size:10px;font-weight:700;color:#fff;flex-shrink:0;
}
.cta-disclaimer{font-size:8.5px;color:var(--faint);text-align:center;margin-top:6px;letter-spacing:0.03em}

/* ───── ASP-compliant CTA cards (replaces .final-cta) ───── */
.asp-stack{
  display:flex;flex-direction:column;gap:6px;
  margin-bottom:8px;
}
.asp-card{
  position:relative;
  background:var(--card);
  border:1px solid var(--border);
  border-left:4px solid var(--asp-color, var(--accent));
  border-radius:9px;
  padding-right:28px;
  transition:border-color 0.15s, transform 0.15s, box-shadow 0.15s;
}
.asp-card:hover{
  border-color:var(--asp-color, var(--accent));
  transform:translateY(-1px);
  box-shadow:0 4px 14px -10px rgba(0,0,0,0.18);
}
.asp-card::after{
  content:"›";
  position:absolute;
  right:12px;top:50%;transform:translateY(-50%);
  color:var(--asp-color, var(--accent));
  font-size:18px;font-weight:600;line-height:1;
  pointer-events:none;
}
.asp-card a{
  display:block;
  padding:13px 6px 13px 14px;
  font-size:12.5px;font-weight:700;
  color:var(--ink);text-decoration:none;
  line-height:1.5;letter-spacing:-0.01em;
}
.asp-card a:hover{
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-color:var(--asp-color, var(--accent));
}
/* tracking pixel — keep its 1×1 attrs intact, just take out of flow */
.asp-card img{
  position:absolute;top:0;left:0;
  pointer-events:none;
}

/* ───── Final-CTA wrap (re-uses existing coral .cta-wrap) ───── */
.cta-wrap .cta-h{margin-top:2px}

/* Final-CTA (2-choice) — kept for legacy compatibility but no longer used */
.final-cta{
  margin-top:16px;
  padding:18px 16px 16px;
  background:
    linear-gradient(180deg, var(--accent-pale-strong), transparent 70%),
    var(--card);
  border:1px solid var(--accent-border);
  border-radius:14px;
}
.final-cta .fc-eyebrow{
  font-size:10px;font-weight:700;color:var(--accent);
  letter-spacing:0.1em;text-transform:uppercase;
  font-family:var(--f-display);margin-bottom:6px;
}
.final-cta .fc-h{
  font-family:var(--f-display);
  font-size:18px;font-weight:800;color:var(--ink);
  line-height:1.35;letter-spacing:-0.01em;margin-bottom:6px;
}
.final-cta .fc-d{font-size:11.5px;color:var(--sub);line-height:1.7;margin-bottom:14px}
.fc-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fc-btn{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  padding:14px 8px;
  border-radius:11px;
  text-align:center;
  transition:transform 0.15s, box-shadow 0.2s;
}
.fc-btn:hover{transform:translateY(-2px)}
.fc-btn .ico{font-size:18px}
.fc-btn .l1{font-size:12.5px;font-weight:800;line-height:1.2;font-family:var(--f-display)}
.fc-btn .l2{font-size:9.5px;line-height:1.4;font-weight:500;opacity:0.85}
.fc-primary{
  background:var(--accent);color:#fff;
  box-shadow:0 6px 18px -8px var(--accent-soft);
}
.fc-primary:hover{box-shadow:0 10px 24px -8px var(--accent-soft)}
.fc-secondary{
  background:#fff;color:var(--ink);
  border:1px solid var(--border);
}
.fc-secondary .l2{color:var(--muted)}
.fc-secondary:hover{border-color:var(--accent);color:var(--accent)}
.fc-disclaimer{
  font-size:9px;color:var(--faint);text-align:center;
  margin-top:10px;letter-spacing:0.02em;
}

/* ───── Source / trust ───── */
.src-note{
  font-size:10.5px;color:var(--muted);line-height:1.8;
  background:var(--warm);border-radius:8px;padding:11px 13px;
  border:1px solid var(--border-light);
}
.src-note .src-h{font-weight:700;color:var(--sub);margin-bottom:2px;font-size:10.5px}

/* ───── Footer ───── */
.ft{
  border-top:1px solid var(--border);
  padding:24px 16px;text-align:center;
  font-size:10.5px;color:var(--muted);line-height:1.7;
}

/* ───── Tier distribution (prefecture page) ───── */
.tier-dist-bar{
  display:flex;width:100%;height:14px;border-radius:8px;overflow:hidden;
  border:1px solid var(--border);background:var(--card);
  margin-bottom:12px;
}
.tier-dist-bar > span{
  display:flex;align-items:center;justify-content:center;
  font-size:9px;font-weight:700;color:#fff;font-family:var(--f-mono);
  letter-spacing:0.04em;
  transition:flex-grow 0.6s;
}
.tier-dist-bar > span[data-tier="A"]{background:var(--accent)}
.tier-dist-bar > span[data-tier="B"]{background:#1d6fb5}
.tier-dist-bar > span[data-tier="C"]{background:#c2410c}
.tier-dist-bar > span[data-tier="D"]{background:#8e897d}

.tier-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:6px;
}
.tier-box{
  background:var(--card);border:1px solid var(--border);
  border-radius:10px;padding:11px 10px 12px;
  display:flex;flex-direction:column;gap:2px;
  position:relative;overflow:hidden;
}
.tier-box::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--bar);
}
.tier-box[data-tier="A"]{--bar:#0d9488}
.tier-box[data-tier="B"]{--bar:#1d6fb5}
.tier-box[data-tier="C"]{--bar:#c2410c}
.tier-box[data-tier="D"]{--bar:#8e897d}
body[data-accent="navy"] .tier-box[data-tier="A"]{--bar:var(--accent)}
body[data-accent="forest"] .tier-box[data-tier="A"]{--bar:var(--accent)}
.tier-box .tb-badge{
  width:22px;height:22px;border-radius:5px;
  font-family:var(--f-mono);font-weight:700;font-size:11px;
  display:flex;align-items:center;justify-content:center;
  color:#fff;background:var(--bar);margin-bottom:3px;
}
body[data-hide-tier="true"] .tier-box .tb-badge{display:none}
.tier-box .tb-count{
  font-family:var(--f-mono);font-weight:700;font-size:20px;
  color:var(--ink);line-height:1.1;display:flex;align-items:baseline;gap:2px;
  letter-spacing:-0.02em;
}
.tier-box .tb-count .unit{font-size:9.5px;font-weight:500;color:var(--muted);font-family:var(--f-body)}
.tier-box .tb-pct{font-size:9.5px;color:var(--muted);font-family:var(--f-mono)}
.tier-box .tb-lbl{font-size:10px;color:var(--sub);font-weight:600;margin-top:2px;line-height:1.3}

.tier-callout{
  margin-top:10px;
  display:flex;align-items:flex-start;gap:8px;
  padding:11px 12px;
  background:var(--accent-pale);
  border:1px solid var(--accent-border);
  border-radius:10px;
  font-size:11px;color:var(--sub);line-height:1.65;
}
.tier-callout .ic{
  flex-shrink:0;width:18px;height:18px;border-radius:50%;
  background:var(--accent);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-mono);font-weight:800;font-size:11px;
  margin-top:1px;
}
.tier-callout em{font-style:normal;font-weight:700;color:var(--ink);background:linear-gradient(180deg,transparent 60%, var(--accent-pale-strong) 60%)}

/* ───── Ranking list (44 cities, with expand) ───── */
.rank-list{
  background:var(--card);border:1px solid var(--border);
  border-radius:12px;overflow:hidden;
}
.rank-row{
  display:grid;
  grid-template-columns:18px 22px 1fr 42px 36px 14px;
  align-items:center;gap:8px;
  padding:9px 12px;
  border-bottom:1px solid var(--border-light);
  text-decoration:none;color:inherit;
  transition:background 0.12s;
}
.rank-row:last-child{border-bottom:0}
.rank-row:hover{background:var(--warm)}
.rank-row .rank-num{font-size:10px;font-family:var(--f-mono);color:var(--muted);font-weight:500;text-align:center}
.rank-row .rank-name{font-size:12px;color:var(--ink);font-weight:600;letter-spacing:-0.01em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank-row .rank-count{font-size:10px;font-family:var(--f-mono);color:var(--muted);text-align:right}
.rank-row .rank-score{font-size:11px;font-family:var(--f-mono);font-weight:700;text-align:right}
.rank-row[data-tier="A"] .rank-score{color:#0d9488}
.rank-row[data-tier="B"] .rank-score{color:#1d6fb5}
.rank-row[data-tier="C"] .rank-score{color:#c2410c}
.rank-row[data-tier="D"] .rank-score{color:#8e897d}
body[data-accent="navy"] .rank-row[data-tier="A"] .rank-score{color:var(--accent)}
body[data-accent="forest"] .rank-row[data-tier="A"] .rank-score{color:var(--accent)}
.rank-row .rank-arr{color:var(--faint);font-size:13px;text-align:center}
.rank-row .rank-row-bar{
  grid-column:1 / -1;height:3px;background:#eeeae0;border-radius:2px;overflow:hidden;
  margin-top:-2px;margin-bottom:2px;
}
.rank-row .rank-row-bar > div{height:100%}
.rank-row[data-tier="A"] .rank-row-bar > div{background:#0d9488}
.rank-row[data-tier="B"] .rank-row-bar > div{background:#1d6fb5}
.rank-row[data-tier="C"] .rank-row-bar > div{background:#c2410c}
.rank-row[data-tier="D"] .rank-row-bar > div{background:#8e897d}
body[data-accent="navy"] .rank-row[data-tier="A"] .rank-row-bar > div{background:var(--accent)}
body[data-accent="forest"] .rank-row[data-tier="A"] .rank-row-bar > div{background:var(--accent)}

.rank-hidden{display:none}
body[data-rank-expanded="true"] .rank-hidden{display:grid}

.rank-expand{
  display:flex;align-items:center;justify-content:center;gap:6px;
  width:100%;padding:12px;
  background:var(--card);border:1px solid var(--border);
  border-radius:10px;margin-top:8px;
  font-size:12px;font-weight:700;color:var(--accent);
  font-family:var(--f-display);letter-spacing:0.02em;
  cursor:pointer;
  transition:background 0.12s, border-color 0.12s;
}
.rank-expand:hover{background:var(--accent-pale);border-color:var(--accent-border)}
.rank-expand .arr{
  display:inline-block;transition:transform 0.2s;
}
body[data-rank-expanded="true"] .rank-expand .arr{transform:rotate(180deg)}
.rank-expand .label-expanded{display:none}
body[data-rank-expanded="true"] .rank-expand .label-collapsed{display:none}
body[data-rank-expanded="true"] .rank-expand .label-expanded{display:inline}

/* ───── Adjacent prefectures ───── */
.adj-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
}
.adj-card{
  display:flex;align-items:center;gap:10px;
  background:var(--card);border:1px solid var(--border);
  border-radius:10px;padding:12px 13px;
  text-decoration:none;color:inherit;
  transition:border-color 0.15s, transform 0.15s;
}
.adj-card:hover{
  border-color:var(--accent);
  transform:translateY(-1px);
  box-shadow:0 4px 14px -10px var(--accent-soft);
}
.adj-card .adj-dir{
  width:30px;height:30px;border-radius:8px;
  background:var(--accent-pale);color:var(--accent);
  border:1px solid var(--accent-border);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-mono);font-size:11px;font-weight:700;
  flex-shrink:0;letter-spacing:-0.02em;
}
.adj-card .adj-body{flex:1;min-width:0}
.adj-card .adj-name{font-size:13px;font-weight:700;color:var(--ink);font-family:var(--f-display);line-height:1.2}
.adj-card .adj-sub{font-size:9.5px;color:var(--muted);margin-top:2px;font-family:var(--f-mono);letter-spacing:0.02em}
.adj-card .adj-arr{color:var(--accent);font-size:14px;font-weight:600}

/* ───── Hero variant for prefecture (no big score number) ───── */
.hero.is-pref h1 .small{color:var(--accent);font-weight:700;letter-spacing:0.05em;font-size:11px}
.hero.is-pref .tier-badge{
  background:var(--accent);border-color:transparent;color:#fff;
  font-size:13px;font-weight:700;font-family:var(--f-display);letter-spacing:0.02em;
  border-radius:10px;
}
body[data-hide-tier="true"] .hero.is-pref .tier-badge{display:flex}

/* ───── Education label (matches existing site marker) ───── */
.edu-label{
  display:inline-block;
  font-size:8px;font-weight:800;letter-spacing:0.08em;
  color:#fff;background:var(--accent-soft);
  border-radius:4px;padding:2px 6px;margin-bottom:6px;
  font-family:var(--f-mono);
}

/* ═════════════════════════════════════════════════════════════
   TOP PAGE COMPONENTS
   ═════════════════════════════════════════════════════════════ */

/* ───── Hero (TOP variant) ───── */
.hero.is-top{
  padding:24px 18px 22px;
  background:
    radial-gradient(ellipse 400px 300px at 80% 0%, var(--accent-pale-strong), transparent 70%),
    linear-gradient(180deg, var(--accent-pale) 0%, var(--card) 80%);
  position:relative;overflow:hidden;
}
.hero.is-top::before{
  content:"";position:absolute;left:-50px;bottom:-50px;
  width:160px;height:160px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%, var(--accent-pale-strong), transparent 70%);
  pointer-events:none;
}
.hero.is-top::after{display:none}
.hero-eyebrow{
  font-size:10px;font-weight:700;color:var(--accent);
  letter-spacing:0.14em;text-transform:uppercase;
  font-family:var(--f-display);
  display:flex;align-items:center;gap:6px;margin-bottom:10px;
  position:relative;z-index:1;
}
.hero-eyebrow::before{
  content:"";width:14px;height:1px;background:var(--accent);
}
.hero.is-top h1{
  font-family:var(--f-display);
  font-size:30px;font-weight:800;letter-spacing:-0.025em;
  line-height:1.2;color:var(--ink);
  position:relative;z-index:1;text-wrap:balance;
}
.hero.is-top h1 em{
  font-style:normal;color:var(--accent);
  background:linear-gradient(180deg,transparent 65%, var(--accent-pale-strong) 65%);
}
.hero.is-top .hero-sub{
  font-size:13px;color:var(--sub);line-height:1.7;
  margin-top:10px;font-weight:500;text-wrap:pretty;
  position:relative;z-index:1;max-width:90%;
}
.hero.is-top .hero-stats{
  display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;
  margin-top:14px;padding-top:12px;
  border-top:1px solid var(--border);
  position:relative;z-index:1;
}
.hero.is-top .hero-stats .hs{
  display:flex;flex-direction:column;line-height:1.2;
}
.hero.is-top .hero-stats .hs .n{
  font-family:var(--f-mono);font-weight:700;font-size:18px;
  color:var(--ink);letter-spacing:-0.03em;
}
.hero.is-top .hero-stats .hs .l{
  font-size:9px;color:var(--muted);font-weight:600;
  letter-spacing:0.05em;margin-top:1px;
}
.hero.is-top .hero-stats .sep{
  width:1px;height:24px;background:var(--border);align-self:center;
}

/* ───── National tier distribution bar (TOP) ───── */
.top-dist{
  margin-top:14px;position:relative;z-index:1;
}
.top-dist .td-bar{
  display:flex;width:100%;height:18px;border-radius:9px;overflow:hidden;
  background:var(--card);border:1px solid var(--border);
}
.top-dist .td-bar > span{
  display:flex;align-items:center;justify-content:center;
  font-size:9.5px;font-weight:700;color:#fff;font-family:var(--f-mono);
  letter-spacing:0.06em;
}
.top-dist .td-bar > span[data-tier="A"]{background:var(--accent)}
.top-dist .td-bar > span[data-tier="B"]{background:#1d6fb5}
.top-dist .td-bar > span[data-tier="C"]{background:#c2410c}
.top-dist .td-bar > span[data-tier="D"]{background:#8e897d}
.top-dist .td-labels{
  display:flex;justify-content:space-between;
  font-size:9px;color:var(--muted);margin-top:5px;
  font-family:var(--f-mono);letter-spacing:0.03em;
}
.top-dist .td-cap{
  font-size:10px;color:var(--muted);margin-top:7px;text-align:center;line-height:1.5;
}

/* ───── A-D tier explainer (4 cards, 2x2) ───── */
.tier-explain-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
}
.tier-explain{
  background:var(--card);border:1px solid var(--border);
  border-radius:12px;padding:13px 14px 14px;
  display:flex;flex-direction:column;gap:6px;
  position:relative;overflow:hidden;
}
.tier-explain::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:var(--bar);
}
.tier-explain[data-tier="A"]{--bar:#0d9488}
.tier-explain[data-tier="B"]{--bar:#1d6fb5}
.tier-explain[data-tier="C"]{--bar:#c2410c}
.tier-explain[data-tier="D"]{--bar:#8e897d}
body[data-accent="navy"] .tier-explain[data-tier="A"]{--bar:var(--accent)}
body[data-accent="forest"] .tier-explain[data-tier="A"]{--bar:var(--accent)}
.tier-explain .te-head{
  display:flex;align-items:center;gap:8px;
}
.tier-explain .te-badge{
  width:26px;height:26px;border-radius:6px;
  font-family:var(--f-mono);font-weight:700;font-size:13px;
  display:flex;align-items:center;justify-content:center;
  color:#fff;background:var(--bar);flex-shrink:0;
}
body[data-hide-tier="true"] .tier-explain .te-badge{display:none}
.tier-explain .te-range{
  font-size:10px;font-family:var(--f-mono);color:var(--muted);
  font-weight:600;letter-spacing:0.02em;
}
.tier-explain .te-title{
  font-size:12.5px;font-weight:700;color:var(--ink);
  font-family:var(--f-display);line-height:1.3;letter-spacing:-0.01em;
}
.tier-explain .te-count{
  font-family:var(--f-mono);font-size:11px;color:var(--sub);font-weight:600;
}
.tier-explain .te-count b{color:var(--ink);font-weight:700}
.tier-explain .te-desc{
  font-size:10.5px;color:var(--sub);line-height:1.6;
  margin-top:2px;text-wrap:pretty;
}
.tier-explain .te-examples{
  margin-top:auto;padding-top:6px;border-top:1px dashed var(--border);
  font-size:9.5px;color:var(--muted);line-height:1.5;
}
.tier-explain .te-examples b{color:var(--sub);font-weight:600;margin-right:3px}

/* ───── 47 Prefecture grid ───── */
.pref-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:6px;
}
.pref-card{
  display:flex;flex-direction:column;gap:2px;
  padding:11px 11px 9px;
  background:var(--card);border:1px solid var(--border);
  border-radius:9px;
  text-decoration:none;color:inherit;
  transition:border-color 0.15s, transform 0.15s, box-shadow 0.15s;
  position:relative;overflow:hidden;
  min-width:0;
}
.pref-card:hover{
  border-color:var(--accent);
  transform:translateY(-1px);
  box-shadow:0 6px 14px -10px var(--accent-soft);
}
.pref-card .pc-name{
  font-size:12px;font-weight:700;color:var(--ink);
  font-family:var(--f-display);line-height:1.2;letter-spacing:-0.01em;
  display:flex;align-items:center;justify-content:space-between;gap:4px;
}
.pref-card .pc-name .arr{
  font-size:11px;color:var(--faint);font-weight:500;
}
.pref-card:hover .pc-name .arr{color:var(--accent)}
.pref-card .pc-stat{
  font-size:9.5px;color:var(--muted);font-family:var(--f-mono);
  letter-spacing:0.01em;line-height:1.4;
}
.pref-card .pc-stat b{color:var(--ink);font-weight:700;font-size:11px}
.pref-card .pc-bar{
  height:2px;background:#eeeae0;border-radius:1px;
  margin-top:5px;overflow:hidden;
}
.pref-card .pc-bar > div{
  height:100%;background:var(--accent);border-radius:1px;
}
.pref-region{
  font-size:9px;font-weight:700;color:var(--muted);
  letter-spacing:0.1em;text-transform:uppercase;
  font-family:var(--f-display);margin:14px 0 6px;
  display:flex;align-items:center;gap:6px;
}
.pref-region::before, .pref-region::after{
  content:"";flex:1;height:1px;background:var(--border);
}
.pref-region:first-child{margin-top:0}

/* ───── Methodology card ───── */
.method-card{
  background:var(--card);border:1px solid var(--border);
  border-radius:12px;padding:16px 16px 14px;
}
.method-card .mc-title{
  font-family:var(--f-display);
  font-size:14px;font-weight:800;color:var(--ink);
  margin-bottom:2px;letter-spacing:-0.01em;
}
.method-card .mc-sub{
  font-size:10px;color:var(--muted);font-family:var(--f-mono);
  letter-spacing:0.03em;margin-bottom:12px;
}
.method-card .mc-rows{display:flex;flex-direction:column;gap:9px;margin-bottom:12px}
.method-card .mc-row{
  display:grid;grid-template-columns:18px 1fr 40px;
  align-items:center;gap:8px;font-size:11.5px;
}
.method-card .mc-row .mc-n{
  width:18px;height:18px;border-radius:50%;
  background:var(--accent-pale);border:1px solid var(--accent-border);
  color:var(--accent);font-family:var(--f-mono);font-weight:700;font-size:9.5px;
  display:flex;align-items:center;justify-content:center;
}
.method-card .mc-row .mc-name{color:var(--ink);font-weight:600;line-height:1.3;letter-spacing:-0.01em}
.method-card .mc-row .mc-name .desc{
  display:block;font-size:9.5px;color:var(--muted);font-weight:500;margin-top:1px;
  font-family:var(--f-mono);letter-spacing:0.02em;
}
.method-card .mc-row .mc-weight{
  font-family:var(--f-mono);font-weight:700;font-size:13px;color:var(--accent);
  text-align:right;letter-spacing:-0.02em;
}
.method-card .mc-row .mc-bar{
  grid-column:2 / 4;height:4px;background:#eeeae0;border-radius:2px;overflow:hidden;
  margin-top:-3px;
}
.method-card .mc-row .mc-bar > div{
  height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-soft));
  border-radius:2px;
}
.method-card .mc-foot{
  font-size:10.5px;color:var(--muted);line-height:1.7;
  background:var(--warm);border-radius:8px;padding:10px 12px;
  border:1px solid var(--border-light);
}
.method-card .mc-foot b{color:var(--sub);font-weight:700}

/* ───── Why regional differences (explainer list) ───── */
.why-list{
  display:flex;flex-direction:column;gap:8px;
}
.why-item{
  display:flex;gap:12px;
  background:var(--card);border:1px solid var(--border);
  border-radius:11px;padding:13px 14px 13px 12px;
}
.why-item .wi-num{
  flex-shrink:0;
  width:26px;height:26px;border-radius:7px;
  background:var(--accent-pale);border:1px solid var(--accent-border);
  color:var(--accent);font-family:var(--f-mono);font-weight:700;font-size:11px;
  display:flex;align-items:center;justify-content:center;
}
.why-item .wi-body{flex:1;min-width:0}
.why-item .wi-h{
  font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.3;
  font-family:var(--f-display);letter-spacing:-0.01em;margin-bottom:2px;
}
.why-item .wi-d{font-size:11px;color:var(--sub);line-height:1.65;text-wrap:pretty}


/* ───── CTA density (Tweak controlled) ───── */
body[data-density="low"] [data-density-tier="optional"]{display:none}
body[data-density="high"] .ex-cta-extra{display:block !important}
.ex-cta-extra{display:none}

/* ───── Tone (Tweak controlled) ───── */
[data-tone-block]{display:none}
body[data-tone="caring"] [data-tone-block="caring"]{display:block}
body[data-tone="neutral"] [data-tone-block="neutral"]{display:block}
body[data-tone="sharp"] [data-tone-block="sharp"]{display:block}

/* (Diagnostic widget CSS removed in v4) */

/* ═════════════════════════════════════════════════════════════
   V4 — TIER MESSAGE (city page, 1-line dynamic per tier)
   ═════════════════════════════════════════════════════════════ */
.tier-msg-rotator{display:contents}
.tier-msg{display:none;gap:11px;align-items:flex-start;
  background:var(--accent-pale);
  border:1px solid var(--accent-border);
  border-radius:11px;padding:13px 14px;
}
body[data-tier="A"] [data-tier-msg="A"],
body[data-tier="B"] [data-tier-msg="B"],
body[data-tier="C"] [data-tier-msg="C"],
body[data-tier="D"] [data-tier-msg="D"]{display:flex}

.tier-msg .tm-badge{
  flex-shrink:0;width:30px;height:30px;border-radius:7px;
  font-family:var(--f-mono);font-weight:700;font-size:14px;
  display:flex;align-items:center;justify-content:center;
  color:#fff;
}
.tier-msg[data-tier-msg="A"] .tm-badge{background:#0d9488}
.tier-msg[data-tier-msg="B"] .tm-badge{background:#1d6fb5}
.tier-msg[data-tier-msg="C"] .tm-badge{background:#c2410c}
.tier-msg[data-tier-msg="D"] .tm-badge{background:#8e897d}
body[data-accent="navy"] .tier-msg[data-tier-msg="A"] .tm-badge,
body[data-accent="forest"] .tier-msg[data-tier-msg="A"] .tm-badge{background:var(--accent)}
body[data-hide-tier="true"] .tier-msg .tm-badge{display:none}
.tier-msg .tm-body{flex:1;min-width:0}
.tier-msg .tm-h{
  font-size:12px;font-weight:700;color:var(--ink);
  font-family:var(--f-display);letter-spacing:-0.01em;margin-bottom:3px;
}
.tier-msg .tm-d{font-size:11.5px;color:var(--sub);line-height:1.7;text-wrap:pretty}
.tier-msg .tm-d em{font-style:normal;font-weight:700;color:var(--ink);background:linear-gradient(180deg,transparent 60%, var(--accent-pale-strong) 60%)}

/* ═════════════════════════════════════════════════════════════
   V4 — RESPONSIVE COLLAPSE (mobile-only details/summary)
   HTML retains full content (MFI-safe). PC: force-open, hide summary.
   ═════════════════════════════════════════════════════════════ */
details.mc-fold,
details.kpi-mc-fold{
  /* mobile-only collapse container — content sits below summary */
  margin:0;
}
details.mc-fold > summary,
details.kpi-mc-fold > summary{
  list-style:none;
  display:flex;align-items:center;justify-content:center;gap:6px;
  width:100%;padding:11px 12px;margin-top:8px;
  background:var(--card);border:1px solid var(--border);
  border-radius:10px;
  font-size:11.5px;font-weight:700;color:var(--accent);
  font-family:var(--f-display);letter-spacing:0.01em;
  cursor:pointer;
  transition:background 0.12s, border-color 0.12s;
}
details.mc-fold > summary:hover,
details.kpi-mc-fold > summary:hover{background:var(--accent-pale);border-color:var(--accent-border)}
details.mc-fold > summary::-webkit-details-marker,
details.kpi-mc-fold > summary::-webkit-details-marker{display:none}
details.mc-fold > summary::marker,
details.kpi-mc-fold > summary::marker{display:none;content:""}
details.mc-fold > summary .chev,
details.kpi-mc-fold > summary .chev{
  display:inline-block;transition:transform 0.2s;font-size:13px;line-height:1;
}
details.mc-fold[open] > summary .chev,
details.kpi-mc-fold[open] > summary .chev{transform:rotate(180deg)}
details.mc-fold > summary .lbl-open,
details.kpi-mc-fold > summary .lbl-open{display:none}
details.mc-fold[open] > summary .lbl-closed,
details.kpi-mc-fold[open] > summary .lbl-closed{display:none}
details.mc-fold[open] > summary .lbl-open,
details.kpi-mc-fold[open] > summary .lbl-open{display:inline}

/* On PC (>=769px): force-open by JS + hide summary entirely */
@media (min-width: 769px){
  details.mc-fold > summary,
  details.kpi-mc-fold > summary{display:none}
}

/* When details has parent table-like container, the wrapper sits as a continuation */
.svc-tbl details.mc-fold,
.cmp-tbl details.mc-fold,
.kpi-grid + details.mc-fold{
  display:block;
}
.svc-tbl details.mc-fold > summary,
.cmp-tbl details.mc-fold > summary{
  border-radius:0;border:0;border-top:1px solid var(--border-light);
  background:var(--warm);margin-top:0;
}

/* For KPI grid: the details lives below; on mobile we hide the second-row grid cells via a wrapper class */
.kpi-mc-hidden{display:contents}
@media (max-width: 768px){
  /* Show only first 3 KPI cells; rest hidden via details below */
  .kpi-grid.kpi-mc > .kpi.is-extra{display:none}
  .kpi-grid.kpi-mc{border-radius:12px 12px 0 0;border-bottom:0}
  details.kpi-mc-fold[open] .kpi-grid-extra{
    display:grid;grid-template-columns:1fr 1fr 1fr;
    gap:1px;background:var(--border);
    border:1px solid var(--border);border-top:0;
    border-radius:0 0 12px 12px;overflow:hidden;
  }
}
@media (min-width: 769px){
  /* PC: render all 6 in one grid via the main .kpi-grid (extras visible) */
  details.kpi-mc-fold .kpi-grid-extra{display:none} /* extras already in main grid on PC */
}

/* Service-table & cmp-tbl rows inside a <details> body still need to render as table-like rows */
.svc-tbl details.mc-fold > .mc-body,
.cmp-tbl details.mc-fold > .mc-body{
  display:block;
}

/* ───── Early / mid CTA variant (smaller, in-flow accent) ───── */
.cta-soft.is-early{
  margin-top:12px;
  background:var(--accent);color:#fff;
  border-color:var(--accent);
  box-shadow:0 6px 16px -10px var(--accent-soft);
}
.cta-soft.is-early .icon{
  background:rgba(255,255,255,0.15);
  border-color:rgba(255,255,255,0.3);
  color:#fff;
}
.cta-soft.is-early .ttl{color:#fff}
.cta-soft.is-early .sub{color:rgba(255,255,255,0.85)}
.cta-soft.is-early .arrow{color:#fff}
.cta-soft.is-early:hover{
  background:var(--accent);
  box-shadow:0 10px 22px -10px var(--accent-soft);
}

/* ───── 求人サイトで確認 訴求ボックス ───── */
.confirm-box{
  background:var(--card);border:1px solid var(--coral-border);
  border-radius:12px;padding:14px 15px;
  display:flex;gap:11px;align-items:flex-start;
}
.confirm-box .cb-ic{
  flex-shrink:0;width:30px;height:30px;border-radius:8px;
  background:var(--coral-pale);color:var(--coral);
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--coral-border);
}
.confirm-box .cb-h{
  font-size:13px;font-weight:800;color:var(--ink);
  font-family:var(--f-display);letter-spacing:-0.01em;line-height:1.35;margin-bottom:4px;
}
.confirm-box .cb-d{font-size:11.5px;color:var(--sub);line-height:1.7;text-wrap:pretty}
.confirm-box .cb-list{
  display:flex;flex-wrap:wrap;gap:5px;margin-top:7px;
}
.confirm-box .cb-chip{
  font-size:10px;font-weight:700;color:var(--coral);
  background:var(--coral-pale);border:1px solid var(--coral-border);
  border-radius:5px;padding:3px 7px;font-family:var(--f-mono);letter-spacing:0.02em;
}

/* ───── Reduced motion ───── */
@media (prefers-reduced-motion: reduce){
  *{animation:none !important;transition:none !important}
}


/* === Population Dynamics (人口動態セクション) === */
.pd-section .section-head{margin-bottom:18px}
.pd-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:18px 0 22px}
.pd-kpi{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px}
.pd-kpi-label{font-size:12px;color:#64748b;font-weight:600;margin-bottom:6px}
.pd-kpi-value{font-size:22px;font-weight:800;color:#0f172a;line-height:1.1}
.pd-kpi-sub{font-size:11.5px;color:#64748b;margin-top:6px}
.pd-chart-wrap{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin:8px 0 22px}
.pd-chart-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px}
.pd-chart-ttl{font-size:13px;font-weight:700;color:#334155;margin-bottom:10px}
.pd-chart{display:block}
.pd-empty{font-size:13px;color:#94a3b8;padding:24px 8px;text-align:center}
.pd-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:#475569}
.pd-lg{display:inline-flex;align-items:center;gap:6px}
.pd-sw{width:14px;height:14px;border-radius:3px;display:inline-block}
.pd-note{font-size:11px;color:#94a3b8;margin-top:10px;line-height:1.5}
.pd-prose{background:#f8fafc;border-left:4px solid #0d9488;border-radius:8px;padding:16px 18px;margin:8px 0 16px}
.pd-prose p{margin:0 0 10px;font-size:14.5px;line-height:1.85;color:#334155}
.pd-prose p:last-child{margin-bottom:0}
.pd-src{font-size:11.5px;color:#94a3b8;line-height:1.6}
@media(max-width:768px){.pd-chart-wrap{grid-template-columns:1fr}}
