.route-landing { max-width:1120px; margin-inline:auto; color:#172b43; }
.route-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; font-size:.9rem; margin:0 0 24px; }
.route-intro { max-width:820px; margin-bottom:28px; }
.route-intro h1 { font-size:clamp(1.8rem,3.5vw,2.8rem); line-height:1.15; letter-spacing:-.03em; margin-bottom:16px; }
.route-intro p,.route-facts p,.route-section p { line-height:1.65; }
.route-eyebrow { color:#51667e; font-size:.76rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; margin-bottom:8px; }
.route-selector { background:linear-gradient(140deg,#f6f9ff,#fff 65%); border:1px solid #c7d6e9; border-top:4px solid #1764cb; border-radius:20px; padding:28px; box-shadow:0 12px 35px #233a6010; }
.route-selector h2,.route-section h2,.route-facts h2 { font-size:1.35rem; margin-bottom:16px; }
.route-form-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:end; }
.route-form-grid label { font-weight:600; font-size:.92rem; }
.route-form-grid input,.route-form-grid select { margin-top:8px; min-height:46px; border-color:#a8bad1; }
.route-type { border:0; padding:0; min-width:0; }
.route-type legend { font-size:.92rem; font-weight:600; margin-bottom:8px; }
.route-type label { display:inline-flex; align-items:center; gap:6px; padding:8px 4px 8px 0; font-weight:400; }
.route-type input { min-height:0; margin:0; accent-color:#1764cb; }
.route-calendars { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:24px auto 16px; max-width:820px; }
.route-calendars section { min-width:0; }
.route-calendars h3 { font-size:1rem; }
.landing-calendar { padding:12px; border:1px solid #d5dfec; background:white; border-radius:12px; }
.landing-calendar-header { display:grid; grid-template-columns:40px minmax(0,1fr) 40px; gap:8px; margin-bottom:10px; }
.landing-calendar-header button,.landing-calendar-header select { min-width:0; height:40px; border:1px solid #cbd7e8; border-radius:7px; background:#fff; color:#172b43; }
.landing-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; }
.landing-calendar-grid span { text-align:center; color:#51667e; font-size:.8rem; padding:6px 0; }
.landing-calendar-grid button { width:100%; min-height:44px; border:1px solid #bad2f5; border-radius:7px; background:#e7f0ff; color:#124c9f; font-weight:600; }
.landing-calendar-grid button:disabled { border-color:transparent; background:#f5f7fa; color:#9da8b6; font-weight:400; }
.landing-calendar-grid button[aria-pressed=true] { background:#1764cb; color:#fff; border-color:#1764cb; }
.landing-calendar-grid button:focus-visible,.route-faq summary:focus-visible { outline:3px solid #153d7c; outline-offset:2px; }
.blue-date-dot { display:inline-block; width:10px; height:10px; background:#1764cb; border-radius:50%; margin-right:6px; }
.route-calendar-note { font-size:.86rem; color:#51667e; margin:18px 0 10px; }
.route-selector-actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px; margin-top:16px; }
.route-selector-actions .btn { min-height:48px; padding-inline:28px; }
.route-facts { padding:32px 0 8px; max-width:900px; }
.route-notice { border-left:3px solid #1764cb; padding:10px 18px; background:#f1f6ff; }
.route-section { margin:36px 0; scroll-margin-top:24px; }
.route-section-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.route-variant-grid,.route-info-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.landing-variant { border:1px solid #d5dfec; border-radius:14px; padding:22px; background:white; min-width:0; }
.landing-times { display:flex; gap:18px; align-items:center; font-size:1.45rem; margin:8px 0; }
.landing-stops { margin:16px 0; }
.landing-stops dt { font-size:.78rem; color:#51667e; margin-top:12px; }
.landing-stops dd { line-height:1.6; overflow-wrap:anywhere; margin-bottom:8px; }
.landing-stops a { display:block; font-size:.85rem; }
.route-transfer { font-size:.9rem; border-top:1px solid #edf1f6; padding-top:12px; }
.route-info-grid { gap:28px; }
.carrier-overview-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.carrier-overview-card { padding:22px; border:1px solid #d5dfec; border-radius:14px; background:#fff; }
.carrier-overview-card h3 { font-size:1.15rem; margin-bottom:4px; }
.carrier-route-label { color:#51667e; font-weight:600; }
.carrier-overview-card dl { display:grid; grid-template-columns:minmax(110px,.55fr) minmax(0,1.45fr); gap:8px 16px; margin:18px 0; }
.carrier-overview-card dt { color:#51667e; font-size:.82rem; }
.carrier-overview-card dd { margin:0; overflow-wrap:anywhere; }
.carrier-overview-card dd span { display:block; }
.route-info-grid .route-section { margin:30px 0 0; }
.route-neighbours { display:flex; flex-wrap:wrap; gap:12px; }
.route-neighbours a { display:block; padding:14px 18px; border:1px solid #d5dfec; border-radius:10px; text-decoration:none; background:white; }
.route-neighbours small { display:block; color:#51667e; font-size:.78rem; margin-top:4px; }
.route-postal-form { display:flex; flex-wrap:wrap; align-items:end; gap:14px; margin-top:22px; }
.route-postal-form input { margin-top:7px; }
.route-faq { border-block:1px solid #d5dfec; }
.route-faq details { padding:18px 0; }
.route-faq details+details { border-top:1px solid #e3eaf3; }
.route-faq summary { cursor:pointer; font-weight:600; }
.route-faq p { margin:12px 0 0; max-width:920px; }
.route-request { padding:28px; border:1px solid #c7d6e9; border-radius:16px; background:#f6f9ff; }
.route-empty { padding:20px; border:1px dashed #a8bad1; border-radius:10px; grid-column:1/-1; }
@media(max-width:760px) {
 .route-form-grid,.route-variant-grid,.route-info-grid,.carrier-overview-grid { grid-template-columns:minmax(0,1fr); }
 .route-calendars { gap:16px; }
 .route-selector,.route-request { padding:18px; }
 .landing-variant { padding:18px; }
 .route-selector-actions .btn { width:100%; }
}
@media(max-width:520px) { .route-calendars { grid-template-columns:minmax(0,1fr); } .route-neighbours a { width:100%; } }
.route-calendars.is-oneway { grid-template-columns:minmax(0,400px); justify-content:center; }
.option-step-kicker { color:#1764cb; font-size:.78rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; margin-bottom:6px; }
.connection-chip { flex:0 0 auto; padding:6px 10px; border:1px solid #b9cbe3; border-radius:999px; background:#f4f8fe; color:#173e70; font-size:.78rem; font-weight:700; }
.selected-outbound-summary { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:16px 18px; border:1px solid #c7d6e9; border-radius:12px; background:#f6f9ff; }
.selected-outbound-summary strong { display:block; }
@media(max-width:520px) { .selected-outbound-summary { align-items:stretch; flex-direction:column; } }
