.stream-walk { padding-block: .7rem clamp(2.5rem,6vw,6rem); color: var(--pine-deep); }
.stream-walk :is(a, button, input, select):focus-visible { outline: 3px solid #317176; outline-offset: 3px; }
.stream-languages { display: flex; flex-wrap: wrap; gap: .2rem 1rem; align-items: center; padding-block: .2rem .55rem; }
.stream-languages a, .stream-nav a, .stream-market-link, .stream-sources a, .stream-walk .walk-map-links a {
  display: inline-flex; align-items: center; min-height: 44px; text-underline-offset: .18em;
}
.stream-languages a { padding-inline: .1rem; color: var(--pine); }
.stream-languages a[aria-current] { text-decoration-thickness: 3px; color: var(--pine-deep); }
.stream-hero { background: #e2e9da; border-top: 1px solid var(--line); }
.stream-hero.has-photo { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.05fr); }
.stream-hero-copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(1.35rem,4.4vw,4.4rem); }
.stream-place { margin-bottom: .7rem; font-size: .94rem; }
.stream-hero h1 { margin: 0; font-size: clamp(2.45rem,5.25vw,5.5rem); line-height: 1.08; overflow-wrap: anywhere; text-wrap: balance; }
.stream-walk:is(:lang(en),:lang(es)) .stream-hero h1 { font-family: var(--display); font-weight: 400; letter-spacing: -.035em; }
.stream-lead { max-width: 48ch; margin-top: 1.25rem; font-size: clamp(1.05rem,1.28vw,1.32rem); }
.stream-photo { align-self: center; min-width: 0; }
.stream-photo figure { margin: 0; }
.stream-photo img { display: block; width: 100%; height: auto; }
.stream-photo figcaption { background: var(--paper-light); padding: .55rem .85rem; font-size: .85rem; }
.stream-nav { margin-bottom: clamp(1.8rem,4vw,3.5rem); }
.stream-nav ol { display: flex; flex-wrap: wrap; gap: 0 clamp(1.3rem,3.5vw,3.8rem); list-style: none; margin: 0; padding: .4rem 0; border-block: 1px solid var(--line); }
.stream-nav a { padding-block: .25rem; }
.stream-stops { margin: 0; padding: 0; list-style: none; }
.stream-stop { position: relative; padding: 0 0 clamp(2rem,4.7vw,5rem) clamp(1.5rem,3.25vw,3rem); border-left: 1px solid #647d69; scroll-margin-top: 1rem; }
.stream-stop:last-child { padding-bottom: .8rem; border-color: transparent; }
.stream-stop::before { content: ""; position: absolute; left: -6px; top: .68rem; width: 11px; height: 11px; border: 2px solid var(--pine); border-radius: 50%; background: var(--paper); }
.stream-stop > section { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0,1.45fr); align-items: start; gap: .8rem clamp(1rem,4vw,5.2rem); }
.stream-stop h2, .stream-sources h2 { font-size: clamp(1.45rem,2.8vw,2.75rem); line-height: 1.2; overflow-wrap: anywhere; text-wrap: balance; }
.stream-walk:is(:lang(en),:lang(es)) :is(.stream-stop-title, .stream-sources) h2 { font-family: var(--serif); font-weight: 600; letter-spacing: -.025em; }
.stream-sign { margin: .3rem 0 0; font: 400 1.04rem/1.5 system-ui,sans-serif; color: #466352; }
.stream-stop-copy { min-width: 0; max-width: 64ch; }
.stream-stop-copy > p + p { margin-top: .65rem; }
.stream-market-link { margin-top: .9rem; padding: .5rem .9rem; background: var(--citron); color: var(--pine-deep); }
.stream-walk .walk-transit { margin-top: 1rem; padding: 1rem; background: var(--paper-light); border: 1px solid var(--line); }
.stream-walk .walk-transit summary { min-height: 44px; padding-block: 9px; cursor: pointer; }
.stream-walk .walk-transit form { display: grid; gap: .7rem; margin-block: .7rem; }
.stream-walk .walk-return-fields, .stream-walk .walk-map-links { display: flex; align-items: end; flex-wrap: wrap; gap: .5rem 1rem; }
.stream-walk .walk-transit label { display: grid; gap: .25rem; min-width: 0; }
.stream-walk .walk-transit :is(input, select, button) { max-width: 100%; min-width: 0; min-height: 44px; padding: .4rem .65rem; border: 1px solid #55725b; background: #fff; }
.stream-walk .walk-transit button { justify-self: start; color: white; background: var(--pine-deep); }
.stream-walk .walk-transit ul, .stream-walk .walk-transit ol { padding-inline-start: 1.3rem; }
.stream-sources { margin-top: clamp(1.2rem,3vw,2.6rem); padding-top: 1rem; border-top: 1px solid var(--line); }
.stream-sources h2 { font-size: 1.3rem; }
.stream-sources ul { display: flex; flex-wrap: wrap; gap: .2rem 1.5rem; margin: .3rem 0 0; padding: 0; list-style: none; }
@media (max-width: 760px) {
  .stream-hero.has-photo, .stream-stop > section { grid-template-columns: 1fr; }
  .stream-nav ol { gap: .1rem 1rem; }
  .stream-stop-copy { max-width: 100%; }
}
