/*
 * nrt-pseo 生成ページの追加スタイル。色・書体・余白はテーマのトークン（--nrt-*）だけを使う。
 * 角丸カードの羅列・影・グラデーション装飾・絵文字は使わない。罫線と文字組みで情報を見せる。
 */
.nrt-pseo .nrt-pk__head { padding-bottom: clamp(1.5rem, 4vw, 2.5rem); }
.nrt-pseo-answer { margin-top: 1.4rem; max-width: 46em; font-family: var(--nrt-serif); font-size: clamp(1.02rem, 2.4vw, 1.18rem); line-height: 1.95; color: var(--nrt-ink); font-weight: 400; font-feature-settings: "palt"; }
.nrt-pseo-answer p + p { margin-top: .4em; }

.nrt-pseo-sec { padding-top: clamp(2rem, 5vw, 3.2rem); padding-bottom: 0; }
.nrt-pseo-sec--first { padding-top: 1rem; }
.nrt-pseo-disclosure { padding-bottom: var(--nrt-section-y); }
.nrt-pseo .nrt-hub__title { margin: 2.2rem 0 1rem; }
.nrt-pseo-sec > .nrt-hub__title:first-child { margin-top: 0; }
.nrt-pseo .nrt-index__num { font-variant-numeric: tabular-nums; }
.nrt-pseo .nrt-index__num--sm { font-size: clamp(1rem, 2.6vw, 1.25rem); }
.nrt-pseo-keys { margin-bottom: 2.4rem; }

/* 表: 運賃ボードの意匠（等幅の見出し・罫線・等幅数字）。横スクロールで 375px でも崩さない。 */
.nrt-pseo-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border-top: 2px solid var(--nrt-ink); border-bottom: 1px solid var(--nrt-hair); }
.nrt-pseo-scroll:focus-visible { outline: 2px solid var(--nrt-dep); outline-offset: 2px; }
.nrt-pseo-table { width: 100%; border-collapse: collapse; font-size: .92rem; font-variant-numeric: tabular-nums; min-width: 34rem; }
.nrt-pseo-table--air, .nrt-pseo-table--coverage { min-width: 0; }
.nrt-pseo-table th, .nrt-pseo-table td { padding: .78rem .7rem; border-bottom: 1px solid var(--nrt-hair); text-align: left; vertical-align: middle; white-space: nowrap; }
.nrt-pseo-table thead th { font-family: var(--nrt-mono, ui-monospace, monospace); font-size: .66rem; font-weight: 500; letter-spacing: .14em; color: var(--nrt-gray); text-transform: uppercase; background: transparent; }
.nrt-pseo-table tbody tr:last-child > * { border-bottom: 0; }
.nrt-pseo-table th[scope="row"] { font-weight: 400; color: var(--nrt-ink); }
.nrt-pseo-table .is-num { text-align: right; }
.nrt-pseo-table .is-fee { font-family: var(--nrt-serif); font-size: 1.06rem; color: var(--nrt-ink); }
.nrt-pseo-table .is-rank, .nrt-pseo-table .is-code { font-family: var(--nrt-mono, ui-monospace, monospace); color: var(--nrt-gray); width: 3.2em; }
.nrt-pseo-table .is-name a { color: var(--nrt-ink); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--nrt-hair); }
.nrt-pseo-table .is-name a:hover { text-decoration-color: var(--nrt-dep); }
.nrt-pseo-table tr.is-top > * { background: var(--nrt-hair-2); }
.nrt-pseo-table tr.is-top .is-rank { color: var(--nrt-dep); box-shadow: inset 3px 0 0 var(--nrt-dep); }
.nrt-pseo-table td.is-low { color: var(--nrt-dep); font-weight: 500; }
.nrt-pseo-table tr.is-diff th { box-shadow: inset 3px 0 0 var(--nrt-arr); }
@media (max-width: 760px) {
	.nrt-pseo-table th, .nrt-pseo-table td { padding: .7rem .5rem; }
	/* 順位と社名を左に固定し、横にスクロールしても何の行か分かるようにする。社名は単語の途中で折らない。 */
	.nrt-pseo-table .is-rank { position: sticky; left: 0; z-index: 2; background: var(--nrt-paper); width: 2.4rem; min-width: 2.4rem; max-width: 2.4rem; }
	.nrt-pseo-table .is-name { position: sticky; left: 0; z-index: 1; background: var(--nrt-paper); box-shadow: 1px 0 0 var(--nrt-hair); white-space: normal; word-break: keep-all; overflow-wrap: normal; line-break: strict; min-width: 9.6em; }
	.nrt-pseo-table .is-rank + .is-name { left: 2.4rem; }
	.nrt-pseo-table tr.is-top .is-name, .nrt-pseo-table tr.is-top .is-rank { background: var(--nrt-hair-2); }
}
/* 要点の数値: スマホでは 2×2 にして、表を最初の画面に近づける */
@media (max-width: 560px) {
	.nrt-pseo .nrt-pseo-keys { grid-template-columns: 1fr 1fr; }
	.nrt-pseo .nrt-pseo-keys .nrt-index__metric { padding: 1rem .6rem; border-bottom: 1px solid var(--nrt-hair); }
	.nrt-pseo .nrt-pseo-keys .nrt-index__metric:nth-child(odd) { border-right: 1px solid var(--nrt-hair); }
	.nrt-pseo .nrt-pseo-keys .nrt-index__metric:nth-last-child(-n+2) { border-bottom: 0; }
	.nrt-pseo .nrt-pseo-keys .nrt-index__num { font-size: 1.45rem; }
	.nrt-pseo .nrt-pseo-keys .nrt-index__sub { font-size: .7rem; }
	.nrt-pseo-keys { margin-bottom: 1.8rem; }
}

