/* 会社設立の流れ路線図（S-28）nagare-rosenzu
   白地＋墨＋路線色6色。コントラスト比は PROGRESS.md の検証ログを参照。
   グリッドは auto-fit/minmax のみ。固定列数は書かない（ルール9） */
:root{
  --paper:#ffffff; --ink:#222222; --mute:#555555; --rule:#d6d6d2; --pale:#f4f4f1; --board:#111111; --led:#ffb000;
  --ln-k:#ff9f0a; --ln-d:#2440ff; --ln-g:#28d100; --ln-s:#f314ff; --ln-p:#14c4ff; --ln-c:#c6bd10;
  --f-sign:"BIZ UDPGothic","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
  --f-roma:"Barlow Semi Condensed","DIN Alternate","Helvetica Neue",Arial,sans-serif;
  --f-body:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;
  --wrap:1240px; --gut:16px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:12px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.85;overflow-wrap:anywhere;padding-bottom:132px}
img{max-width:100%;height:auto;display:block}
a{color:var(--ln-d)} a:hover{text-decoration-thickness:2px}
h1,h2,h3,h4{font-family:var(--f-sign);line-height:1.4;font-weight:700;margin:0}
[lang="en"]{font-family:var(--f-roma)}
.ngr-vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ngr-skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:8px 12px;z-index:100}
.ngr-skip:focus{left:8px}
.ngr-main{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}

