/* FTRC theme styles — tokens are defined in theme.json (--wp--preset--color--*) */
:root{
  --ink:var(--wp--preset--color--ink);--ink-2:var(--wp--preset--color--ink-2);--muted:var(--wp--preset--color--muted);
  --accent:var(--wp--preset--color--accent);--accent-2:var(--wp--preset--color--accent-2);--accent-soft:var(--wp--preset--color--accent-soft);
  --paper:var(--wp--preset--color--paper);--surface:var(--wp--preset--color--surface);--surface-2:var(--wp--preset--color--surface-2);
  --line:var(--wp--preset--color--line);--line-strong:#CDC1C6;--ink-soft:#EDE8EA;--accent-line:#F0C9D8;
  --sans:var(--wp--preset--font-family--sans);--latin:var(--wp--preset--font-family--latin);
}
html{color-scheme:light;background:var(--paper)}
body{-webkit-font-smoothing:antialiased}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
.lat{font-family:var(--latin);font-variant-numeric:tabular-nums}
.wp-site-blocks{padding-left:0!important;padding-right:0!important}
.ftrc-wrap{max-width:1140px;margin:0 auto;padding:0 20px}

/* ---------- header ---------- */
.ftrc-header{position:sticky;top:0;z-index:60;background:var(--surface);border-bottom:1px solid var(--line)}
.ftrc-header .ftrc-wrap{display:flex;align-items:center;gap:20px;min-height:72px;flex-wrap:wrap}
.ftrc-brand{display:flex;flex-direction:column;gap:3px;text-decoration:none;padding:9px 0}
.ftrc-brand img{height:34px;width:auto;display:block}
.ftrc-brand .runby{font-size:10.5px;color:var(--muted);letter-spacing:.02em;line-height:1}
.ftrc-nav{display:flex;gap:2px;margin-left:auto}
.ftrc-nav a{text-decoration:none;white-space:nowrap;flex:0 0 auto;font-size:14px;padding:8px 13px;border-radius:3px;color:var(--ink-2)}
.ftrc-nav a:hover{background:var(--surface-2);color:var(--ink)}
.ftrc-nav a.is-current{color:var(--accent);font-weight:700;box-shadow:inset 0 -2px 0 var(--accent)}
.ftrc-search{display:flex;align-items:center;gap:6px;border:1px solid var(--line-strong);border-radius:3px;padding:5px 9px;background:var(--paper)}
.ftrc-search input{border:0;background:transparent;color:var(--ink);font:inherit;font-size:13px;width:118px;outline:none}
.ftrc-search button{border:0;background:transparent;padding:0;cursor:pointer;line-height:0}
.ftrc-search svg{width:13px;height:13px;stroke:var(--muted);fill:none;stroke-width:2}
.admin-bar .ftrc-header{top:32px}
@media (max-width:782px){.admin-bar .ftrc-header{top:46px}}

/* ---------- page scaffolding ---------- */
.ftrc-main{max-width:1140px;margin:0 auto;padding:34px 20px 72px}
.ftrc-eyebrow{font-family:var(--latin);font-size:11.5px;letter-spacing:.14em;color:var(--accent);text-transform:uppercase;margin:0 0 10px;font-weight:700}
.ftrc-hero{border-bottom:1px solid var(--line);padding-bottom:26px;margin-bottom:32px}
.ftrc-hero h1{font-size:26px;margin:0;text-wrap:balance}
.ftrc-hero p{color:var(--ink-2);margin:14px 0 0;font-size:14.5px}
.ftrc-stats{display:flex;flex-wrap:wrap;margin:26px 0 0;border-top:2px solid var(--ink);padding:0}
.ftrc-stat{flex:1 1 148px;padding:13px 18px 12px;border-right:1px solid var(--line);margin:0}
.ftrc-stat:last-child{border-right:0}
.ftrc-stat dt{font-size:11.5px;color:var(--muted);margin:0;letter-spacing:.04em}
.ftrc-stat dd{margin:2px 0 0;font-family:var(--latin);font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}
.ftrc-stat dd small{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--muted);margin-left:3px}
.ftrc-sec{margin-top:44px}
.ftrc-sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:2px solid var(--ink);padding-bottom:8px;margin-bottom:18px}
.ftrc-sec-head h2{font-size:17px;margin:0}
.ftrc-sec-head a{font-size:12.5px;color:var(--accent);text-decoration:none;font-weight:700}
.ftrc-sec-head a:hover{text-decoration:underline}