.nrt-pseo-note-s { margin-top: .9rem; font-size: .8rem; line-height: 1.8; color: var(--nrt-gray); }
.nrt-pseo-empty { padding: 1.4rem 0; color: var(--nrt-ink-2); }
.nrt-pseo-prose p { max-width: 42em; line-height: 2; margin: 0 0 1em; }
.nrt-pseo-prose ul { max-width: 42em; margin: 0 0 1.2em 1.2em; line-height: 1.9; list-style: disc; }

.nrt-pseo-faq h3 { font-family: var(--nrt-serif); font-weight: 400; font-size: 1.04rem; margin: 1.6rem 0 .5rem; padding-left: .9rem; border-left: 2px solid var(--nrt-arr); line-height: 1.7; }
.nrt-pseo-faq p { max-width: 42em; line-height: 1.95; color: var(--nrt-ink-2); }

.nrt-pseo-links { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--nrt-hair); }
.nrt-pseo-links li { border-bottom: 1px solid var(--nrt-hair); }
.nrt-pseo-links a { display: block; padding: .95rem .2rem; color: var(--nrt-ink); text-decoration: none; }
.nrt-pseo-links a::after { content: "→"; float: right; color: var(--nrt-gray); font-family: var(--nrt-mono, monospace); }
.nrt-pseo-links a:hover { color: var(--nrt-dep); }

.nrt-pseo-dl { margin: 0; border-top: 1px solid var(--nrt-hair); }
.nrt-pseo-dl > div { display: grid; grid-template-columns: 11em 1fr; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--nrt-hair); }
.nrt-pseo-dl dt { font-size: .82rem; color: var(--nrt-gray); letter-spacing: .04em; }
.nrt-pseo-dl dd { margin: 0; line-height: 1.9; font-size: .92rem; }
.nrt-pseo-dl details summary { cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.nrt-pseo-dl details ul { margin: .6rem 0 0 1.1rem; list-style: disc; font-size: .84rem; line-height: 1.9; }
@media (max-width: 560px) { .nrt-pseo-dl > div { grid-template-columns: 1fr; gap: .3rem; } }
.nrt-pseo-links-inline { margin-top: 1.2rem; font-size: .88rem; }

.nrt-pseo-changes { list-style: none; margin: 0; padding: 0; font-size: .9rem; }
.nrt-pseo-changes li { padding: .55rem 0; border-bottom: 1px solid var(--nrt-hair); line-height: 1.8; }
.nrt-pseo-changes time { font-family: var(--nrt-mono, monospace); font-size: .8rem; color: var(--nrt-gray); margin-right: .8em; }

.nrt-pseo-note { margin: 0 0 2rem; }
.nrt-pseo-note img { width: 100%; height: auto; display: block; margin-bottom: .8rem; }
.nrt-pseo-note figcaption { line-height: 1.9; }
.nrt-pseo-meta { display: block; font-size: .78rem; color: var(--nrt-gray); margin-top: .3rem; }

.nrt-pseo-byline { margin-top: .8rem; font-size: .78rem; color: var(--nrt-gray); letter-spacing: .02em; }
.nrt-pseo-byline a { color: var(--nrt-ink-2); }
.nrt-pseo-report { max-width: 42em; margin-top: 1rem; }
.nrt-pseo-report label { display: block; font-size: .84rem; color: var(--nrt-ink-2); margin-bottom: .3rem; }
.nrt-pseo-report textarea, .nrt-pseo-report input[type="text"] { width: 100%; padding: .6rem .7rem; border: 1px solid var(--nrt-hair); background: var(--nrt-white); font: inherit; border-radius: var(--nrt-radius); }
.nrt-pseo-report p { margin: 0 0 .9rem; }
.nrt-pseo-report small { color: var(--nrt-gray); }
.nrt-pseo-btn { padding: .65rem 1.3rem; border: 1px solid var(--nrt-ink); background: var(--nrt-ink); color: var(--nrt-white); font: inherit; font-size: .88rem; cursor: pointer; border-radius: var(--nrt-radius); }
.nrt-pseo-btn:hover, .nrt-pseo-btn:focus-visible { background: var(--nrt-dep); border-color: var(--nrt-dep); }
.nrt-pseo-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.nrt-pseo-report-msg { padding: .8rem 1rem; border-left: 3px solid var(--nrt-dep); background: var(--nrt-hair-2); }

/* 本文中のリンクは色だけに頼らず下線で示す（アクセシビリティ: link-in-text-block） */
.nrt-pseo-byline a, .nrt-pseo-prose a, .nrt-pseo-dl a, .nrt-pseo-links-inline a, .nrt-pseo-note-s a, .nrt-pseo-sec > p a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }

/* 比較の表（2社・3〜4列）は 375px に収める。見出しの社名は折り返してよい。 */
.nrt-pseo-table--cmp { min-width: 0; table-layout: fixed; }
.nrt-pseo-table--cmp thead th { white-space: normal; line-height: 1.5; letter-spacing: .06em; }
.nrt-pseo-table--cmp th:first-child { width: 22%; }
@media (max-width: 560px) { .nrt-pseo-table--cmp td, .nrt-pseo-table--cmp th { padding: .65rem .35rem; font-size: .86rem; white-space: normal; } }