/* ---------- ヘッダー：ロゴ＋路線ボタン ---------- */
.ngr-head{border-bottom:6px solid var(--ink);background:#fff}
.ngr-head-in{max-width:var(--wrap);margin:0 auto;padding:10px var(--gut);display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center;justify-content:space-between}
.ngr-brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--ink);min-width:0}
.ngr-brand img{width:44px;height:44px;border-radius:8px;flex:none}
.ngr-brand-name{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.ngr-brand-name b{font-family:var(--f-sign);font-size:20px}
.ngr-brand-name small{font-family:var(--f-roma);font-size:12px;letter-spacing:.06em;color:var(--mute)}
.ngr-search{display:flex;border:2px solid var(--ink);border-radius:999px;overflow:hidden;max-width:100%}
.ngr-search input{border:0;padding:6px 12px;font:inherit;font-size:14px;width:180px;min-width:0}
.ngr-search button{border:0;background:var(--ink);color:#fff;font:inherit;font-size:13px;padding:0 14px;cursor:pointer}
.ngr-routenav{background:var(--pale);border-top:1px solid var(--rule)}
.ngr-routenav ul{list-style:none;margin:0 auto;padding:8px var(--gut);max-width:var(--wrap);display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin}
.ngr-routenav a{display:flex;align-items:center;gap:6px;white-space:nowrap;text-decoration:none;color:var(--lt);background:var(--ln);border-radius:999px;padding:4px 14px 4px 4px;font-size:14px;font-weight:700}
.ngr-routenav a b{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#fff;color:var(--ink);font-family:var(--f-roma);font-size:15px}
.ngr-routenav a:hover{outline:3px solid var(--ink);outline-offset:1px}

/* パンくず */
.ngr-crumb{max-width:var(--wrap);margin:0 auto;padding:8px var(--gut);font-size:13px}
.ngr-crumb ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px}
.ngr-crumb li+li::before{content:"▶";font-size:9px;margin:0 6px;color:var(--mute);vertical-align:2px}
.ngr-crumb a{color:var(--ink)}

/* ---------- トップ：2本の導線（番線） ---------- */
.ngr-gate{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:16px 0}
.ngr-gate a{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;text-decoration:none;color:var(--ink);border:3px solid var(--ink);border-left:16px solid var(--ln);border-radius:8px;padding:10px 14px;background:#fff}
.ngr-gate a:hover{background:var(--pale)}
.ngr-gate-plat{grid-row:1/3;font-family:var(--f-sign);background:var(--ink);color:#fff;border-radius:6px;padding:6px 8px;font-size:14px;line-height:1.2;text-align:center;writing-mode:horizontal-tb}
.ngr-gate strong{font-family:var(--f-sign);font-size:clamp(16px,2.4vw,20px);line-height:1.35}
.ngr-gate small{font-size:13px;color:var(--mute)}

/* ---------- ヒーロー ---------- */
.ngr-hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:20px;align-items:center;margin:8px 0 28px}
.ngr-hero-kicker{margin:0;font-weight:700;letter-spacing:.14em;font-size:13px;color:var(--mute)}
.ngr-hero h1 span{display:block;font-size:clamp(28px,3.7vw,44px);letter-spacing:.02em;word-break:keep-all;overflow-wrap:anywhere}
.ngr-hero h1 small{display:block;font-size:clamp(15px,2vw,19px);margin-top:6px;padding-top:8px;border-top:6px solid var(--ink)}
.ngr-hero-lead{margin:14px 0 0}
.ngr-hero-fig{margin:0}
.ngr-hero-fig img{border-radius:6px}
@media (min-width:980px){.ngr-hero{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}

/* ---------- 全幅の路線図 ---------- */
.ngr-map{margin:0 calc(50% - 50vw);padding:28px max(var(--gut),calc(50vw - 50% + var(--gut)));background:#fff;border-top:6px solid var(--ink);border-bottom:6px solid var(--ink)}
.ngr-map-head{max-width:var(--wrap);margin:0 auto 12px;display:flex;flex-wrap:wrap;gap:6px 24px;align-items:baseline}
.ngr-map-head h2{font-size:clamp(22px,3vw,30px)}
.ngr-map-head h2 span,.ngr-sec-h span{display:block;font-size:13px;letter-spacing:.16em;color:var(--mute)}
.ngr-map-head p{margin:0;font-size:14px;color:var(--mute)}
.ngr-map picture img{width:100%;max-width:1600px;margin:0 auto}
.ngr-map-index{list-style:none;margin:16px auto 0;padding:0;display:flex;flex-wrap:wrap;gap:6px;max-width:var(--wrap)}
.ngr-map-index a{display:inline-flex;gap:6px;align-items:center;text-decoration:none;color:var(--ink);border:2px solid var(--ink);border-radius:999px;padding:2px 12px 2px 3px;font-size:14px;font-weight:700}
.ngr-map-index b{background:var(--ink);color:#fff;border-radius:999px;padding:0 8px;font-family:var(--f-roma)}
.ngr-map-index a:hover{background:var(--pale)}

/* ---------- 駅名標（見出し） ---------- */
.ngr-ekimei{border:3px solid var(--ink);border-radius:8px;background:#fff;overflow:hidden;margin:0 0 14px}
.ngr-ekimei-name{display:flex;flex-direction:column;align-items:center;text-align:center;padding:14px 12px 8px 76px;position:relative;min-height:84px}
.ngr-ekimei-no{position:absolute;left:12px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:52px;height:52px;border:6px solid var(--ln);border-radius:10px;font-family:var(--f-roma);font-size:19px;line-height:1;background:#fff;color:var(--ink)}
.ngr-ekimei-jp{font-size:clamp(21px,3.4vw,32px);letter-spacing:.06em}
.ngr-ekimei-roma{font-family:var(--f-roma);font-weight:600;font-size:15px;letter-spacing:.1em;color:var(--mute)}
.ngr-ekimei-bar{display:flex;justify-content:space-between;gap:8px;background:var(--ln);color:var(--lt,var(--ink));font-size:13px;font-weight:700;padding:5px 12px}
.ngr-ekimei-bar a,.ngr-ekimei-bar span{color:inherit;text-decoration:none}
.ngr-ekimei-bar a span{font-family:var(--f-roma);margin:0 4px}
.ngr-ekimei-prev::before{content:"◀ "} .ngr-ekimei-next::after{content:" ▶"}
.ngr-ekimei-bar .is-end::before,.ngr-ekimei-bar .is-end::after{content:""}

/* ---------- 駅ごとのセクション ---------- */
.ngr-stations{display:grid;gap:30px;margin:36px 0}
.ngr-st{max-width:980px;width:100%}
.ngr-st.is-r{justify-self:end}
.ngr-st-body{display:grid;grid-template-columns:minmax(0,120px) minmax(0,1fr);gap:16px;align-items:start}
.ngr-st.is-r .ngr-st-body{grid-template-columns:minmax(0,1fr) minmax(0,120px)}
.ngr-st.is-r .ngr-st-icon{order:2}
.ngr-st-icon{width:120px;height:120px}
.ngr-st-text p{margin:0 0 6px}
.ngr-chip-work,.ngr-chip-wait{display:inline-block;font-size:12px;font-weight:700;border-radius:4px;padding:0 8px;margin-right:8px;vertical-align:1px}
.ngr-chip-work{border:2px solid var(--ink);border-radius:999px}
.ngr-chip-wait{background:var(--board);color:var(--led)}
.ngr-st-note{color:var(--mute);font-size:14px}
.ngr-st-lines{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}
.ngr-dot{display:inline-block;width:18px;height:18px;border:4px solid var(--ln);background:#fff}
.ngr-dot-circle{border-radius:50%} .ngr-dot-diamond{transform:rotate(45deg) scale(.85)} .ngr-dot-triangle{border:0;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:18px solid var(--ln)}
.ngr-dot-hexagon{border-radius:30%}
.ngr-st-pass{color:var(--mute);margin-left:6px}
.ngr-st-cats{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.ngr-st-cats a{display:inline-block;font-size:13px;text-decoration:none;color:var(--ink);background:var(--pale);border-left:5px solid var(--ink);padding:2px 10px}
.ngr-st-seg{margin:16px 0 0;display:flex;gap:10px;align-items:center;font-weight:700;font-size:14px}
.ngr-st-seg span{font-family:var(--f-roma);color:var(--mute)}
.ngr-st-seg::before{content:"";width:4px;height:34px;background:repeating-linear-gradient(var(--ink) 0 6px,transparent 6px 10px)}
.ngr-st-seg-wait{color:var(--led);background:var(--board);padding:4px 12px;border-radius:6px;width:max-content;max-width:100%}
.ngr-st-seg-wait span{color:#cfcfcf}
.ngr-st-seg-wait::before{display:none}

/* ---------- 共通の見出し ---------- */
.ngr-sec-h{font-size:clamp(21px,2.8vw,28px);margin:48px 0 14px;padding-left:16px;border-left:10px solid var(--ink)}
.ngr-sec-lead{margin:0 0 16px}
.ngr-words{display:flex;flex-wrap:wrap;gap:4px 14px;margin:18px 0;font-size:14px;line-height:1.6;border-top:2px dotted var(--rule);padding-top:12px}
.ngr-words span{font-weight:700}
.ngr-cards>.ngr-words{grid-column:1/-1}
.ngr-empty{padding:20px;background:var(--pale);border-radius:6px}
.ngr-btn{display:inline-block;background:var(--ink);color:#fff;text-decoration:none;padding:10px 22px;border-radius:999px;font-weight:700}

/* ---------- 路線カード（5変種） ---------- */
.ngr-routes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:18px}
.ngr-rc{border:3px solid var(--ink);border-radius:10px;overflow:hidden;background:#fff}
.ngr-rc h3{font-size:19px}
.ngr-rc p{margin:0;font-size:14px}
.ngr-rc-a a{display:block;color:var(--ink);text-decoration:none}
.ngr-rc-a figure{margin:0}
.ngr-rc-a h3{padding:10px 14px 0} .ngr-rc-a h3 b{font-family:var(--f-roma);background:var(--ln);color:var(--lt);padding:0 8px;border-radius:4px;margin-right:8px}
.ngr-rc-a p{padding:4px 14px 14px}
.ngr-rc-b header{display:flex;gap:10px;align-items:center;background:var(--ln);color:var(--lt);padding:8px 12px}
.ngr-rc-b header span{font-family:var(--f-roma);font-size:26px;font-weight:700}
.ngr-rc-b header a{color:inherit}
.ngr-rc-b dl{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:0;padding:10px 14px;font-size:14px}
.ngr-rc-b dt{font-weight:700}.ngr-rc-b dd{margin:0}
.ngr-rc-c{padding:14px;border-top:14px solid var(--ln)}
.ngr-rc-c h3 small{display:block;font-family:var(--f-roma);font-size:14px;color:var(--mute)}
.ngr-rc-c img{margin:10px 0}
.ngr-rc-pass{font-weight:700}
.ngr-rc-go{display:inline-block;margin-top:10px;font-weight:700}
.ngr-rc-d>a{display:flex;gap:10px;align-items:center;padding:12px;text-decoration:none;color:var(--ink);border-bottom:3px solid var(--ink)}
.ngr-rc-badge{display:grid;place-items:center;width:40px;height:40px;background:var(--ln);color:var(--lt);font-family:var(--f-roma);font-size:24px;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.ngr-rc-d strong{font-family:var(--f-sign);font-size:19px}
.ngr-rc-d ul{margin:0;padding:8px 14px 0 30px;font-size:14px}
.ngr-rc-d figure{margin:0;padding:10px 14px 14px} .ngr-rc-d figcaption{font-size:14px;margin-top:6px}
.ngr-rc-e{border-style:dashed;border-color:var(--ln)}
.ngr-rc-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:10px;padding:14px}
.ngr-rc-e h3 a{color:var(--ink)}
.ngr-rc-e .ngr-rc-pass b{font-family:var(--f-roma);font-size:28px}
@media (min-width:900px){.ngr-rc-e{grid-column:span 2}}

/* ---------- カテゴリータイル（12変種） ---------- */
.ngr-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:14px}
.ngr-t{border:2px solid var(--ink);border-radius:8px;padding:12px 14px;background:#fff;min-width:0}
.ngr-t h3{font-size:17px} .ngr-t h3 a,.ngr-t a{color:var(--ink)}
.ngr-t p{margin:6px 0 0;font-size:13px;line-height:1.7}
.ngr-t .ngr-ico{color:var(--ink)}
.ngr-t0 a{display:block;text-decoration:none} .ngr-t0 .ngr-ico{margin-bottom:6px}
.ngr-t1{background:var(--board);color:#fff;border-color:var(--board)} .ngr-t1 h3 a{color:#fff} .ngr-t1 .ngr-t-no{font-family:var(--f-roma);color:var(--led);font-size:22px} .ngr-t1 p{color:var(--led)}
.ngr-t2{display:flex;gap:12px;align-items:center} .ngr-t2 dl{display:flex;gap:6px;margin:4px 0 0;font-size:13px} .ngr-t2 dt{font-weight:700} .ngr-t2 dd{margin:0;font-family:var(--f-roma)}
.ngr-t3{border-left:12px solid var(--ln-k)} .ngr-t3 ul{display:flex;gap:10px;margin:6px 0 0;padding:0;list-style:none;font-size:13px;font-weight:700}
.ngr-t4 a{display:flex;flex-direction:column;text-decoration:none} .ngr-t4 b{font-family:var(--f-roma);font-size:30px;line-height:1.1;color:var(--ink)} .ngr-t4 strong{font-family:var(--f-sign);font-size:17px}
.ngr-t4{border-width:0 0 6px;border-color:var(--ln-p);border-radius:0;background:var(--pale)}
.ngr-t5 header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px} .ngr-t5 header span{font-family:var(--f-roma);font-size:15px} .ngr-t5 footer{font-size:13px;margin-top:6px;color:var(--mute)}
.ngr-t6 figure{margin:0 0 6px;display:flex;align-items:center;gap:8px} .ngr-t6 figcaption{font-family:var(--f-roma);font-weight:700;border:2px solid var(--ink);border-radius:999px;padding:0 10px}
.ngr-t7{display:grid;place-items:center;text-align:center;border:5px double var(--ink);min-height:96px} .ngr-t7 h3{font-size:18px}
.ngr-t8{padding:0;overflow:hidden} .ngr-t8 .ngr-t-band{display:flex;justify-content:space-between;background:var(--ln-c);color:var(--ink);font-family:var(--f-roma);font-weight:700;padding:2px 12px} .ngr-t8 .ngr-t-in{display:flex;gap:10px;align-items:center;padding:10px 12px}
.ngr-t9{border-radius:36px 10px 10px 36px;padding:0;border-width:3px} .ngr-t9 a{display:flex;flex-direction:column;padding:12px 18px 12px 26px;text-decoration:none} .ngr-t9 strong{font-family:var(--f-sign);font-size:17px} .ngr-t9 small{font-size:12px;color:var(--mute);line-height:1.6} .ngr-t9 em{font-style:normal;font-weight:700;font-size:13px}
.ngr-t10{position:relative;padding-right:60px;border-color:var(--ln-s);border-width:3px} .ngr-t10 ol{margin:4px 0 0;padding-left:20px;font-family:var(--f-roma);font-size:14px} .ngr-t10 .ngr-ico{position:absolute;right:10px;top:12px}
.ngr-t11{padding:0;border:0} .ngr-t11 table{width:100%;border-collapse:collapse;font-size:14px} .ngr-t11 th{background:var(--ink);color:#fff;font-family:var(--f-roma);width:64px;padding:6px} .ngr-t11 td{border:2px solid var(--ink);padding:6px 10px} .ngr-t11 td a{font-weight:700}
@media (min-width:760px){.ngr-t0{grid-row:span 2}.ngr-t3{grid-column:span 2}}

/* ---------- 記事カード（22変種） ---------- */
.ngr-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:18px;margin:10px 0}
.ngr-k{min-width:0;background:#fff}
.ngr-k h3{font-size:17px;line-height:1.5} .ngr-k h3 a{color:var(--ink);text-decoration:none} .ngr-k h3 a:hover{text-decoration:underline}
.ngr-k p{margin:6px 0 0;font-size:14px;line-height:1.75}
.ngr-k img{border-radius:4px;aspect-ratio:16/9;object-fit:cover;width:100%}
.ngr-k-cat{display:inline-block;font-size:12px;font-weight:700;border-bottom:3px solid var(--ln-k)}
.ngr-k-badge{display:inline-block;font-size:12px;font-weight:700;background:var(--board);color:var(--led);padding:0 8px;border-radius:3px}
.ngr-k0 a{display:grid;gap:8px;color:var(--ink);text-decoration:none;border:2px solid var(--ink);border-radius:8px;padding:10px} .ngr-k0 figure{margin:0} .ngr-k0 footer{display:flex;justify-content:space-between;font-size:12px;font-family:var(--f-roma)}
.ngr-k1{border-top:8px solid var(--ln-d);padding-top:10px} .ngr-k1 header{margin-bottom:8px} .ngr-k1 .ngr-k-sec{font-family:var(--f-roma);font-weight:700;font-size:14px} .ngr-k1 ul{display:flex;gap:12px;list-style:none;padding:0;margin:6px 0 0;font-size:12px}
.ngr-k2 .ngr-k-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:12px;align-items:center} .ngr-k2 dl{display:grid;grid-template-columns:auto 1fr;gap:0 10px;font-size:13px;margin:8px 0 0} .ngr-k2 dt{font-weight:700} .ngr-k2 dd{margin:0}
.ngr-k3{background:var(--pale);padding:16px;border-radius:8px} .ngr-k3 time{display:block;font-size:12px;margin-top:8px;font-family:var(--f-roma)}
.ngr-k4 a{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--ink);border:3px solid var(--ink);border-radius:999px;padding:12px 22px} .ngr-k4 .ngr-k-no{font-size:12px;font-weight:700;color:var(--mute)} .ngr-k4 strong{font-family:var(--f-sign);font-size:16px;line-height:1.45} .ngr-k4 em{font-style:normal;font-size:12px}
.ngr-k5 figure{margin:0 0 8px;position:relative} .ngr-k5 figcaption{position:absolute;left:8px;bottom:8px;background:var(--ink);color:#fff;font-family:var(--f-roma);font-size:13px;padding:0 8px;border-radius:3px} .ngr-k5 .ngr-k-meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;margin-top:6px}
.ngr-k6{border-left:6px solid var(--ln-g);padding-left:12px} .ngr-k6 .ngr-k-time{display:flex;gap:10px;font-size:12px;font-family:var(--f-roma);margin-bottom:4px} .ngr-k6 img{margin-top:8px}
.ngr-k7{border:2px dashed var(--ink);border-radius:8px;padding:14px} .ngr-k7 .ngr-k-steps{margin:8px 0 0;padding-left:22px;font-size:13px}
.ngr-k8{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:12px;align-items:center} .ngr-k8 section p{font-size:12px}
.ngr-k9 blockquote{margin:0 0 8px;padding:12px 14px;background:var(--board);color:#eee;border-radius:8px 8px 8px 0;font-size:13px} .ngr-k9 blockquote p{margin:0;font-size:13px} .ngr-k9 footer{font-size:12px;margin-top:4px;color:var(--mute)}
.ngr-k10 a{display:block;text-decoration:none;color:var(--ink)} .ngr-k10 figure{margin:0 0 8px;position:relative} .ngr-k10 figcaption{position:absolute;top:8px;right:8px} .ngr-k10 figcaption b{background:var(--led);color:var(--ink);font-family:var(--f-roma);padding:0 8px;border-radius:3px} .ngr-k10 footer{font-size:12px;font-family:var(--f-roma);margin-top:6px}
.ngr-k11 .ngr-k-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px;border-bottom:3px solid var(--ink);padding-bottom:12px} .ngr-k11 ul{display:flex;gap:10px;list-style:none;padding:0;margin:6px 0 0;font-size:12px}
.ngr-k12{border:3px solid var(--ink);border-radius:8px;overflow:hidden} .ngr-k12 header{display:flex;gap:8px;background:var(--ink);color:#fff;padding:4px 12px;font-size:13px} .ngr-k12 header span{font-family:var(--f-roma)} .ngr-k12 h3,.ngr-k12 p{padding:0 12px} .ngr-k12 h3{padding-top:10px} .ngr-k12 p{padding-bottom:12px}
.ngr-k13 a{display:block;position:relative;color:#fff;text-decoration:none;border-radius:6px;overflow:hidden} .ngr-k13 img{border-radius:0} .ngr-k13 .ngr-k-over{position:absolute;inset:auto 0 0 0;background:rgba(17,17,17,.88);padding:10px 12px;display:flex;flex-direction:column} .ngr-k13 strong{font-family:var(--f-sign);font-size:15px;line-height:1.45} .ngr-k13 small{color:var(--led)}
.ngr-k14{border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);padding:12px 0} .ngr-k14 dl{display:grid;grid-template-columns:auto 1fr;gap:0 12px;font-size:13px;margin:8px 0} .ngr-k14 dt{font-weight:700} .ngr-k14 dd{margin:0}
.ngr-k15{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px} .ngr-k15 .ngr-k-side{display:flex;flex-direction:column;gap:6px;font-size:12px;font-family:var(--f-roma);border-right:3px solid var(--ln-s);padding-right:10px} .ngr-k15 img{margin-top:8px}
.ngr-k16 a{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px;text-decoration:none;color:var(--ink);background:var(--pale);border-radius:10px;padding:12px}
.ngr-k17{border:2px solid var(--ink);border-radius:8px;padding:12px} .ngr-k17 .ngr-k-cat a{color:var(--ink)} .ngr-k17 .ngr-k-tb{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px} .ngr-k17 .ngr-k-tb th{text-align:left;background:var(--pale);padding:4px 8px;width:7em} .ngr-k17 .ngr-k-tb td{padding:4px 8px;border-bottom:1px solid var(--rule)}
.ngr-k18{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:12px;border-bottom:2px dotted var(--ink);padding-bottom:12px} .ngr-k18 figure{margin:0} .ngr-k18 time{display:block;font-size:12px;font-family:var(--f-roma);margin-top:4px}
.ngr-k19{border-left:10px solid var(--ln-c);padding:10px 14px;background:#fff;box-shadow:0 0 0 2px var(--ink) inset} .ngr-k19 .ngr-k-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px} .ngr-k19 .ngr-k-chips span{font-size:12px;border:1.5px solid var(--ink);border-radius:999px;padding:0 10px}
.ngr-k20>a{display:block;font-family:var(--f-sign);font-size:17px;color:var(--ink);text-decoration:none;background:var(--led);padding:8px 12px;border-radius:6px 6px 0 0} .ngr-k20 figure{margin:0} .ngr-k20 img{border-radius:0} .ngr-k20 footer{display:flex;justify-content:space-between;font-size:12px;margin-top:6px}
.ngr-k21 details{border:3px solid var(--ink);border-radius:8px;padding:10px 14px} .ngr-k21 summary{cursor:pointer;list-style:none} .ngr-k21 summary::-webkit-details-marker{display:none} .ngr-k21 summary h3{display:inline;font-size:16px} .ngr-k21 summary::after{content:"＋ 概要";display:block;font-size:12px;color:var(--mute)}
@media (min-width:900px){.ngr-cards-top .ngr-k0{grid-column:span 2}.ngr-cards-top .ngr-k9{grid-column:span 2}}
@media (max-width:520px){.ngr-k8,.ngr-k18,.ngr-k15{grid-template-columns:minmax(0,1fr)}.ngr-k15 .ngr-k-side{flex-direction:row;border-right:0;border-bottom:3px solid var(--ln-s);padding:0 0 6px}}

/* ---------- 紹介サイト（12変種） ---------- */
.ngr-sites{margin:44px 0}
.ngr-sites-note{font-size:13px;color:var(--mute);margin:0 0 14px}
.ngr-sitegrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:12px}
.ngr-s{min-width:0;font-size:14px;line-height:1.65}
.ngr-s h3{font-size:15px} .ngr-s p{margin:4px 0 0}
.ngr-s0 a{display:flex;flex-direction:column;font-weight:700} .ngr-s0 a span{font-family:var(--f-roma);font-size:12px;color:var(--mute);font-weight:600} .ngr-s0{border:2px solid var(--ink);border-radius:6px;padding:10px 12px}
.ngr-s1{display:flex;gap:10px;align-items:center;background:var(--pale);padding:10px} .ngr-s-no{font-family:var(--f-roma);font-size:22px;font-weight:700}
.ngr-s2{border-top:5px solid var(--ln-g);padding-top:8px} .ngr-s-host{font-family:var(--f-roma);font-size:12px;color:var(--mute)}
.ngr-s3 dl{margin:0;border-left:4px solid var(--ink);padding-left:10px} .ngr-s3 dt{font-weight:700} .ngr-s3 dd{margin:0}
.ngr-s4{border:2px solid var(--ink);border-radius:8px;overflow:hidden} .ngr-s4 header{display:flex;justify-content:space-between;background:var(--ink);color:#fff;padding:2px 10px;font-family:var(--f-roma);font-size:12px} .ngr-s4 h3,.ngr-s4 p{padding:0 10px} .ngr-s4 h3{padding-top:6px} .ngr-s4 p{padding-bottom:10px}
.ngr-s5 a{display:block;border:2px solid var(--ink);border-radius:999px;padding:8px 16px;font-weight:700;text-decoration:none}
.ngr-s6{background:var(--board);color:#eee;border-radius:8px;padding:10px 12px} .ngr-s6 footer{display:flex;flex-direction:column;margin-top:6px} .ngr-s6 a{color:var(--led);font-weight:700} .ngr-s6 small{font-family:var(--f-roma);color:#bbb}
.ngr-s7{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center} .ngr-s7>div:first-child span{display:grid;place-items:center;width:40px;height:40px;border:4px solid var(--ln-p);border-radius:50%;font-family:var(--f-roma);font-weight:700} .ngr-s7 small{font-family:var(--f-roma);color:var(--mute)}
.ngr-s8{border-bottom:2px dotted var(--ink);padding-bottom:8px} .ngr-s8 ul{margin:4px 0 0;padding-left:18px}
.ngr-s9 blockquote{margin:0 0 6px;padding:8px 12px;border-left:5px solid var(--ln-s);background:var(--pale)} .ngr-s9>a{font-weight:700}
.ngr-s10 table{border-collapse:collapse;width:100%} .ngr-s10 th{background:var(--ln-c);font-family:var(--f-roma);width:44px;padding:4px} .ngr-s10 td{border:2px solid var(--ink);padding:4px 8px;font-weight:700}
.ngr-s11 a{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);border:2px dashed var(--ink);border-radius:8px;padding:10px 12px} .ngr-s11 b{color:var(--ln-d)} .ngr-s11 i{font-style:normal;font-family:var(--f-roma);font-size:12px;color:var(--mute)} .ngr-s11 em{font-style:normal}
.ngr-sitewords{margin:16px 0 0;padding:12px 0 0 20px;border-top:2px dotted var(--rule);font-size:14px;line-height:1.7}

/* ---------- 記事ページ ---------- */
.ngr-art{max-width:860px;margin:0 auto}
.ngr-art-head{padding:18px 0 14px;border-bottom:6px solid var(--ink);margin-bottom:22px}
.ngr-art-cat{display:inline-flex;gap:6px;align-items:center;font-weight:700;font-size:14px;color:var(--ink);text-decoration:none;border:2px solid var(--ink);border-radius:999px;padding:2px 12px 2px 6px}
.ngr-art-head h1{font-size:clamp(23px,3.6vw,34px);margin:12px 0 10px}
.ngr-art-meta{display:flex;flex-wrap:wrap;gap:4px 16px;list-style:none;margin:0;padding:0;font-size:13px;color:var(--mute)}
.ngr-art-body{font-size:17px}
.ngr-art-body p{margin:0 0 1.2em}
.ngr-art-body h3{font-size:19px;margin:28px 0 10px}
.ngr-art-body img{margin:16px auto;border-radius:4px}
.ngr-art-body figure{margin:18px 0}
.ngr-art-body figcaption{font-size:13px;color:var(--mute);text-align:center}
.ngr-art-tags{display:flex;flex-wrap:wrap;gap:6px 10px;font-size:14px;margin:20px 0}
.ngr-art-tags span{font-weight:700}
.ngr-art-tags a{color:var(--ink)}
.ngr-tbl{overflow-x:auto;margin:16px 0;-webkit-overflow-scrolling:touch;max-width:100%}
.ngr-tbl table{border-collapse:collapse;min-width:100%;font-size:14px;line-height:1.6}
.ngr-tbl th,.ngr-tbl td{border:1px solid #9a9a96;padding:8px 10px;vertical-align:top;text-align:left}
.ngr-tbl thead th{background:var(--ink);color:#fff;white-space:nowrap}
.ngr-tbl tbody th{background:var(--pale)}
.ngr-artroute{margin:30px 0;border:3px solid var(--ink);border-radius:10px;overflow:hidden}
.ngr-artroute-h{margin:0;padding:8px 14px;background:var(--ink);color:#fff;font-weight:700}
.ngr-artroute-h span{display:block;font-size:12px;letter-spacing:.14em;color:var(--led)}
.ngr-artroute-h a{color:#fff}
.ngr-artroute-pn{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.ngr-artroute-pn>*{padding:12px 14px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column}
.ngr-artroute-pn small{font-weight:700;color:var(--mute)}
.ngr-artroute-pn .is-next{text-align:right;border-left:2px solid var(--rule)}
.ngr-artroute-pn .is-none{color:var(--mute);justify-content:center}

/* カテゴリー・タグ・固定・検索 */
.ngr-term-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start;padding:18px 0;border-bottom:6px solid var(--ink);margin-bottom:20px}
.ngr-term-head-tag{display:block}
.ngr-term-ico{width:84px;height:84px;display:grid;place-items:center;border:4px solid var(--ink);border-radius:18px}
.ngr-term-kicker{margin:0;font-size:13px;font-weight:700;color:var(--mute)}
.ngr-term-kicker span{font-family:var(--f-roma);letter-spacing:.12em;margin-right:8px;color:var(--ink)}
.ngr-term-head h1{font-size:clamp(24px,3.6vw,34px)}
.ngr-term-head h1 small{display:block;font-size:14px;font-family:var(--f-body);color:var(--mute);font-weight:400}
.ngr-term-desc{margin:8px 0 0}
.ngr-term-st{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:14px;margin:10px 0 0}
.ngr-term-st a{display:inline-flex;gap:4px;text-decoration:none;color:var(--ink);border:2px solid var(--ink);border-radius:999px;padding:0 10px 0 2px}
.ngr-term-st b{font-family:var(--f-roma);background:var(--ink);color:#fff;border-radius:999px;padding:0 6px}
.ngr-hash{color:var(--ln-d);margin-right:4px}
.ngr-term-count{font-weight:700;margin:6px 0 0}
.ngr-page{max-width:860px;margin:0 auto}
.ngr-page-head{padding:18px 0;border-bottom:6px solid var(--ink);margin-bottom:20px}
.ngr-page-head h1{font-size:clamp(24px,3.6vw,32px)}
.ngr-page-body h2{font-size:22px;margin:32px 0 10px;padding:6px 12px;border-left:10px solid var(--ink);background:var(--pale)}
.ngr-arch{padding:18px 0}
.ngr-arch-h{font-size:clamp(22px,3vw,30px);margin-bottom:12px}
.ngr-404{text-align:center;padding:40px 0}
.ngr-404-board{display:inline-flex;gap:14px;background:var(--board);color:var(--led);font-family:var(--f-sign);font-size:28px;padding:10px 24px;border-radius:8px}
.ngr-404 .ngr-map-index{justify-content:center}
.ngr-rel{margin:30px 0}

/* ---------- フッター（時刻表＋案内所） ---------- */
.ngr-foot{background:var(--board);color:#e6e6e6;margin-top:56px;padding:30px var(--gut) 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:26px}
.ngr-foot a{color:#fff}
.ngr-foot-ttl{margin:0 0 10px;font-family:var(--f-sign);font-size:18px;color:#fff}
.ngr-foot-ttl span{display:block;font-size:12px;letter-spacing:.16em;color:var(--led)}
.ngr-foot-tt{margin:0;display:grid;gap:4px}
.ngr-foot-tt>div{display:grid;grid-template-columns:minmax(0,9em) minmax(0,1fr);gap:10px;border-bottom:1px solid #333;padding:4px 0;font-size:13px}
.ngr-foot-tt dt{font-weight:700;color:var(--led)} .ngr-foot-tt dt b{font-family:var(--f-roma);margin-right:6px;color:#fff}
.ngr-foot-tt dd{margin:0;display:flex;flex-wrap:wrap;gap:2px 12px}
.ngr-foot-info ul{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px}
.ngr-foot-op{font-size:13px;line-height:1.8}
.ngr-foot-copy{font-size:12px;color:#aaa}
@media (min-width:1000px){.ngr-foot{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}

/* ---------- 固定CTA：画面下の発車標風の帯 ---------- */
.ngr-cta{position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--board);color:#fff;border-top:4px solid var(--led)}
.ngr-cta-in{max-width:var(--wrap);margin:0 auto;padding:8px var(--gut);display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr) auto;gap:6px 16px;align-items:center}
.ngr-cta-label{margin:0;display:flex;gap:8px;align-items:center;min-width:0}
.ngr-cta-kind{flex:none;border:2px solid var(--led);color:var(--led);font-weight:700;font-size:12px;border-radius:4px;padding:0 6px}
.ngr-cta-led{font-family:var(--f-sign);color:var(--led);font-size:16px;letter-spacing:.04em}
.ngr-cta-note{margin:0;font-size:10.5px;line-height:1.5;color:#cfcfcf;max-height:4.5em;overflow-y:auto}
.ngr-cta-btn{grid-column:3;grid-row:1;justify-self:end;white-space:nowrap;background:var(--led);color:var(--ink);font-weight:700;text-decoration:none;border-radius:6px;padding:9px 16px;font-size:15px}
.ngr-cta-btn::after{content:" ▶";font-size:11px}
.ngr-cta-btn:hover{background:#fff}
@media (max-width:760px){
  body{padding-bottom:150px}
  .ngr-cta-in{grid-template-columns:minmax(0,1fr) auto;gap:4px 10px}
  .ngr-cta-label{grid-column:1;grid-row:1}
  .ngr-cta-btn{grid-column:2;grid-row:1;padding:8px 12px;font-size:14px}
  .ngr-cta-note{grid-column:1/-1;grid-row:2;max-height:3em}
  .ngr-cta-led{font-size:14px}
}

/* ---------- スマホ ---------- */
@media (max-width:760px){
  .ngr-ekimei-name{padding:12px 10px 8px 64px}
  .ngr-ekimei-no{width:44px;height:44px;font-size:16px;border-width:5px;left:8px}
  .ngr-st.is-r .ngr-st-body,.ngr-st-body{grid-template-columns:minmax(0,72px) minmax(0,1fr)}
  .ngr-st.is-r .ngr-st-icon{order:0}
  .ngr-st-icon{width:72px;height:72px}
  .ngr-search input{width:130px}
  .ngr-term-head{grid-template-columns:minmax(0,1fr)}
  .ngr-term-ico{width:64px;height:64px}
  .ngr-foot-tt>div{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:360px){.ngr-brand-name b{font-size:17px}.ngr-search{width:100%}.ngr-search input{flex:1}}

/* ---------- 固定ページの部品 ---------- */
.ngr-pg-dl{display:grid;grid-template-columns:minmax(0,9em) minmax(0,1fr);gap:0;border-top:3px solid var(--ink);margin:12px 0}
.ngr-pg-dl dt,.ngr-pg-dl dd{margin:0;padding:8px 10px;border-bottom:1px solid var(--rule)}
.ngr-pg-dl dt{font-weight:700;background:var(--pale)}
.ngr-pg-links{list-style:none;margin:12px 0;padding:0;display:grid;gap:8px}
.ngr-pg-links li{display:flex;flex-wrap:wrap;gap:2px 12px;border-left:6px solid var(--ink);padding:6px 12px;background:var(--pale)}
.ngr-pg-links a{font-weight:700}
.ngr-pg-links span{font-size:14px;color:var(--mute)}
.ngr-pg-upd{margin:0 0 14px;font-size:13px;color:var(--mute)}
.ngr-pg-lead{border-left:6px solid var(--ink);padding:4px 0 4px 14px;margin:0 0 18px}
.ngr-pg-tbl{width:100%;border-collapse:collapse;margin:12px 0;font-size:15px;line-height:1.7}
.ngr-pg-tbl th,.ngr-pg-tbl td{border:1px solid #9a9a96;padding:8px 12px;vertical-align:top;text-align:left}
.ngr-pg-tbl th{width:9em;background:var(--pale);white-space:nowrap}
.ngr-pg-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px;margin:12px 0}
.ngr-pg-card{border:2px solid var(--ink);border-top:8px solid var(--ink);border-radius:8px;padding:10px 14px;background:#fff;min-width:0}
.ngr-pg-card h3{margin:0 0 4px;font-size:16px}
.ngr-pg-card p{margin:0;font-size:15px}
.ngr-pg-words{margin:14px 0}
.ngr-pg-words-h{margin:0;font-weight:700;font-family:var(--f-sign)}
.ngr-pg-words .ngr-words{margin:6px 0 0}
@media (max-width:520px){.ngr-pg-dl{grid-template-columns:minmax(0,1fr)}.ngr-pg-tbl th{width:auto;white-space:normal}}

/* ---------- 役に立ったボタン ---------- */
.ngr-helpful{margin:30px 0 0;display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;border-top:2px dotted var(--ink);padding-top:16px}
.ngr-helpful p{margin:0;font-weight:700}
.ngr-helpful button{display:inline-flex;gap:10px;align-items:center;border:3px solid var(--ink);background:#fff;border-radius:999px;padding:6px 18px 6px 8px;font:inherit;font-weight:700;cursor:pointer;color:var(--ink)}
.ngr-helpful button b{display:inline-grid;place-items:center;min-width:42px;height:30px;padding:0 8px;border-radius:999px;background:var(--board);color:var(--led);font-family:var(--f-roma);font-size:17px}
.ngr-helpful button[aria-pressed="true"]{background:var(--pale);cursor:default}
.ngr-helpful small{color:var(--mute)}

/* ---------- SNS 枠（4種とも別の構造） ---------- */
.ngr-sns{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px;margin:30px 0}
.ngr-sns-h{grid-column:1/-1;margin:0;font-family:var(--f-sign);font-size:19px}
.ngr-sns>*{min-width:0}
.ngr-sns-yt{border:3px solid var(--ink);border-radius:10px;padding:12px}
.ngr-sns-yt h3{font-size:16px}
.ngr-sns-x{background:var(--board);color:#fff;border-radius:10px;padding:12px}
.ngr-sns-x a{color:var(--led);font-weight:700}
.ngr-sns-ig{border-left:8px solid var(--ln-s);background:var(--pale);padding:10px 14px}
.ngr-sns-ig ul{margin:6px 0 0;padding-left:18px}
.ngr-sns-tt{margin:0}.ngr-sns-tt table{width:100%;border-collapse:collapse;font-size:14px}
.ngr-sns-tt th{background:var(--ink);color:#fff;padding:6px;text-align:left}
.ngr-sns-tt td{border:2px solid var(--ink);padding:6px 10px}
.ngr-sns p{margin:4px 0 0;font-size:14px}

/* ---------- 統計（8変種） ---------- */
.ngr-statsec{margin:48px 0}
.ngr-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:14px}
.ngr-st8{min-width:0;font-size:14px;line-height:1.6}
.ngr-st8 .ngr-num{font-family:var(--f-roma);font-weight:700;line-height:1;font-size:44px}
.ngr-st8 .ngr-unit{font-family:var(--f-sign);font-size:17px;margin-left:4px}
.ngr-st8 a{font-size:12px}
.ngr-st8-0{border:3px solid var(--ink);border-radius:10px;padding:14px}
.ngr-st8-1{background:var(--board);color:#fff;border-radius:10px;padding:14px} .ngr-st8-1 .ngr-num{color:var(--led)} .ngr-st8-1 a{color:#fff}
.ngr-st8-2{border-top:10px solid var(--ln-k);padding-top:10px}
.ngr-st8-3{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;background:var(--pale);padding:12px;border-radius:8px}
.ngr-st8-4{border:3px dashed var(--ln-d);border-radius:10px;padding:14px}
.ngr-st8-5 table{width:100%;border-collapse:collapse} .ngr-st8-5 th{background:var(--ink);color:#fff;text-align:left;padding:6px 10px} .ngr-st8-5 td{border:2px solid var(--ink);padding:8px 10px}
.ngr-st8-6{border-left:12px solid var(--ln-g);padding:6px 14px}
.ngr-st8-7{border-radius:999px 20px 20px 999px;border:3px solid var(--ink);padding:14px 18px 14px 28px}
@media (min-width:900px){.ngr-st8-0{grid-column:span 2}}
