/* Traffic candidate only. Original Zao and other snow-area pages are unchanged. */
html.v2-zao-preview[data-zao-preview-page="traffic"] .ztp-root { color: var(--color-text-primary, #193c50); line-height: 1.65; }
.ztp-root *, .ztp-root *::before, .ztp-root *::after { box-sizing: border-box; }
.ztp-root :is(p, ul, ol, h2, h3, h4) { margin: 0; }
.ztp-root [hidden] { display: none !important; }
.ztp-root :is(a, p, li, h2, h3, h4, th, td, summary) { overflow-wrap: anywhere; }
.ztp-root :is(a, button, summary, [tabindex]):focus-visible { outline: 3px solid #126b9a; outline-offset: 3px; }
.ztp-root :is(section, details, article, .ztp-legacy-anchor) { scroll-margin-top: 8rem; }
.ztp-root .ztp-intro { margin-bottom: .8rem; font-size: .94rem; color: #456474; }
.ztp-notice, .ztp-season-notice, .ztp-lodging-notice { padding: .65rem .8rem; border-left: 3px solid #d8ad64; border-radius: .35rem; color: #705424; background: #fff7e9; font-size: .83rem; }
.ztp-season-notice { margin-bottom: 1rem !important; }
.ztp-topic-nav, .ztp-actions, .ztp-filter { display: flex; flex-wrap: wrap; gap: .45rem; }
.ztp-topic-nav { margin-block: .8rem 1.5rem; }
.ztp-link, .ztp-filter-button { display: inline-flex; min-height: 44px; max-width: 100%; align-items: center; justify-content: center; padding: .55rem .8rem; border: 1px solid #b5ccd8; border-radius: .55rem; background: #fff; color: #155879; font: inherit; font-size: .84rem; font-weight: 650; text-align: center; text-decoration: none; cursor: pointer; }
.ztp-link:hover, .ztp-filter-button:hover { background: #e9f4fa; }
.ztp-link-primary, .ztp-filter-button.is-active { border-color: #155879; background: #155879; color: #fff; }
.ztp-link-primary:hover, .ztp-filter-button.is-active:hover { background: #0b425e; color: #fff; }
.ztp-section { margin-block: 1.5rem; }
.ztp-root .ztp-section > h2 { margin-bottom: .8rem; font-size: 1.3rem; color: #163e56; }
.ztp-kicker { color: #637f8c; letter-spacing: .12em; font-size: .68rem; font-weight: 700; }
.ztp-section-intro { color: #496775; font-size: .88rem; margin-bottom: .7rem !important; }
.ztp-bus-terminal { display: grid; width: calc((100% - 1.7rem) / 3); grid-template-columns: minmax(0, 1fr); align-items: start; gap: .65rem; padding: .85rem; border: 1px solid #d3e1e7; border-radius: .9rem; background: #fff; }
.ztp-arrival-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: .85rem; }
.ztp-arrival-grid > :is(.ztp-bus-terminal, .ztp-local-taxi) { width: 100%; margin: 0; }
.ztp-terminal-photo { width: calc(100% + 1.7rem); max-width: none; margin: -.85rem -.85rem 0; aspect-ratio: 16 / 9; border-radius: .85rem .85rem 0 0; background: #eaf1f4; }
.ztp-terminal-photo .v2-snow-media__image { width: 100%; height: 100%; object-fit: cover; }
.ztp-terminal-photo--unavailable { display: grid; place-items: center; padding: 1rem; }
.ztp-terminal-content { display: grid; min-width: 0; gap: .7rem; }
.ztp-terminal-content > h2 { color: #163e56; font-size: 1.05rem; line-height: 1.4; }
.ztp-terminal-intro { color: #355b6f; font-size: .94rem; }
.ztp-terminal-details { margin-top: .2rem; }
.ztp-compare-grid, .ztp-branch-grid, .ztp-route-grid, .ztp-mini-grid, .ztp-safety-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; align-items: start; }
.ztp-compare-card, .ztp-mini-card, .ztp-safety-card, .ztp-branch-card { min-width: 0; padding: .9rem; border: 1px solid #d3e1e7; border-radius: .8rem; background: #fff; font-size: .85rem; }
.ztp-compare-card h3, .ztp-mini-card h3, .ztp-safety-card h3, .ztp-branch-card h3 { margin-bottom: .4rem; color: #163e56; font-size: 1rem; }
.ztp-root .ztp-headline { margin-bottom: .5rem; font-weight: 700; color: #346379; font-size: .9rem; }
.ztp-fold { min-width: 0; border: 1px solid #d3e1e7; border-radius: .75rem; background: #fff; }
.ztp-fold > summary { min-height: 48px; padding: .75rem .95rem; color: #224d64; font-size: .94rem; font-weight: 700; cursor: pointer; }
.ztp-fold > :not(summary) { margin: .2rem .95rem .95rem; font-size: .86rem; }
.ztp-fold > :not(summary) + :not(summary) { margin-top: .7rem; }
.ztp-section > .ztp-fold { margin-top: .7rem; }
.ztp-fold[open] > summary { border-bottom: 1px solid #e5edf1; margin-bottom: .7rem; }
.ztp-fold .ztp-fold { margin-inline: 0; }
.ztp-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid #dbe6ec; border-radius: .55rem; overscroll-behavior-x: contain; }
.ztp-table { width: 100%; min-width: 480px; border-collapse: collapse; font-size: .84rem; }
.ztp-table caption { padding: .55rem .7rem; text-align: left; font-weight: 700; color: #244d64; background: #f0f6f9; }
.ztp-table :is(th, td) { padding: .55rem .7rem; text-align: left; vertical-align: top; border-bottom: 1px solid #e3ebef; }
.ztp-table th { background: #f7fafb; color: #294e63; }
.ztp-table tr:last-child > :is(th, td) { border-bottom: 0; }
.ztp-list { padding-left: 1.2rem; }
.ztp-list li + li { margin-top: .28rem; }
.ztp-branch-flow { display: flex; flex-wrap: wrap; gap: .4rem .8rem; list-style: none; padding: .55rem 0; }
.ztp-branch-flow li { position: relative; padding: .25rem .45rem; border-radius: .3rem; background: #edf5f8; font-size: .8rem; }
.ztp-branch-flow li:not(:last-child)::after { position: absolute; right: -.75rem; top: .2rem; content: '→'; color: #597689; }
.ztp-branch-flow + .ztp-branch-flow { border-top: 1px dashed #d1e1e8; }
.ztp-route-card { min-width: 0; display: grid; gap: .65rem; padding: .9rem; background: #f7fafb; border: 1px solid #dce7ec; border-radius: .7rem; font-size: .85rem; }
.ztp-route-card h4 { color: #163e56; font-size: .99rem; }
.ztp-route-summary { color: #356278; font-weight: 650; }
.ztp-schedules { display: grid; gap: .55rem; }
.ztp-schedule > summary { min-height: 44px; font-size: .85rem; padding: .6rem .75rem; }
.ztp-times { list-style: none; padding: 0; columns: 2; column-gap: 1rem; font-variant-numeric: tabular-nums; }
.ztp-times li { break-inside: avoid; padding-block: .2rem; }
.ztp-safety-lead { font-weight: 650; color: #355b6f; margin-bottom: .4rem !important; }
.ztp-filter { margin-top: .9rem; }
.ztp-filter-button { padding: .4rem .65rem; font-size: .79rem; }
.ztp-result-count { margin-block: .55rem .75rem !important; color: #456776; font-size: .85rem; }
.ztp-parking-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; align-items: start; }
.ztp-parking-card { min-width: 0; display: grid; gap: .65rem; padding: .85rem; border: 1px solid #d3e1e7; border-radius: .9rem; background: #fff; }
.ztp-card-photo { min-width: 0; overflow: hidden; border-radius: .72rem; aspect-ratio: 16 / 9; background: #eaf1f4; }
.ztp-card-photo .v2-snow-media__image { width: 100%; height: 100%; object-fit: cover; }
.ztp-parking-card > .ztp-card-photo { width: calc(100% + 1.7rem); margin: -.85rem -.85rem 0; border-radius: .85rem .85rem 0 0; }
.ztp-parking-card > h3 { color: #163e56; font-size: 1.02rem; line-height: 1.4; }
.ztp-legacy-anchor { display: block; height: 0; margin-bottom: -.65rem; }
.ztp-tags { display: flex; flex-wrap: wrap; gap: .3rem; padding: 0; list-style: none; }
.ztp-tags li { padding: .15rem .45rem; border-radius: .35rem; background: #eef5f1; color: #35644e; font-size: .74rem; }
.ztp-warning { color: #895315; background: #fff3df; padding: .45rem .6rem; border-radius: .3rem; font-size: .85rem; }
.ztp-parking-details { border: 0; border-top: 1px solid #e1eaf0; border-radius: 0; }
.ztp-parking-details > summary { min-height: 44px; padding: .55rem .1rem; font-size: .85rem; }
.ztp-parking-details > :not(summary) { margin-inline: .1rem; margin-bottom: .55rem; }
.ztp-parking-details h4 { color: #355b6f; font-size: .86rem; }
.ztp-lodging-notice { margin-top: .8rem !important; background: #f0f6f9; color: #456373; border-left-color: #7ea7bb; }
.ztp-local-taxi { display: grid; min-width: 0; width: calc((100% - 1.7rem) / 3); gap: .65rem; padding: .85rem; margin-top: .8rem; border: 1px solid #d3e1e7; border-radius: .9rem; background: #fff; font-size: .87rem; }
.ztp-local-taxi > .ztp-card-photo { width: calc(100% + 1.7rem); margin: -.85rem -.85rem 0; border-radius: .85rem .85rem 0 0; }
.ztp-local-taxi h3 { color: #163e56; font-size: 1.05rem; }
#zao-traffic-local-taxi-details > summary { min-height: 44px; padding-inline: .7rem; border-radius: .45rem; color: #5f4a1f; background: #fff7df; }
#zao-traffic-local-taxi-details[open] > summary { background: #fff1bf; }
.ztp-meta { color: #617c89; font-size: .8rem; }
.ztp-closing, .ztp-empty { margin-top: 1rem; padding: 1rem; border-radius: .75rem; background: #eef5f8; font-size: .87rem; color: #496574; }
.ztp-closing h2, .ztp-empty h2 { margin-bottom: .4rem; font-size: 1rem; color: #244d64; }
.ztp-empty a { margin-top: .7rem; }
@media (max-width: 70rem) {
  .ztp-arrival-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ztp-parking-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ztp-bus-terminal { width: calc((100% - .85rem) / 2); }
  .ztp-local-taxi { width: calc((100% - .85rem) / 2); }
}
@media (max-width: 42rem) {
  .ztp-arrival-grid { grid-template-columns: minmax(0, 1fr); }
  .ztp-bus-terminal { width: 100%; }
  .ztp-terminal-content { padding-block: 0; }
  .ztp-local-taxi { width: 100%; }
  .ztp-compare-grid, .ztp-branch-grid, .ztp-route-grid, .ztp-mini-grid, .ztp-safety-grid, .ztp-parking-grid { grid-template-columns: minmax(0, 1fr); }
  .ztp-root .ztp-section > h2 { font-size: 1.2rem; }
  .ztp-topic-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ztp-topic-nav .ztp-link { padding-inline: .4rem; font-size: .8rem; }
  .ztp-fold > summary { padding: .65rem .75rem; font-size: .9rem; }
  .ztp-fold > :not(summary) { margin-inline: .75rem; }
  .ztp-route-card { padding: .75rem; }
  .ztp-times { columns: 1; }
  .ztp-parking-details > :not(summary) { margin-inline: .1rem; }
  .ztp-compare-card { padding: .8rem; }
}
@media (prefers-reduced-motion: reduce) { .ztp-root * { scroll-behavior: auto; } }

.ztp-root .ztp-section > h2 {margin:0 0 1.1rem;color:#193a50;font-size:clamp(1.2rem,2vw,1.6rem);line-height:1.5;padding-bottom:16px;border-bottom:2px solid #d3e1e8}
