.route-hero{padding:62px 0 68px;background:var(--red-dark);color:#fff;overflow:hidden}.route-hero-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:90px;align-items:center}.route-number{display:inline-grid;place-items:center;min-width:102px;height:62px;margin:8px 0 16px;padding:0 18px;background:var(--gold);color:var(--red-dark);font-size:36px;line-height:1;font-weight:700;border-radius:3px}.route-hero h1{font-size:clamp(48px,5vw,68px);margin:0 0 17px}.route-hero h1 em{color:var(--gold-light)}.route-hero-grid>div:first-child>p:not(.eyebrow){color:#e0cdd0;max-width:510px;margin:0 0 24px}.route-map-card{height:330px;position:relative;background:#fff9f0;color:var(--ink);border-radius:5px;box-shadow:0 22px 45px #1d050b55;overflow:hidden}.route-map-card:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#d7c8b6 1px,transparent 1px);background-size:18px 18px;opacity:.32}.route-map-line{position:absolute;left:19%;right:19%;top:50%;height:5px;background:var(--red);transform:translateY(-50%)}.route-map-line:before{content:"";position:absolute;inset:-6px 0;border-top:1px dashed #c9a968;border-bottom:1px dashed #c9a968}.route-map-line i{position:absolute;top:50%;width:23px;height:23px;border:5px solid var(--red);border-radius:50%;background:#fff;transform:translate(-50%,-50%)}.route-map-line i:first-child{left:0}.route-map-line i:last-child{left:100%}.route-place{position:absolute;top:28%;transform:translateX(-50%);display:flex;flex-direction:column;text-align:center}.route-start{left:19%}.route-end{left:81%}.route-place span{font-size:8px;letter-spacing:.16em;color:var(--red);font-weight:700}.route-place strong{font-size:22px}.route-map-card>p{position:absolute;left:15%;right:15%;bottom:30px;text-align:center;color:var(--muted);font-size:11px;margin:0}.service-status{background:var(--gold-light);border-bottom:1px solid #d5b677}.service-status-inner{min-height:76px;display:grid;grid-template-columns:52px 1fr auto;gap:18px;align-items:center}.service-status-inner>span{display:grid;place-items:center;width:50px;height:36px;background:var(--red);color:#fff;border-radius:3px;font-weight:700}.service-status-inner p{font-size:12px;margin:0;color:#59483e}.service-status-inner a{color:var(--red-dark);font-weight:700;white-space:nowrap}.route-overview{padding:86px 0;background:var(--paper)}.route-overview-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:105px}.route-overview-grid>div:last-child{padding-top:37px;color:var(--muted)}.route-overview-grid .lead{font-size:20px;line-height:1.55;color:var(--ink)}.route-direction{margin-top:28px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;color:var(--ink)}.route-direction span{display:flex;flex-direction:column;font-weight:700}.route-direction small{font-size:8px;letter-spacing:.15em;color:var(--red)}.route-direction i{font-style:normal;color:var(--gold);font-size:26px}.timetable-section{padding:68px 0 76px;background:var(--red-dark);color:#fff}.timetable-heading{display:flex;align-items:end;justify-content:space-between;gap:60px;margin-bottom:32px}.timetable-heading h2{font-size:clamp(38px,4.2vw,56px)}.timetable-heading h2 em{color:var(--gold-light)}.timetable-heading>p{max-width:390px;color:#d9c8c3;margin:0;font-size:13px}.timetable-pending{display:grid;grid-template-columns:70px 1fr auto;gap:25px;align-items:center;padding:29px 30px;border:1px solid #83505a;background:#5a1721}.pending-icon{width:58px;height:58px;color:var(--gold)}.pending-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.timetable-pending h3{font-size:20px;margin:0 0 4px}.timetable-pending p{font-size:12px;color:#d9c8c3;margin:0}.service-help{padding:72px 0;background:var(--cream)}.service-help-grid{display:grid;grid-template-columns:1fr .8fr;gap:90px;align-items:center}.service-help-grid>div:first-child>p:last-child{color:var(--muted);max-width:570px}.service-contact{border-left:1px solid var(--line);padding-left:45px;display:flex;flex-direction:column;align-items:flex-start}.service-contact span{font-size:9px;letter-spacing:.14em;color:var(--red);font-weight:700}.service-contact a:first-of-type{font-size:30px;color:var(--red-dark);font-weight:700}.service-contact a:last-of-type{font-size:12px;color:var(--muted)}
@media(max-width:1100px){.header nav{gap:13px;font-size:11px}.route-hero-grid{gap:50px}}@media(max-width:850px){.route-hero-grid,.route-overview-grid,.service-help-grid{grid-template-columns:1fr;gap:42px}.route-map-card{height:290px}.route-overview-grid>div:last-child{padding-top:0}.timetable-heading{display:block}.timetable-heading>p{margin-top:18px}.timetable-pending{grid-template-columns:60px 1fr}.timetable-pending .button{grid-column:2;justify-self:start}.service-contact{border-left:0;border-top:1px solid var(--line);padding:28px 0 0}}@media(max-width:600px){.route-hero{padding:45px 0 50px}.route-number{min-width:82px;height:52px;font-size:30px}.route-map-card{height:255px}.route-place strong{font-size:17px}.route-map-card>p{left:9%;right:9%;bottom:22px}.service-status-inner{grid-template-columns:45px 1fr;padding:14px 0}.service-status-inner>a{grid-column:2}.route-overview{padding:62px 0}.timetable-section{padding:54px 0}.timetable-pending{grid-template-columns:1fr;padding:24px 21px}.timetable-pending .button{grid-column:1}.service-help{padding:58px 0}}

/* Complete schematic map and published timetable. */
.route-map-card{height:390px;background:linear-gradient(145deg,#fffdf8,#f3eadb)}.route-map-card:before{background-image:linear-gradient(#d5c8b522 1px,transparent 1px),linear-gradient(90deg,#d5c8b522 1px,transparent 1px);background-size:25px 25px;opacity:1}.map-label{position:absolute;z-index:2;top:18px;left:20px;font-size:8px;letter-spacing:.18em;font-weight:700;color:var(--red)}.route-svg{position:relative;z-index:1;width:100%;height:100%;display:block}.route-svg polyline{fill:none;stroke:var(--red);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 3px 2px #4d111927)}.route-svg circle{r:8;fill:#fff;stroke:var(--red);stroke-width:5}.route-svg .hanmer-dot{r:11;fill:var(--gold-light);stroke:var(--red)}.route-labels text{font:600 15px 'DM Sans',Arial,sans-serif;fill:var(--ink)}.route-labels .hanmer-text{font-weight:700;fill:var(--red)}.map-key{position:absolute;z-index:2;left:20px;bottom:14px;display:flex;gap:17px;font-size:9px;color:var(--muted)}.map-key span{display:flex;align-items:center;gap:6px}.map-key i{width:15px;height:4px;background:var(--red);border-radius:99px}.map-key .hanmer-key i{width:10px;height:10px;border:2px solid var(--red);background:var(--gold-light);border-radius:50%}.route-overview-grid>div:last-child{padding-top:20px}.route-stops{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:24px 0 17px}.route-stops span{padding:7px 10px;border:1px solid var(--line);border-radius:3px;background:#fff;font-size:11px;font-weight:600;color:var(--ink)}.route-stops i{font-style:normal;color:var(--gold);font-weight:700}.route-stops .hanmer-stop{border-color:var(--gold);background:#f6ead2;color:var(--red);box-shadow:inset 0 -2px 0 var(--gold)}.route-note{font-size:11px!important;color:var(--muted);margin:0}.timetable-validity{display:flex;flex-direction:column;align-items:flex-end;padding:11px 15px;border:1px solid #81505a}.timetable-validity strong{font-size:13px;color:var(--gold-light)}.timetable-validity span{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#d8c0c4}.timetable-card{background:#fff;color:var(--ink);border-radius:4px;overflow:hidden;box-shadow:0 18px 42px #27070d55}.timetable-card+.timetable-card{margin-top:24px}.table-title{min-height:78px;padding:14px 22px;display:flex;align-items:center;justify-content:space-between;gap:25px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#fff,#f6efe6)}.table-title>div{display:flex;align-items:center;gap:13px}.direction-arrow{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--red);color:#fff;font-size:21px}.table-title small{display:block;font-size:8px;letter-spacing:.15em;color:var(--red);font-weight:700}.table-title h3{margin:1px 0 0;font-size:19px}.table-title>span{font-size:9px;color:var(--muted)}.table-scroll{overflow-x:auto;overscroll-behavior-inline:contain}.table-scroll table{width:100%;min-width:920px;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}.table-scroll th,.table-scroll td{padding:12px 11px;border-right:1px solid #e8ddd2;border-bottom:1px solid #e8ddd2;text-align:center;font-size:12px;white-space:nowrap}.table-scroll thead th{background:#ede3d7;color:var(--red-dark);font-size:11px;font-weight:700}.table-scroll thead th small{display:block;font-size:7px;letter-spacing:.12em;color:var(--red)}.table-scroll th:first-child{position:sticky;left:0;z-index:2;min-width:180px;text-align:left;background:#faf6f0;box-shadow:5px 0 9px #3e1d1512}.table-scroll thead th:first-child{z-index:3;background:#e4d7c9}.table-scroll tbody tr:last-child th,.table-scroll tbody tr:last-child td{border-bottom:0}.table-scroll tr>td:last-child,.table-scroll tr>th:last-child{border-right:0}.table-scroll tbody tr:nth-child(even):not(.hanmer-row) td{background:#fdfaf7}.table-scroll sup{font-size:7px;color:var(--red);font-weight:700}.table-scroll .hanmer-row th,.table-scroll .hanmer-row td{background:#f4e6c8;color:var(--red-dark);font-weight:700;border-bottom-color:#d8ba7b}.hanmer-row th span{display:block}.hanmer-row th small{display:block;color:#91661d;font-size:7px;letter-spacing:.1em;text-transform:uppercase}.timetable-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.timetable-notes>div{display:flex;gap:10px;padding:13px 15px;border:1px solid #7a424a;background:#5a1721;color:#d9c8c3;font-size:10px}.timetable-notes strong{color:var(--gold-light);white-space:nowrap}.timetable-notes .x46-note{grid-column:1/-1;line-height:1.5}.timetable-notes .x46-note span{max-width:920px}.return-card .direction-arrow{background:var(--gold);color:var(--red-dark)}
@media(max-width:850px){.route-map-card{height:370px}.timetable-validity{align-items:flex-start;display:inline-flex;margin-top:20px}.timetable-card{margin-left:-8px;margin-right:-8px}.table-title>span{display:none}.timetable-notes{grid-template-columns:1fr}.timetable-notes .x46-note{grid-column:auto}}
@media(max-width:600px){.route-map-card{height:300px}.route-svg{transform:scale(1.1);transform-origin:center}.route-labels text{font-size:13px}.map-key{display:none}.route-stops{gap:6px}.route-stops span{font-size:10px;padding:6px 8px}.table-title{padding:12px 14px}.table-title h3{font-size:16px}.table-scroll th,.table-scroll td{padding:10px 9px}.table-scroll th:first-child{min-width:165px}}

/* Neutral timing-point treatment and PDF download. */
.timetable-actions{display:flex;align-items:stretch;gap:10px}.download-button{white-space:nowrap;align-self:stretch}.route-svg .hanmer-dot{r:8;fill:#fff;stroke:var(--red)}.route-labels .hanmer-text{font-weight:600;fill:var(--ink)}.route-stops .hanmer-stop{border-color:var(--line);background:#fff;color:var(--ink);box-shadow:none}.table-scroll .hanmer-row th,.table-scroll .hanmer-row td{background:inherit;color:inherit;font-weight:inherit;border-bottom-color:#e8ddd2}
@media(max-width:850px){.timetable-actions{align-items:flex-start;flex-direction:column;margin-top:20px}.timetable-actions .timetable-validity{margin-top:0}.download-button{align-self:flex-start}}

/* Keep the sticky timing-point column compact on phones. */
@media(max-width:600px){.table-scroll th:first-child{width:116px;min-width:116px;max-width:116px;padding-left:7px;padding-right:7px;white-space:normal;line-height:1.18;font-size:10px;overflow-wrap:anywhere}.table-scroll thead th:first-child{font-size:9px}.table-scroll table{min-width:820px}.table-scroll th,.table-scroll td{padding:10px 8px}}
