/* Keep the article, its diagrams and optional controls visually distinct. */
.guide[data-topic] .eyebrow,.guide[data-topic] .eyebrow a { color:var(--article-muted); }
.guide[data-topic] .article-head,.guide[data-topic] .article-toc { max-width:1080px; margin-inline:auto; }
.guide[data-topic] .article-head:not(:has(.article-cover)) { display:block; padding-bottom:24px; }
.guide[data-topic] .article-head:not(:has(.article-cover)) .article-title-block { max-width:800px; }
.guide[data-topic] .article-head h1 { font-size:clamp(30px,3vw,40px); }
.guide[data-topic] .article-toc { position:static; padding:10px 0; backdrop-filter:none; }
.guide[data-topic] .article-toc a { color:var(--article-muted); font-size:13px; }
.guide[data-topic] .article-toc a[aria-current="location"] { color:var(--ink); border-bottom-color:var(--ink); }
.guide[data-topic] .visual-answer-grid>a { border-top:1px solid var(--article-line); }
.guide[data-topic] .visual-answer-grid>a:hover { border-top-color:var(--ink); }
.guide[data-topic] .visual-answer-grid strong { font-size:20px; }
.guide[data-topic] .visual-answer-grid small { font-size:12px; }
.guide[data-topic] .article-section { padding-top:44px; scroll-margin-top:95px; }
.guide[data-topic] .article-section h2 { font-size:24px; font-weight:700; line-height:1.5; color:var(--ink); }
.guide[data-topic] .article-section h3,.guide[data-topic] .scan-chart figcaption { font-size:18px; font-weight:650; line-height:1.6; color:var(--ink); }
.guide[data-topic] .section-heading { margin-bottom:20px; }
.guide[data-topic] .section-heading>p { font-size:16px; }
.guide[data-topic] .reader-context { margin:24px 0 0; scroll-margin-top:95px; }
.guide[data-topic] .reader-context>h3 { margin:0 0 10px; }
.guide[data-topic] .reader-context .prose { max-width:760px; font-size:16px; line-height:1.85; }
.guide[data-topic] .reader-context .prose p { margin:12px 0; }
.guide[data-topic] .scan-figure,.guide[data-topic] .cost-diagram,.guide[data-topic] .article-visual,.guide[data-topic] .journey-diagram {
  padding:16px; margin:24px 0; border:1px solid var(--article-line); border-radius:3px; background:#f7f8fa; overflow:hidden;
}
.guide[data-topic] .reader-split>.scan-figure { margin:0; padding:12px; border:1px solid var(--article-line); }
.guide[data-topic] .scan-figure img,.guide[data-topic] .cost-diagram img,.guide[data-topic] .article-visual img,.guide[data-topic] .journey-diagram img { display:block; width:100%; max-width:800px; height:auto; margin-inline:auto; border-radius:0; }
.guide[data-topic] .scan-figure figcaption,.guide[data-topic] .cost-diagram figcaption,.guide[data-topic] .article-visual figcaption,.guide[data-topic] .journey-diagram figcaption {
  padding:12px 0 0; margin:0; background:transparent; font-size:12px; font-weight:400; color:var(--article-muted); line-height:1.75;
}
.guide[data-topic] .reader-note,.guide[data-topic] .reading-note,.guide[data-topic] .tool-budget { border-left-color:var(--article-line); }
.guide[data-topic] .reading-note strong,.guide[data-topic] .compare .product-name,.guide[data-topic] .method-number,.guide[data-topic] .number-guide strong,
.guide[data-topic] .recipe-stats strong,.guide[data-topic] .recipe-timeline time,.guide[data-topic] .scan-equation strong,.guide[data-topic] .equipment-price>strong { color:var(--ink); }
.guide[data-topic] .recipe-timeline strong { font-size:15px; }
.guide[data-topic] .reader-table a,.guide[data-topic] .fact-actions a,.guide[data-topic] .fact-citation,.guide[data-topic] .source-details a { color:var(--ink); }
.guide[data-topic] .market-map-head h3,.guide[data-topic] .market-time-head h3 { font-size:18px; }
.guide[data-topic] .market-time-example strong,.guide[data-topic] .market-case li b { color:var(--ink); }
.guide[data-topic] .market-map-links a { color:var(--ink); }
.guide[data-topic] .market-more,.guide[data-topic] .scan-more { border:0; padding:0; }
@media(max-width:700px) {
  .guide[data-topic] .article-head h1 { font-size:28px; line-height:1.4; }
  .guide[data-topic] .article-toc a { font-size:12px; }
  .guide[data-topic] .article-section { padding-top:34px; }
  .guide[data-topic] .article-section h2 { font-size:22px; }
  .guide[data-topic] .article-section h3,.guide[data-topic] .scan-chart figcaption { font-size:17px; }
  .guide[data-topic] .section-heading>p { font-size:15px; }
  .guide[data-topic] .visual-answer-grid strong { font-size:18px; }
  .guide[data-topic] .visual-answer-grid small { font-size:11px; }
  .guide[data-topic] .scan-figure,.guide[data-topic] .cost-diagram,.guide[data-topic] .article-visual,.guide[data-topic] .journey-diagram { padding:10px; }
}
/* Japanese wraps between characters; Korean keep-all cannot size its titles. */
html[lang="ja"] body, html[lang="ja"] .guide, html[lang="ja"] .guide .article-head h1 { word-break:normal; }
.bed-confirmation-flow { margin:24px 0; padding:16px; border:1px solid var(--article-line); background:#f7f8fa; }
.bed-confirmation-flow ol { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; padding:0; list-style:none; }
.bed-confirmation-flow li { display:flex; flex-direction:column; gap:8px; min-width:0; }
.bed-confirmation-flow li span { width:28px; border-bottom:2px solid var(--ink); font-weight:700; }
.bed-confirmation-flow strong { font-size:14px; overflow-wrap:anywhere; }
.bed-confirmation-flow figcaption { font-size:12px; color:var(--article-muted); }
.palace-ticket-flow { margin:24px 0; padding:16px; border:1px solid var(--article-line); background:#f7f8fa; }
.palace-ticket-flow ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; padding:0; list-style:none; }
.palace-ticket-flow li { min-width:0; border-top:2px solid var(--ink); padding-top:12px; }
.palace-ticket-flow li span { display:block; margin-bottom:8px; font-weight:700; }
.palace-ticket-flow li strong { font-size:18px; }
.palace-ticket-flow li p,.palace-ticket-flow figcaption { font-size:13px; }
@media(max-width:700px) { .palace-ticket-flow ol { grid-template-columns:1fr; gap:16px; } }
@media(max-width:700px) { .bed-confirmation-flow ol { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.haneda-route-flow { margin: 1.5rem 0; padding: 1rem; border: 1px solid #d6d9dd; background: #fff; }
.haneda-origin { text-align: center; font-weight: 700; padding-bottom: 1rem; }
.haneda-branches { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.haneda-branches > div { display: grid; gap: .6rem; padding: 1rem; border-top: 3px solid #2261bd; }
.haneda-route-flow figcaption { margin-top: 1rem; font-size: .85rem; }
.haneda-sale-calendar { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .5rem; }
.haneda-sale-calendar li { display: grid; gap: .5rem; border: 1px solid #d6d9dd; padding: .75rem; font-size: .85rem; overflow-wrap: anywhere; }
.haneda-sale-calendar li.eligible { border-top: 3px solid #2261bd; }
.haneda-sale-calendar time { font-variant-numeric: tabular-nums; }
@media (max-width: 600px) { .haneda-branches { grid-template-columns: 1fr; } .haneda-sale-calendar { grid-template-columns: repeat(2,minmax(0,1fr)); } }
.narita-route-flow { margin: 1.5rem 0; padding: 1rem; border: 1px solid #d6d9dd; background: #fff; }
.narita-branches { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; margin: 1rem 0; }
.narita-branches > div { display: grid; gap: .6rem; padding: 1rem 0; border-top: 3px solid #2261bd; }
.narita-route-flow figcaption { font-size: .85rem; }
.narita-ticket-flow { display: grid; gap: .75rem; padding: 1rem 1rem 1rem 2.5rem; border: 1px solid #d6d9dd; }
@media (max-width: 600px) { .narita-branches { grid-template-columns: 1fr; } }
.transit-coverage-flow { border: 1px solid #d6d9dd; padding: 1rem; background: #fff; margin: 1.5rem 0; }
.transit-coverage-flow > div { display: grid; gap: .5rem; padding: 1rem 0; border-bottom: 1px solid #d6d9dd; }
.transit-coverage-flow > div:last-child { border-bottom: 0; }
.guide .transit-calculator { background: #fff; color: #15171a; border: 1px solid #d6d9dd; border-radius: 6px; }
.guide .transit-calculator input { background: #fff; color: #15171a; border-color: #a7adb5; }
.guide .transit-calculator input:focus-visible { outline-color: #2261bd; }
.guide .transit-calculator .transit-results,.guide .transit-calculator .transit-result { border-color: #d6d9dd; }
.guide .transit-calculator .transit-result.is-lowest { background: #fff; border-color: #2261bd; border-top-width: 3px; }
.guide .transit-calculator .transit-instructions,.guide .transit-calculator .transit-example,.guide .transit-calculator .transit-result small,.guide .transit-calculator .caption { color: #4a5058; }
.guide .transit-calculator .transit-status { color: #15171a; }
.guide .transit-calculator .transit-error { color: #9b2929; }
.guide .validity-card { background: #fff; border-color: #d6d9dd; border-radius: 6px; }
.guide .transit-calculator .transit-inputs label { color: #15171a; }
.guide .transit-calculator .fare-mark { background: #fff; color: #15171a; border: 1px solid #d6d9dd; }

.guide .l7-arrival-guide .stay-timeline time,.guide .l7-arrival-guide .stay-timeline .time-label,.guide .l7-arrival-guide .scan-steps b { color: #15171a; }
.guide .l7-arrival-guide .scan-note { border-color: #d6d9dd; }

/* Topic diagrams keep the full reading width on small screens. */
.guide .article-explanation{margin:24px 0;padding:0;border:1px solid #b8bdc4;border-radius:3px;background:#fff}.guide .article-explanation img{width:100%;height:auto}.guide .article-explanation figcaption{padding:12px;line-height:1.8}

/* Structured blocks share existing reader/table/photo controls. */
.content-block { min-inline-size:0; overflow-wrap:anywhere; }
.content-block p,.content-block li,.content-block th,.content-block td,.content-block figcaption { overflow-wrap:anywhere; }
.content-block:lang(ko),.content-block :lang(ko) { word-break:keep-all; }
.content-block :is(:lang(en),:lang(ja),:lang(zh),:lang(id)) { word-break:normal; }
.content-block .reader-table small { display:block; margin-top:.4em; font-size:.85em; }
.content-photo { margin:1.5rem 0; }
.content-photo img { display:block; max-inline-size:100%; block-size:auto; }
.content-photo figcaption { margin-top:.75rem; font-size:.85rem; }
.content-steps { padding-inline-start:1.5em; }
.content-steps li { min-inline-size:0; margin-block:1rem; padding-inline-start:.25em; }
.content-steps h3 { margin-block:0 .4em; }
