/*!
 * Sydney Buses — service page (template-service.php)
 * ---------------------------------------------------------------------------
 * Loaded ONLY on the service template, after assets/css/theme.css and declared
 * dependent on it, so the cascade order is deterministic rather than accidental.
 * See sydb_assets() in functions.php.
 *
 * SCOPE RULE: every selector in this file is anchored to .service-page or to a
 * class that exists only inside it (.svc-rates, .svc-vehicles, .svc-routes,
 * .rtcard, .svc-glance, .ratetable, .svc-closing). Nothing here can reach a
 * component on another template.
 *
 * COLOUR RULE: no colour literal appears below. Every colour is one of the
 * theme's custom properties — --ink, --blue, --cyan-deep, --muted, --line,
 * --white, --surface — so the Harbour Navy palette stays in one place.
 *
 * SPECIFICITY RULE (house rule 8): there is no bare `a[href]` selector in this
 * file. Every anchor rule is reached through its container's class, so it cannot
 * outrank the sizing rules theme.css sections 23 and 24 apply to the utility
 * bar, the footer menu or the brand lockup.
 *
 * WHY A SEPARATE FILE RATHER THAN AN EXTENSION OF theme.css: this file is about
 * 190 lines and is needed on 11 of the site's URLs. theme.css is 199 KB and is
 * needed on all of them. Appending would have been marginally cheaper in bytes
 * for a service visitor and marginally more expensive for everyone else; a
 * conditional file keeps the service-only rules out of every other page's
 * render-blocking critical path and keeps this concern reviewable in one place.
 * Both files carry SYDB_VERSION, so one bump busts both.
 */.service-page .page-hero::before{background:var(--sydb-hero-gradient,linear-gradient(160deg,var(--blue),var(--ink)))}@media (min-width:981px){.svc-lead .svc-intro__body{grid-column:1;grid-row:1}.svc-lead .svc-aside{grid-column:2;grid-row:1}}.service-page .svc-figure{margin:22px 0 0}.service-page .svc-facts{margin:26px 0 0}.service-page .svc-prose{max-width:74ch}.svc-glance{margin:16px 0 0;padding:4px 20px;background:var(--white);border:1px solid var(--line);border-radius:var(--r)}.svc-glance__row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px;padding:13px 0;border-bottom:1px solid var(--line)}.svc-glance__row:last-child{border-bottom:0}.svc-glance dt{margin:0}.svc-glance dd{margin:0;text-align:right}.ratetable{position:relative}.ratetable__hint{display:none;align-items:center;gap:7px;margin:0 0 10px;font-size:13.5px;color:var(--muted)}.ratetable .tablewrap:focus-visible{outline:3px solid var(--cyan-deep);outline-offset:2px}.svc-rates__sub,.svc-vehicles__sub{margin:38px 0 12px}.svc-rates__note{margin:0 0 18px;max-width:74ch}.service-page .svc-excludes{margin:22px 0 0}.svc-rates .case h4{font-family:var(--display);font-size:18px;font-weight:600;line-height:1.25;color:var(--ink);margin:0 0 14px}.svc-rates .case .tablewrap>.ptable{min-width:0}.svc-rates .case .ptable{border:0}.svc-rates .case .ptable td,.svc-rates .case .ptable th{padding:10px 2px;font-size:14.5px}.svc-rates .case .ptable th[scope=row]{font-family:var(--body);font-weight:400;color:var(--muted)}.svc-rates .case .ptable tbody tr:hover{background:0 0}.svc-rates .case .ptable caption{padding:12px 2px 0;font-size:12.5px}.svc-assumptions{margin:8px 0 0}@media (min-width:980px){.svc-assumptions{display:grid;grid-template-columns:1fr 1fr;column-gap:44px;align-items:start}.svc-assumptions details.q:nth-child(2){border-top:1px solid var(--line)}}.svc-ladder .fc h4{font-family:var(--display);font-size:17px;font-weight:600;margin:0 0 12px;color:var(--ink)}.svc-ladder__note{margin:18px 0 0;max-width:80ch}.routes--cards{align-items:start}.rtcard{min-width:0;background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px 6px}.rtcard .route{background:0 0;border:0;border-radius:0;padding:0;min-height:44px}.rtcard .route:hover{transform:none}.rtcard .route:hover strong{color:var(--blue)}.rtcard .route .rtcard__text{display:block;min-width:0;margin:0;font-size:inherit;color:inherit}.rtcard__strip{margin:12px 0 0}.rtcard__advice{border-bottom:0;background:0 0}.rtcard__advice>summary{font-size:15px;padding:14px 32px 14px 0}.rtcard__advice>summary::after{top:22px;width:9px;height:9px}.rtcard__advice[open]>summary::after{top:25px}.rtcard__advice .a{padding:0 0 16px;font-size:14.5px}.svc-closing .contact-grid{align-items:start}.svc-closing .contact-grid>div>.lede{max-width:58ch}.svc-closing .pricing-note{color:var(--line)}@media (max-width:900px){.service-page .areanote a{display:inline-flex;align-items:center;min-height:44px}.service-page details.q>summary{min-height:48px;box-sizing:border-box}.service-page .quote-fallback__actions .btn{min-width:0;height:auto;min-height:54px;padding:12px 14px;font-size:15.5px;line-height:1.25;text-align:center;overflow-wrap:anywhere}.ratetable__hint{display:flex}.ratetable .tablewrap>.ptable{min-width:560px}.ratetable .ptable td,.ratetable .ptable th{padding:13px 12px;font-size:14.5px}.ratetable .ptable thead th{font-size:12.5px}}@media (max-width:760px){.svc-rates .case{padding:20px 18px}.svc-glance dd{text-align:left}.svc-glance__row{display:block}.svc-glance__row dd{margin-top:2px}}@media print{.service-page .rtcard__advice .a,.service-page .svc-assumptions details.q .a{display:block!important}.service-page .ratetable__hint,.service-page .svc-closing{display:none!important}.rtcard{break-inside:avoid}}@media (forced-colors:active){.rtcard{border:1px solid CanvasText}.svc-glance{border:1px solid CanvasText}.ratetable .tablewrap:focus-visible{outline:3px solid CanvasText}}