/* ---------- cards ---------- */
.ftrc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(292px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.ftrc-card{background:var(--surface);padding:18px;display:flex;flex-direction:column;gap:9px;text-decoration:none;transition:background .12s;color:var(--ink)}
.ftrc-card:hover{background:var(--accent-soft)}
.ftrc-card__row{display:flex;align-items:center;gap:8px}
.ftrc-no{font-family:var(--latin);font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.ftrc-chip{font-size:11px;letter-spacing:.04em;padding:2px 8px;border-radius:2px;white-space:nowrap;line-height:1.7}
.ftrc-chip.is-town{background:var(--accent);color:#fff;font-weight:700}
.ftrc-chip.is-univ{background:var(--ink);color:#F4EFF1;font-weight:700}
.ftrc-chip.is-know{background:transparent;color:var(--ink);border:1px solid var(--line-strong)}
.ftrc-card__title{font-size:16px;line-height:1.6;margin:0;font-weight:700}
.ftrc-card__sub{font-size:13px;color:var(--ink-2);line-height:1.75;margin:0}
.ftrc-card__meta{margin-top:auto;padding-top:9px;border-top:1px solid var(--line);display:flex;gap:12px;font-size:11.5px;color:var(--muted);flex-wrap:wrap;font-family:var(--latin);font-variant-numeric:tabular-nums}
.ftrc-card__meta em{font-style:normal;font-family:var(--sans)}
.ftrc-empty{padding:40px;text-align:center;color:var(--muted);border:1px dashed var(--line-strong)}
.ftrc-result-count{font-size:12.5px;color:var(--muted);margin:0 0 12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ftrc-result-count b{color:var(--accent);font-family:var(--latin)}
.ftrc-clear{font-size:12px;background:var(--accent-soft);color:var(--accent);padding:3px 10px;border-radius:20px;text-decoration:none;font-weight:700}
.ftrc-pagination{display:flex;gap:6px;justify-content:center;margin-top:24px;flex-wrap:wrap}
.ftrc-pagination .page-numbers{font-family:var(--latin);font-size:13px;padding:5px 11px;border:1px solid var(--line-strong);border-radius:3px;text-decoration:none;color:var(--ink-2)}
.ftrc-pagination .page-numbers.current{background:var(--ink);color:#F4EFF1;border-color:var(--ink)}

/* ---------- filters / map ---------- */
.ftrc-filters{background:var(--surface);border:1px solid var(--line);padding:14px 16px;margin-bottom:18px;display:flex;flex-direction:column;gap:11px}
.ftrc-frow{display:flex;gap:9px;align-items:flex-start;flex-wrap:wrap}
.ftrc-flabel{font-size:11.5px;letter-spacing:.05em;color:var(--muted);min-width:92px;padding-top:5px}
.ftrc-fchips{display:flex;gap:6px;flex-wrap:wrap}
.ftrc-fchip{font-size:12.5px;border:1px solid var(--line-strong);background:transparent;color:var(--ink-2);padding:3px 12px;border-radius:20px;text-decoration:none;line-height:1.7}
.ftrc-fchip:hover{border-color:var(--accent);color:var(--accent)}
.ftrc-fchip.is-on{background:var(--ink);border-color:var(--ink);color:#F4EFF1;font-weight:700}
.ftrc-mapwrap{display:grid;grid-template-columns:minmax(280px,520px) 1fr;gap:28px;align-items:start;background:var(--surface);border:1px solid var(--line);padding:20px 22px;margin-bottom:20px}
.ftrc-mapbox{max-width:520px}
.ftrc-mapbox svg{width:100%;height:auto;display:block}
.ftrc-pref{fill:var(--ink-soft);stroke:var(--surface);stroke-width:1.6;transition:fill .12s}
.ftrc-pref.has{cursor:pointer}
.ftrc-badge text{font-family:var(--latin);font-size:28px;font-weight:700;text-anchor:middle;dominant-baseline:central}
.ftrc-mapside h3{font-size:15px;margin:0 0 8px}
.ftrc-mapside p{font-size:13px;color:var(--ink-2);margin:0 0 14px}
.ftrc-mapside .ftrc-fchip.is-on{background:var(--accent);border-color:var(--accent)}
.ftrc-maplegend{display:flex;gap:14px;align-items:center;margin-top:16px;font-size:11.5px;color:var(--muted);flex-wrap:wrap}
.ftrc-maplegend i{display:inline-block;width:13px;height:13px;border-radius:2px;vertical-align:-2px;margin-right:5px}

/* ---------- article ---------- */
.ftrc-arthead{margin-bottom:26px}
.ftrc-kicker{display:flex;gap:10px;align-items:center;margin-bottom:12px}
.ftrc-arttitle{font-size:26px;margin:0 0 6px;letter-spacing:.005em;line-height:1.55;text-wrap:balance}
.ftrc-arttitle__sub{font-weight:700}
.ftrc-deck{font-size:15px;color:var(--ink-2);margin:14px 0 0}
.ftrc-byline{font-size:11.5px;color:var(--muted);margin-top:18px;padding-top:14px;border-top:1px solid var(--line);display:flex;gap:16px;flex-wrap:wrap}
.ftrc-status{color:var(--accent);font-weight:700}
.ftrc-article .wp-block-columns{gap:40px}
.ftrc-sidebar{position:sticky;top:96px;display:flex;flex-direction:column;gap:18px}
.ftrc-databox{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--ink);padding:15px 16px}
.ftrc-databox h4{margin:0 0 10px;font-size:11.5px;letter-spacing:.06em;color:var(--muted);font-weight:700}
.ftrc-databox dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:12.5px}
.ftrc-databox dt{color:var(--muted);white-space:nowrap}
.ftrc-databox dd{margin:0;font-variant-numeric:tabular-nums}
.ftrc-toc{border-left:2px solid var(--line);padding-left:14px}
.ftrc-toc h4{margin:0 0 8px;font-size:11.5px;letter-spacing:.06em;color:var(--muted)}
.ftrc-toc a{display:block;font-size:12.5px;color:var(--ink-2);text-decoration:none;padding:2px 0}
.ftrc-toc a:hover{color:var(--accent)}
.ftrc-body{font-size:15px;line-height:1.9}
.ftrc-body>*{margin-top:0}
.ftrc-body h2{font-size:19px;margin:38px 0 12px;padding-bottom:7px;border-bottom:2px solid var(--ink);scroll-margin-top:96px}
.ftrc-body h3{font-size:15.5px;margin:26px 0 8px;color:var(--accent)}
.ftrc-body p{margin:0 0 15px}
.ftrc-body p.is-style-ftrc-lead{font-size:15px;color:var(--ink-2)}
.ftrc-body p.is-style-ftrc-source,.ftrc-body .ftrc-source{font-size:11.5px;color:var(--muted);margin:-8px 0 18px}
.ftrc-body blockquote,.ftrc-body .wp-block-quote{margin:18px 0;padding:14px 18px;background:var(--surface);border-left:3px solid var(--accent);font-size:14px;color:var(--ink-2);font-style:normal}
.ftrc-body blockquote p:last-child{margin-bottom:0}
.ftrc-body blockquote cite{display:none}
.ftrc-body .wp-block-table,.ftrc-body figure.wp-block-table{overflow-x:auto;margin:18px 0;border:1px solid var(--line)}
.ftrc-body table{border-collapse:collapse;width:100%;font-size:13px;background:var(--surface);margin:0}
.ftrc-body th,.ftrc-body td{padding:8px 12px;text-align:left;border:0;border-bottom:1px solid var(--line);vertical-align:top}
.ftrc-body th{background:var(--surface-2);font-weight:700;font-size:12px;white-space:normal;word-break:keep-all}
.ftrc-body td{font-variant-numeric:tabular-nums}
.ftrc-body tr:last-child td{border-bottom:0}
.ftrc-body ul,.ftrc-body ol{padding-left:1.4em;margin:0 0 15px}
.ftrc-body li{margin-bottom:4px}
.ftrc-body hr{border:0;border-top:1px solid var(--line);margin:30px 0}
.wp-block-group.is-style-ftrc-commentary{background:var(--accent-soft);border:1px solid var(--accent-line);border-top:3px solid var(--accent);padding:20px 22px;margin:34px 0}
.wp-block-group.is-style-ftrc-commentary h2{border:0;margin:0 0 12px;padding:0;font-size:16px;color:var(--accent-2)}
.wp-block-group.is-style-ftrc-commentary ol{margin:0;padding-left:1.3em}
.wp-block-group.is-style-ftrc-commentary li{margin-bottom:10px}
.wp-block-group.is-style-ftrc-commentary .ftrc-sig,.wp-block-group.is-style-ftrc-commentary p:last-child{font-size:11.5px;color:var(--accent-2);margin:14px 0 0}
.wp-block-group.is-style-ftrc-refs{margin-top:38px;padding-top:20px;border-top:2px solid var(--ink)}
.wp-block-group.is-style-ftrc-refs h2{font-size:14px;border:0;padding:0;margin:0 0 10px}
.wp-block-group.is-style-ftrc-refs ul{margin:0 0 18px;padding-left:1.2em;font-size:13px;color:var(--ink-2)}
.ftrc-disclosure{background:var(--surface);border:1px solid var(--line);padding:14px 18px;margin-top:30px;font-size:13px;color:var(--ink-2)}
.ftrc-disclosure h4{margin:0 0 6px;font-size:11.5px;letter-spacing:.06em;color:var(--muted)}
.ftrc-disclosure p{margin:0}

/* ---------- news / prose ---------- */
.ftrc-newslist{border-top:2px solid var(--ink)}
.ftrc-newsitem{display:flex;gap:18px;padding:14px 4px;border-bottom:1px solid var(--line);text-decoration:none;align-items:baseline;flex-wrap:wrap;color:var(--ink)}
.ftrc-newsitem:hover{background:var(--accent-soft)}
.ftrc-newsitem time{font-family:var(--latin);font-size:12.5px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.ftrc-newsitem .t{font-size:14px}
.ftrc-prose{max-width:760px}
.ftrc-prose h2{font-size:17px;margin:32px 0 10px;padding-bottom:7px;border-bottom:2px solid var(--ink)}

/* ---------- footer ---------- */
.ftrc-footer{border-top:2px solid var(--ink);background:var(--surface);margin-top:20px}
.ftrc-footer .ftrc-wrap{padding:26px 20px 42px;display:flex;justify-content:space-between;gap:26px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.ftrc-footer img{height:38px;width:auto;display:block;margin-bottom:8px}
.ftrc-fnav{display:flex;gap:18px;flex-wrap:wrap}
.ftrc-footer a{text-decoration:none}
.ftrc-footer a:hover{color:var(--accent)}
.ftrc-noindex-warn{position:fixed;left:12px;bottom:12px;z-index:99;background:#241D20;color:#FF7BA6;font-size:11.5px;padding:6px 10px;border-radius:3px;font-family:var(--latin)}

@media (max-width:900px){.ftrc-mapwrap{grid-template-columns:1fr;gap:20px}}
@media (max-width:781px){
  .ftrc-sidebar{position:static}
  .ftrc-nav{order:3;width:100%;margin-left:0;overflow-x:auto;padding-bottom:4px}
  .ftrc-search{margin-left:auto}
  .ftrc-hero h1,.ftrc-arttitle{font-size:21px}
  .ftrc-stat{border-right:0;border-bottom:1px solid var(--line);flex-basis:130px}
}

/* ---------- operator banner ---------- */
.ftrc-operator{margin-top:48px;border:1px solid var(--line);background:var(--surface)}
.ftrc-operator a{display:flex;align-items:center;gap:20px;padding:16px 20px;text-decoration:none;color:var(--ink-2);flex-wrap:wrap}
.ftrc-operator img{height:48px;width:auto;flex:0 0 auto}
.ftrc-operator__text{display:flex;flex-direction:column;gap:2px;flex:1 1 320px;font-size:12.5px;line-height:1.6}
.ftrc-operator__label{font-size:10.5px;letter-spacing:.12em;color:var(--muted)}
.ftrc-operator__text strong{color:var(--ink);font-size:13.5px}
.ftrc-operator__desc{color:var(--muted)}
.ftrc-operator__arrow{font-family:var(--latin);font-size:11.5px;color:var(--muted);margin-left:auto;white-space:nowrap}
.ftrc-operator a:hover strong,.ftrc-operator a:hover .ftrc-operator__arrow{color:var(--accent)}

/* ---------- buttons ---------- */
.ftrc-btn{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;font-weight:700;font-size:14px;padding:11px 22px;border-radius:3px;border:1.5px solid var(--accent);line-height:1.4}
.ftrc-btn:hover{background:#B30045;border-color:#B30045}
.ftrc-btn.is-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.ftrc-btn.is-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}

/* ---------- top hero (full-bleed, light) ---------- */
.wp-site-blocks > .ftrc-herohead{margin-top:0!important}
.ftrc-herohead{position:relative;overflow:hidden;background:#fff;border-bottom:1px solid var(--line)}
.ftrc-herohead::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 90% at 88% 30%,#FBE9EF 0%,rgba(251,233,239,0) 70%),radial-gradient(40% 60% at 10% 100%,#FAF8F9 0%,rgba(250,248,249,0) 70%);pointer-events:none}
.ftrc-herohead::after{content:"";position:absolute;left:0;top:0;height:4px;width:100%;background:var(--accent)}
.ftrc-herohead__in{position:relative;max-width:1140px;margin:0 auto;padding:64px 20px 52px;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:center}
.ftrc-herohead__eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:700;margin:0 0 18px}
.ftrc-herohead__title{font-size:38px;line-height:1.4;margin:0;font-weight:700;letter-spacing:.01em;text-wrap:balance;color:var(--ink)}
.ftrc-herohead__lead{font-size:16px;line-height:1.95;margin:22px 0 0;color:var(--ink-2)}
.ftrc-herohead__actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px}
.ftrc-herohead__actions .ftrc-btn{padding:10px 14px;font-size:13.5px;white-space:nowrap}
.ftrc-btn.is-outline{background:#fff;color:var(--accent);border-color:var(--accent)}
.ftrc-btn.is-outline:hover{background:var(--accent-soft)}
.ftrc-herohead__stats{display:flex;flex-wrap:wrap;gap:0;margin-top:34px;border-top:2px solid var(--ink)}
.ftrc-herohead__stat{flex:1 1 150px;display:flex;flex-direction:column;padding:12px 16px 10px 0;border-right:1px solid var(--line);margin-right:16px}
.ftrc-herohead__stat:last-child{border-right:0;margin-right:0}
.ftrc-herohead__stat .lat{font-size:30px;font-weight:700;line-height:1.1;color:var(--ink)}
.ftrc-herohead__stat span:last-child{font-size:12px;color:var(--muted);margin-top:4px}
.ftrc-herohead__runby{margin:18px 0 0;font-size:12.5px;color:var(--muted)}
.ftrc-herohead__mapwrap{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px}
.ftrc-herohead__map{width:100%;max-width:480px;height:auto;filter:drop-shadow(0 12px 24px rgba(210,0,81,.12))}
.ftrc-herohead__legend{margin:0;font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:6px}
.ftrc-herohead__legend .sw{width:12px;height:12px;background:var(--accent);border-radius:2px;display:inline-block}

/* ---------- top intro & pillars ---------- */
.ftrc-intro{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px;align-items:start;padding:8px 0 40px;border-bottom:1px solid var(--line);margin-bottom:8px}
.ftrc-intro h2{font-size:24px;margin:0;line-height:1.5;text-wrap:balance}
.ftrc-intro p{margin:0 0 14px;color:var(--ink-2);font-size:15px;line-height:1.95}
.ftrc-intro p:last-child{margin-bottom:0}
.ftrc-pillars{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:36px}
.ftrc-pillar{background:var(--surface);padding:24px 20px 18px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:10px;transition:background .12s}
.ftrc-pillar:hover{background:var(--accent-soft)}
.ftrc-pillar .ftrc-eyebrow{margin:0}
.ftrc-pillar h3{font-size:19px;margin:0}
.ftrc-pillar p:not(.ftrc-eyebrow){margin:0;font-size:13.5px;line-height:1.85;color:var(--ink-2);flex:1}
.ftrc-pillar__foot{display:flex;align-items:baseline;gap:4px;margin-top:8px;padding-top:12px;border-top:1px solid var(--line)}
.ftrc-pillar__foot .lat{font-size:24px;font-weight:700}
.ftrc-pillar__foot small{font-size:12px;color:var(--muted)}
.ftrc-pillar__arrow{margin-left:auto;font-family:var(--latin);color:var(--accent);font-weight:700}

/* ---------- writers ---------- */
.ftrc-writers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 32px;margin-top:8px}
.ftrc-writer{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px}
.ftrc-writer__ring{width:168px;height:168px;border-radius:50%;padding:5px;background:linear-gradient(135deg,var(--accent),#FF7BA6);margin-bottom:10px}
.ftrc-writer__ring img,.ftrc-writer__placeholder{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;border:4px solid var(--paper);background:var(--surface-2)}
.ftrc-writer__name{font-size:19px;margin:0}
.ftrc-writer__name a{text-decoration:none;color:var(--ink)}
.ftrc-writer__name a:hover{color:var(--accent)}
.ftrc-writer__romaji{margin:0;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:700}
.ftrc-writer__title{margin:4px 0 0;font-size:12.5px;color:var(--muted);line-height:1.7}
.ftrc-writer__bio{margin:10px 0 0;font-size:13.5px;line-height:1.9;color:var(--ink-2);text-align:left}
.ftrc-writer__links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;margin-top:10px;font-size:12.5px}
.ftrc-writer__links a{color:var(--accent);text-decoration:none;font-weight:700}
.ftrc-writer__links a:hover{text-decoration:underline}
.ftrc-writerhead{padding-bottom:28px;border-bottom:1px solid var(--line);margin-bottom:28px}
.ftrc-writerhead .ftrc-writer{align-items:flex-start;text-align:left}
.ftrc-writerhead .ftrc-writer__links{justify-content:flex-start}
.ftrc-writerhead__back{margin:18px 0 0;font-size:12.5px}
.ftrc-writerhead__back a{text-decoration:none;color:var(--accent);font-weight:700}
@media (max-width:900px){
  .ftrc-writers{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ftrc-pillars{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ftrc-intro{grid-template-columns:1fr;gap:16px}
  .ftrc-herohead__title{font-size:30px}
  .ftrc-herohead__in{padding:44px 20px 40px;grid-template-columns:1fr;gap:28px}
  .ftrc-herohead__map{max-width:420px}
}
@media (max-width:600px){
  .ftrc-pillars{grid-template-columns:1fr}
  .ftrc-writers{grid-template-columns:1fr}
  .ftrc-herohead__title{font-size:25px}
  .ftrc-herohead__lead{font-size:14.5px}
}

/* ---------- research DB ---------- */
.ftrc-rsearch{background:var(--surface);border:1px solid var(--line);padding:16px 18px;display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.ftrc-rsearch__q{display:flex;gap:8px}
.ftrc-rsearch__q input{flex:1;border:1px solid var(--line-strong);border-radius:3px;padding:10px 12px;font:inherit;font-size:14px;background:var(--paper);color:var(--ink);min-width:0}
.ftrc-rsearch__q .ftrc-btn{padding:9px 20px}
.ftrc-rsearch__row{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;font-size:12.5px;color:var(--muted)}
.ftrc-rsearch__row select{font:inherit;font-size:13px;border:1px solid var(--line-strong);border-radius:3px;padding:5px 8px;background:var(--paper);color:var(--ink);margin-left:4px}
.ftrc-rsearch__reset{margin-left:auto;color:var(--accent);font-weight:700;text-decoration:none}
.ftrc-refs{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.ftrc-ref{padding:20px 0 18px;border-bottom:1px solid var(--line)}
.ftrc-ref__meta{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:12px;color:var(--muted)}
.ftrc-chip.is-book{background:var(--ink);color:#F4EFF1;font-weight:700}
.ftrc-chip.is-paper{background:var(--accent);color:#fff;font-weight:700}
.ftrc-chip.is-report{background:var(--accent-soft);color:var(--accent);font-weight:700;border:1px solid var(--accent-line)}
.ftrc-chip.is-thesis,.ftrc-chip.is-chapter,.ftrc-chip.is-other{background:var(--surface-2);color:var(--ink-2);font-weight:700}
.ftrc-ref__access{border:1px solid var(--line-strong);border-radius:2px;padding:0 6px;line-height:1.7;font-size:11px}
.ftrc-ref__title{font-size:17px;margin:8px 0 0;line-height:1.55}
.ftrc-ref__title a{text-decoration:none}
.ftrc-ref__title a:hover{color:var(--accent);text-decoration:underline}
.ftrc-ref__alt{margin:2px 0 0;font-size:12.5px;color:var(--muted)}
.ftrc-ref__cite{margin:6px 0 0;font-size:13px;color:var(--ink-2)}
.ftrc-ref__id{color:var(--muted);font-size:11.5px;margin-left:6px}
.ftrc-ref__summary{margin:8px 0 0;font-size:13.5px;line-height:1.85;color:var(--ink-2)}
.ftrc-ref__topics{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ftrc-ref__topics a{font-size:11.5px;text-decoration:none;color:var(--ink-2);background:var(--surface-2);border-radius:2px;padding:2px 8px}
.ftrc-ref__topics a:hover{background:var(--accent-soft);color:var(--accent)}
.ftrc-refs__note{margin:18px 0 0;font-size:12.5px;color:var(--muted);line-height:1.8}

/* ---------- resources (一次資料DB) ---------- */
.ftrc-chip.is-res{background:var(--surface-2);color:var(--ink-2);font-weight:700}
.ftrc-rchip{font-weight:700}
.ftrc-rchip.is-council{background:var(--ink);color:#F4EFF1}
.ftrc-rchip.is-mayor,.ftrc-rchip.is-president{background:var(--accent);color:#fff}
.ftrc-rchip.is-charter{background:#fff;color:var(--accent);border:1.5px solid var(--accent)}
.ftrc-rchip.is-plan{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-line)}
.ftrc-rchip.is-announce,.ftrc-rchip.is-other{background:var(--surface-2);color:var(--ink-2)}
.ftrc-rchip.is-goal{background:#1D5C99;color:#fff}
.ftrc-rchip.is-guide{background:#fff;color:#1D5C99;border:1.5px solid #1D5C99}
.ftrc-rchip.is-network{background:#E7EEF5;color:#1D5C99;border:1px solid #C3D6E6}
.ftrc-rband{margin:26px 0 14px;padding:14px 16px;background:var(--surface-2);border-left:4px solid var(--ink)}
.ftrc-rband h2{font-size:17px;margin:0}
.ftrc-rband p{margin:6px 0 0;font-size:12.5px;color:var(--ink-2);line-height:1.8}
.ftrc-rlist > .ftrc-rband:first-child{margin-top:0}
.ftrc-rsearch__years{display:flex;align-items:center;gap:6px}
.ftrc-rsearch__years select{margin-left:4px}
.ftrc-rsearch__years span{color:var(--muted)}
.ftrc-rlist{display:flex;flex-direction:column;gap:34px}
.ftrc-rgroup__h{display:flex;align-items:center;gap:10px;font-size:18px;margin:0 0 12px;padding-bottom:8px;border-bottom:2px solid var(--ink)}
.ftrc-rgroup__items{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1px;background:var(--surface-2);border:1px solid var(--line)}
.ftrc-ritem{background:var(--surface);padding:16px 18px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:7px;transition:background .12s}
.ftrc-ritem:hover{background:var(--accent-soft)}
.ftrc-ritem__meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:12px;color:var(--muted)}
.ftrc-ritem__title{font-size:15.5px;margin:0;line-height:1.55}
.ftrc-ritem__sum{margin:0;font-size:13px;line-height:1.8;color:var(--ink-2);flex:1}
.ftrc-ritem__src{margin:4px 0 0;font-size:11.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:8px}
.ftrc-crumb{margin:0 0 14px;font-size:12.5px}
.ftrc-crumb a{color:var(--accent);text-decoration:none;font-weight:700}
.ftrc-rhead{padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:26px}
.ftrc-rhead__row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.ftrc-rmeta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin:18px 0 0;border-top:1px solid var(--line)}
.ftrc-rmeta > div{display:grid;grid-template-columns:7em 1fr;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.ftrc-rmeta dt{color:var(--muted);font-weight:400;margin:0}
.ftrc-rmeta dd{margin:0;color:var(--ink)}
.ftrc-rmeta a{color:var(--accent);text-decoration:none;font-weight:700}
.ftrc-doctext{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--ink);padding:22px 26px;margin:14px 0 26px;font-size:14.5px;line-height:2;word-break:break-word}
.ftrc-doctext p{margin:0 0 .7em}
.ftrc-doctext p:last-child{margin-bottom:0}
.ftrc-source{margin-top:40px;padding:18px 22px;background:var(--surface-2);border-top:2px solid var(--ink);font-size:13px;line-height:1.85;color:var(--ink-2)}
.ftrc-source h4{margin:0 0 8px;font-size:13px;letter-spacing:.08em;color:var(--ink)}
.ftrc-source p{margin:0 0 6px}
.ftrc-source a{color:var(--accent);word-break:break-all}
.ftrc-source__fetched{font-weight:700;color:var(--ink)}
.ftrc-source__note{font-size:12px;color:var(--muted);margin-top:8px!important}
.ftrc-source--missing{border-top-color:var(--accent);color:var(--accent)}
@media (max-width:700px){.ftrc-rmeta{grid-template-columns:1fr}.ftrc-rmeta > div{grid-template-columns:6em 1fr}.ftrc-doctext{padding:16px 16px}}

/* ---------- map categories ---------- */
.ftrc-pref{stroke:#fff;stroke-width:2;stroke-linejoin:round;paint-order:stroke}
.ftrc-pref.has:hover{filter:brightness(1.12)}
.ftrc-pref.sel{stroke:#241D20;stroke-width:3;paint-order:normal}
.ftrc-maplegend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;margin:0 0 14px}
.ftrc-maplegend span{display:flex;align-items:center;gap:6px}
.ftrc-maplegend b{margin-left:2px}
.ftrc-maplegend i.is-mix{background:repeating-linear-gradient(45deg,#D20051 0 3px,#1D5C99 3px 6px)}
.ftrc-mapmore{margin-top:10px;font-size:12.5px;border-top:1px solid var(--line);padding-top:8px}
.ftrc-mapmore summary{cursor:pointer;color:var(--ink-2);display:flex;align-items:center;gap:6px}
.ftrc-mapmore summary i{display:inline-block;width:11px;height:11px;border-radius:2px}
.ftrc-mapmore ul{margin:8px 0 0;padding-left:18px;color:var(--ink-2);line-height:1.8}

/* ---------- supporter banner ---------- */
.ftrc-support{margin-top:48px;background:linear-gradient(135deg,#FBE9EF 0%,#FFFFFF 100%);border:1px solid var(--accent-line);border-left:5px solid var(--accent)}
.ftrc-support__in{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:24px;align-items:center;padding:24px 26px}
.ftrc-support__logo{height:40px;width:auto}
.ftrc-support__text h2{font-size:18px;margin:4px 0 8px;line-height:1.5}
.ftrc-support__text p{margin:0;font-size:13.5px;line-height:1.85;color:var(--ink-2)}
.ftrc-support__text .ftrc-eyebrow{margin:0}
.ftrc-support__act{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11px;color:var(--muted)}
.ftrc-support__act .ftrc-btn{white-space:nowrap}
@media (max-width:820px){.ftrc-support__in{grid-template-columns:1fr;gap:14px}.ftrc-support__logo{height:32px}.ftrc-support__act{align-items:flex-start}}

/* ---------- contact box (about page) ---------- */
.ftrc-contact{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;margin:26px 0 18px;padding:22px 24px;background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--ink)}
.ftrc-contact h3{margin:4px 0 8px;font-size:17px;color:var(--ink)}
.ftrc-body .ftrc-contact h3::before{content:none}
.ftrc-contact p{margin:0;font-size:13.5px;line-height:1.85;color:var(--ink-2)}
.ftrc-contact .ftrc-eyebrow{margin:0}
.ftrc-contact__act{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11px;color:var(--muted)}
.ftrc-contact__act .ftrc-btn{white-space:nowrap}
@media (max-width:700px){.ftrc-contact{grid-template-columns:1fr;gap:14px}.ftrc-contact__act{align-items:flex-start}}

/* ---------- 絞り込みの解除 ---------- */
.ftrc-mapnote{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 12px;padding:9px 12px;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:3px;font-size:12.5px;color:var(--ink-2)}
.ftrc-mapnote b{color:var(--accent)}
.ftrc-mapnote a{margin-left:auto;color:var(--accent);font-weight:700;text-decoration:none;white-space:nowrap}
.ftrc-mapnote a:hover{text-decoration:underline}
.ftrc-fchip[aria-current="true"]::after{content:"×";margin-left:6px;font-weight:700;opacity:.85}
.ftrc-frow--reset{margin-top:4px}
.ftrc-freset{font-size:12.5px;color:var(--accent);font-weight:700;text-decoration:none}
.ftrc-freset:hover{text-decoration:underline}

.ftrc-intro__more{margin-top:16px!important;font-size:13px}
.ftrc-intro__more a{color:var(--accent);font-weight:700;text-decoration:none}
.ftrc-intro__more a:hover{text-decoration:underline}

/* ===== ニュース一覧（/news/） ===== */
.ftrc-newsfilter{margin:0 0 6px}
.ftrc-newsgrid{display:grid;gap:0;border-top:1px solid var(--wp--preset--color--rule,#E6E0E2)}
.ftrc-newsrow{display:block;padding:18px 4px;border-bottom:1px solid var(--wp--preset--color--rule,#E6E0E2);text-decoration:none;color:inherit}
.ftrc-newsrow:hover{background:#FBE9EF33}
.ftrc-newsrow__head{display:flex;align-items:center;gap:10px;margin:0 0 4px}
.ftrc-newsrow__head time{font-size:.82rem;letter-spacing:.02em;color:#6B6165}
.ftrc-newschip{font-size:.72rem;line-height:1;padding:4px 8px;border-radius:999px;background:#FBE9EF;color:#D20051;white-space:nowrap}
.ftrc-newsrow__title{margin:0;font-size:1.06rem;line-height:1.5}
.ftrc-newsrow:hover .ftrc-newsrow__title{text-decoration:underline;text-underline-offset:3px}
.ftrc-newsrow__sub{margin:6px 0 0;font-size:.9rem;line-height:1.7;color:#4A4245}
@media(min-width:860px){
  .ftrc-newsrow{display:grid;grid-template-columns:170px 1fr;gap:0 20px;align-items:start}
  .ftrc-newsrow__head{flex-direction:column;align-items:flex-start;gap:6px;margin:2px 0 0}
  .ftrc-newsrow__title{grid-column:2}
  .ftrc-newsrow__sub{grid-column:2}
}

/* ===== 資料：国内／海外のタブ ===== */
.ftrc-rtabs{display:flex;gap:8px;margin:0 0 14px;border-bottom:2px solid var(--wp--preset--color--rule,#E6E0E2);flex-wrap:wrap}
.ftrc-rtab{display:inline-flex;align-items:baseline;gap:8px;padding:11px 18px;margin-bottom:-2px;border:2px solid transparent;border-bottom:none;border-radius:8px 8px 0 0;text-decoration:none;color:#6B6165;font-weight:700;font-size:1rem;line-height:1.2}
.ftrc-rtab b{font-size:.82rem;font-weight:700;padding:2px 8px;border-radius:999px;background:#EFEAEC;color:#6B6165}
.ftrc-rtab:hover{background:#FBE9EF55;color:#241D20}
.ftrc-rtab.is-on{color:#D20051;border-color:var(--wp--preset--color--rule,#E6E0E2);border-bottom:2px solid #FAF8F9;background:#FAF8F9}
.ftrc-rtab.is-on b{background:#FBE9EF;color:#D20051}
.ftrc-rctry{margin:0 0 12px}
.ftrc-rctry .ftrc-fchip i{font-style:normal;margin-left:6px;font-size:.78rem;opacity:.7}
@media(max-width:600px){
  .ftrc-rtab{padding:9px 12px;font-size:.92rem}
}

/* ===== 資料：大分類（一次資料／制度・基準／法令・政策） ===== */
.ftrc-rkinds{margin:0 0 12px}
.ftrc-rkinds .ftrc-fchip i{font-style:normal;margin-left:6px;font-size:.78rem;opacity:.7}
.ftrc-rkindhead{margin:26px 0 10px;font-weight:700;font-size:.95rem;letter-spacing:.04em;color:#6B6165;border-left:4px solid #D20051;padding-left:10px}
.ftrc-rchip.is-law{background:#EFE7F3;color:#5C3B7A;border-color:#D8C6E4}
.ftrc-rchip.is-govpolicy{background:#E7F0EC;color:#2F6B52;border-color:#C6DED3}
.ftrc-rchip.is-treaty{background:#EDEBE4;color:#6B5E33;border-color:#DCD7C4}

/* ===== ニュースの絞り込み・並び替え ===== */
.ftrc-herohead__note{margin:4px 0 0;font-size:.74rem;color:#8A8085;line-height:1.5}
.ftrc-newsfilter{margin:0 0 14px}
.ftrc-newsfilter .ftrc-frow{margin:0 0 8px}
.ftrc-newsfilter .ftrc-fchip i{font-style:normal;margin-left:6px;font-size:.78rem;opacity:.7}
.ftrc-newsbar{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin:14px 0 0;padding-top:12px;border-top:1px solid var(--wp--preset--color--rule,#E6E0E2)}
.ftrc-newsbar .ftrc-result-count{margin:0}
.ftrc-newssort{margin:0 0 0 auto;display:flex;gap:2px;font-size:.85rem}
.ftrc-newssort a{padding:5px 12px;border-radius:999px;text-decoration:none;color:#6B6165}
.ftrc-newssort a:hover{background:#EFEAEC}
.ftrc-newssort a.is-on{background:#241D20;color:#fff}
.ftrc-newsreset{margin:0;font-size:.85rem}
.ftrc-newsreset a{color:#D20051}
.ftrc-newstags{margin:6px 0 0;display:flex;gap:6px;flex-wrap:wrap}
.ftrc-newstag{font-size:.7rem;line-height:1;padding:4px 8px;border-radius:4px;background:#EFEAEC;color:#6B6165}
@media(min-width:860px){ .ftrc-newstags{grid-column:2} }
@media(max-width:600px){ .ftrc-newssort{margin-left:0} }
.ftrc-newsform{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin:10px 0 0}
.ftrc-newssel{font-size:.82rem;color:#6B6165;display:inline-flex;align-items:center;gap:6px}
.ftrc-newssel select{font-size:.88rem;padding:7px 10px;border:1px solid var(--wp--preset--color--rule,#E6E0E2);border-radius:6px;background:#fff;max-width:260px}
.ftrc-newsbox{padding:18px 20px}
.ftrc-newsbox .ftrc-frow{margin:0 0 8px}
.ftrc-newsbox .ftrc-rsearch__q{margin:0 0 14px}
.ftrc-newsbox form{margin:0}

/* トップのニュース一覧：日付・地域・タイトル・テーマを1行に */
.ftrc-newsitem{flex-wrap:nowrap}
.ftrc-newsitem .t{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ftrc-newsitem__tags{flex:0 0 auto;display:flex;gap:6px;white-space:nowrap}
.ftrc-newsitem__tags .ftrc-newstag{margin:0}
.ftrc-newsitem .ftrc-newschip{flex:0 0 auto}
@media (max-width:760px){
  .ftrc-newsitem{flex-wrap:wrap;gap:8px 12px}
  .ftrc-newsitem .t{flex:1 1 100%;white-space:normal;overflow:visible;text-overflow:clip;order:3}
  .ftrc-newsitem__tags{order:4;flex-wrap:wrap;white-space:normal}
}
/* トップのリサーチ抜粋 */
.ftrc-refs--compact{border-top:2px solid var(--ink)}
.ftrc-refs--compact .ftrc-ref{padding:14px 4px;border-bottom:1px solid var(--line)}
.ftrc-refs--compact .ftrc-ref__title{font-size:15px;margin:4px 0 2px}

/* 議決日が未確認の更新（期限のみ表示） */
.ftrc-databox .ftrc-undated { color: #6b6169; font-size: .92em; }

/* 長いURL等が本文の幅を超えないようにする（v0.9.5） */
.ftrc-body p, .ftrc-body li, .ftrc-body dd, .ftrc-body blockquote,
.ftrc-body td, .ftrc-body th, .ftrc-body figcaption{overflow-wrap:anywhere}
.ftrc-body a, .ftrc-prose a, .ftrc-databox a, .ftrc-refs a, .ftrc-doctext a{overflow-wrap:anywhere;word-break:break-all}
.wp-block-group.is-style-ftrc-refs li, .wp-block-group.is-style-ftrc-refs a{overflow-wrap:anywhere;word-break:break-all}
.ftrc-body .wp-block-table, .ftrc-body figure.wp-block-table{max-width:100%;overflow-x:auto}
.ftrc-body pre, .ftrc-body code{white-space:pre-wrap;overflow-wrap:anywhere}
/* 日本地図 jpmap v1（NHK型レイアウト）：区切り線・バッジの引き出し線 */
.ftrc-mapsep{fill:none;stroke:#B3A7AD;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ftrc-badge line{stroke:#241D20;stroke-width:2}
.ftrc-badge .dot{fill:#241D20}
.ftrc-herohead__note{max-width:480px;text-align:center}
