/* Train checkout additions; loaded after style.css. All colours use cyah tokens. */
.train-stages { display:flex; list-style:none; gap:8px; margin:0 0 24px; padding:0; counter-reset:train-stage; font-size:.9rem; color:var(--muted); }
.train-stages li { flex:1; padding:12px; background:var(--bg); counter-increment:train-stage; }
.train-stages li::before { content:counter(train-stage) ". "; font-weight:800; }
.train-stages [aria-current] { background:var(--sky); color:var(--navy); font-weight:700; box-shadow:inset 0 -3px var(--blue); }
.train-conditions, .train-reservation { margin:16px 0 0; padding-top:16px; border-top:1px solid var(--line); overflow-wrap:anywhere; }
.train-conditions h4, .train-reservation h4 { font-size:1rem; margin:0 0 8px; }
.train-conditions p, .train-reservation p { margin:0 0 8px; }
.train-conditions > p:first-of-type { white-space:pre-line; font-size:.9rem; line-height:1.6; }
.train-advice { padding:12px; margin:16px 0 0; background:var(--sky); color:var(--navy); font-size:.9rem; }
.train-direction-price { display:flex; flex-direction:column; text-align:right; }
.train-direction-price small { font-size:.8rem; color:var(--muted); font-weight:400; }
.trip__extra dd { overflow-wrap:anywhere; }
.trip .ct-rm { display:inline-block; margin-top:12px; padding:6px 0; border:0; background:transparent; color:var(--blue); font:inherit; font-size:.9rem; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.trip .ct-rm:hover { color:var(--blue-d); }
.trip .ct-rm:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }
.train-review { background:var(--sky); padding:20px; margin:20px 0; color:var(--ink); overflow-wrap:anywhere; }
.train-review[hidden] { display:none; }
.train-review:focus { outline:2px solid var(--blue); outline-offset:4px; }
.train-review__total { display:flex; justify-content:space-between; gap:16px; font-size:1.1rem; color:var(--navy); }
.train-review h3 { font-size:1rem; }
@media (max-width:600px) {
  .train-stages { gap:4px; font-size:.8rem; margin-bottom:16px; }
  .train-stages li { padding:8px; overflow-wrap:anywhere; }
  .train-direction-price { max-width:55%; }
  .train-review { padding:16px; }
}

.bk__railcards{margin:20px 0;padding:16px;background:var(--sky,#EAF1FF);min-width:0}
.bk__railcard{margin:16px 0;overflow-wrap:anywhere}
.bk__railcard input{width:100%;min-width:0;min-height:44px}
.train-railcards{margin:16px 0;overflow-wrap:anywhere}
.train-railcards h4{font-size:14px;margin:0 0 8px}
.train-railcards ul{padding-left:20px}
