.route-page { min-height: 100vh; background: var(--paper); }
.route-page-header { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px max(20px, 5vw); border-bottom: 1px solid var(--line); background: var(--white); }
.route-page-header .brand-mark { width: 40px; height: 40px; }
.route-page-header .brand strong { font-size: .9rem; }
.route-page-header > a:last-child { color: var(--orange-dark); font-size: .75rem; font-weight: 750; text-decoration: none; }
.route-page-main { max-width: 1180px; margin: 0 auto; padding: clamp(34px, 6vw, 82px) 20px 90px; }
.route-breadcrumb { margin-bottom: 30px; color: var(--muted); font-size: .7rem; }
.route-breadcrumb a { color: var(--orange-dark); }
.route-page-hero { display: grid; grid-template-columns: minmax(0, .9fr) minmax(300px, 1.1fr); gap: clamp(28px, 6vw, 82px); align-items: center; }
.route-page-copy h1 { margin: 10px 0 18px; font-size: clamp(2.6rem, 6vw, 5.6rem); }
.route-page-copy .lead { max-width: 600px; color: var(--muted); font-size: 1.05rem; }
.route-page-image { margin: 0; }
.route-page-image img { width: 100%; aspect-ratio: 1.25; object-fit: cover; }
.route-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 42px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.route-facts div { min-width: 0; padding: 18px 14px; border-right: 1px solid var(--line); }
.route-facts div:last-child { border-right: 0; }
.route-facts span, .route-facts strong { display: block; }
.route-facts span { color: var(--muted); font-size: .65rem; text-transform: uppercase; letter-spacing: .1em; }
.route-facts strong { margin-top: 6px; font-size: .9rem; overflow-wrap: anywhere; }
.route-page-grid { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: clamp(30px, 8vw, 110px); margin-top: 72px; }
.route-article h2 { margin: 0 0 16px; font-size: clamp(1.6rem, 3vw, 2.6rem); }
.route-article h3 { margin: 42px 0 10px; font-size: 1.25rem; }
.route-article p { max-width: 690px; color: var(--muted); font-size: .93rem; }
.route-article .direct-answer { color: var(--ink); font-size: 1rem; }
.route-side { align-self: start; padding: 20px; border-left: 3px solid var(--orange); background: var(--surface-warm); }
.route-side h2 { margin: 8px 0 16px; font-size: 1.25rem; }
.route-side p { color: var(--muted); font-size: .78rem; }
.route-side .button { width: 100%; margin-top: 7px; }
.route-schedule { width: 100%; margin: 18px 0 0; border-collapse: collapse; font-size: .8rem; }
.route-schedule th, .route-schedule td { padding: 12px 10px; border-bottom: 1px solid var(--line); text-align: left; }
.route-schedule th { color: var(--muted); font-size: .65rem; text-transform: uppercase; letter-spacing: .08em; }
.route-schedule td:first-child { color: var(--orange-dark); font-weight: 800; }
.route-callout { margin: 28px 0; padding: 20px; border-left: 3px solid var(--orange); background: var(--orange-soft); }
.route-callout p { margin: 0; color: #71401e; }
.route-page-footer { display: flex; justify-content: space-between; gap: 20px; margin-top: 80px; padding-top: 20px; border-top: 1px solid var(--line); color: var(--muted); font-size: .7rem; }
.route-page-footer a { color: var(--orange-dark); font-weight: 750; }
@media (max-width: 760px) { .route-page-hero, .route-page-grid { grid-template-columns: 1fr; } .route-page-image { order: -1; } .route-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .route-facts div:nth-child(2) { border-right: 0; } .route-facts div:nth-child(-n+2) { border-bottom: 1px solid var(--line); } .route-side { order: -1; } .route-page-footer { display: block; } .route-page-footer span { display: block; margin-top: 8px; } }
@media (max-width: 820px) { .route-page-main { padding-bottom: calc(166px + env(safe-area-inset-bottom)); } .route-page-header { padding-right: 16px; padding-left: 16px; } .route-page-header > a:last-child { white-space: nowrap; } }
