/* Route 1 follows the XD artboard; other routes keep their original styles. */
body.single-coast_route .site,body.single-coast_route .site-content { max-width:none; width:100%; padding:0; }
body.single-coast_route .site-content { display:block; }
body.single-coast_route #primary.coast-route-template { margin:0; max-width:none; width:100%; padding:0; }
/* Match the fares band through the footer PNG's transparent wave tops. */
body.single-coast_route .site-footer .gb-element-7beebbd0 { background-image:var(--inline-bg-image),linear-gradient(to bottom,#f7f7f8 0,#f7f7f8 7vw,#152a59 7vw,#152a59 100%) !important; }
.coast-route-template { background:#fff; color:#3b3839; font-size:18px; font-weight:400; line-height:1.4; }
.coast-route-template *,.coast-route-template *::before,.coast-route-template *::after { box-sizing:border-box; letter-spacing:0; }
.coast-route-template [hidden] { display:none !important; }
.coast-route-template > :not(dialog) { margin-block:0; }
.coast-route-template :is(h1,h2,h3,p,ul) { margin-top:0; }
.coast-route-template :is(h2,h3) { color:#004280; line-height:1.2; }
.coast-route-template h2 { font-size:34px; margin-bottom:10px; font-weight:700; }
.coast-route-template h3 { font-size:28px; margin-bottom:16px; font-weight:500; }
.coast-route-template p { margin-bottom:18px; }
.coast-route-template a { color:#07586b; text-underline-offset:3px; }
.coast-route-template :is(a,button,input,select,summary,[tabindex]):focus-visible { outline:3px solid #087a87; outline-offset:4px; }
.coast-route-template :is(section,div)[id] { scroll-margin-top:28px; }
.crt-container { width:calc(100% - 80px); max-width:1508px; margin-inline:auto; }
.crt-hero { position:relative; width:100%; min-width:0; min-height:360px; aspect-ratio:1920 / 629; isolation:isolate; }
.crt-hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; z-index:-1; }
.crt-hero-inner { min-height:inherit; height:100%; position:absolute; inset:0; max-width:1604px; display:flex; align-items:center; justify-content:flex-end; }
.crt-hero-title { color:#fff; width:56%; padding:24px 32px; border-radius:20px; background:rgb(255 255 255 / 18%); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.crt-hero-title h1 { font-size:56px; font-weight:900; line-height:1.2; color:#fff; margin:0 0 8px; text-shadow:0 1px 1px #26303d,0 2px 5px #26303d; -webkit-text-stroke:1.5px #26303d; paint-order:stroke fill; }
.crt-hero-title p { font-size:37px; font-weight:900; line-height:1.35; margin:0; text-shadow:0 1px 1px #26303d,0 2px 5px #26303d; -webkit-text-stroke:1.5px #26303d; paint-order:stroke fill; }
.crt-route-number { display:inline-flex; justify-content:center; align-items:center; min-width:1.13em; height:1.13em; padding:0 .1em; background:var(--coast-route-color,#ead632); color:var(--coast-route-contrast,#243044); border-radius:.2em; vertical-align:baseline; text-shadow:none; }
.crt-overview { display:grid; grid-template-columns:23% minmax(0,1fr); gap:11%; max-width:1228px; padding-block:80px 92px; align-items:start; }
.crt-jump-links { display:grid; gap:26px; }
.coast-route-template :is(.crt-button,.crt-jump-links a,.crt-jump-links button) { display:inline-flex; min-height:56px; align-items:center; justify-content:center; background:#004280; color:#fff; text-decoration:none; border:0; border-radius:10px; padding:12px 16px; font-size:19px; font-weight:700; line-height:1.2; cursor:pointer; }
.coast-route-template :is(.crt-button,.crt-jump-links a,.crt-jump-links button):hover { background:#087b8a; }
.crt-outlined { border:8px solid #dbc61d; border-radius:20px; padding:36px 42px; }
.crt-outlined h2 { font-size:56px; font-weight:900; margin-bottom:0; }
.crt-outlined h3 { margin-bottom:20px; }
.crt-outlined > :last-child,.crt-outlined p:last-child { margin-bottom:0; }
.crt-announcements { min-height:384px; }
.crt-transit { background-position:center; background-repeat:no-repeat; background-size:100% 100%; background-color:#152a59; color:#fff; text-align:center; padding:36px 0; }
.crt-transit h2 { color:#fff; display:flex; align-items:center; justify-content:center; gap:14px; font-size:34px; }
.crt-transit h2 img { width:56px; height:56px; object-fit:contain; flex:0 0 56px; }
.crt-transit p { max-width:840px; margin:14px auto 20px; font-size:19px; font-weight:500; }
.crt-store-links { position:relative; width:min(100%,395px); margin:auto; display:flex; }
.crt-store-links img { display:block; width:100%; height:auto; }
.crt-store-links a { position:absolute; top:0; bottom:0; width:49%; min-height:44px; }
.crt-store-links a:first-of-type { left:0; }
.crt-store-links a:last-of-type { right:0; }
.crt-transit a:focus-visible { outline-color:#fff; }
.crt-schedule { max-width:1508px; padding-block:60px 24px; }
.crt-section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.crt-section-heading h2 { color:#3b3839; font-size:28px; }
.crt-effective { font-size:16px; font-weight:500; display:inline-block; }
.crt-document-links { display:flex; gap:22px; flex-wrap:wrap; font-size:14px; }
.crt-document-links a { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding-block:10px; color:#3b3839; font-weight:700; text-decoration:none; }
.crt-document-links a:hover { text-decoration:underline; }
.crt-document-links img { display:block; flex:0 0 24px; width:24px; height:24px; }
.crt-schedule-controls { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.crt-service-buttons,.crt-direction-buttons { display:flex; gap:4px; flex-wrap:wrap; }
.crt-schedule-controls button { min-height:44px; min-width:150px; padding:10px 18px; border:0; background:#f0f1f3; color:#3b3839; font-size:14px; font-weight:500; text-transform:uppercase; }
.crt-schedule-controls button[aria-pressed="true"] { background:#3b3839; color:#fff; }
.crt-all-stops { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:500; min-height:44px; cursor:pointer; color:#07586b; margin-top:8px; }
.crt-all-stops input { accent-color:#07586b; width:18px; height:18px; }
.coast-route-template .coast-schedule-table-group { margin:0; padding:0; border:0; }
.coast-route-template .coast-schedule-table-scroll { border:0; }
.coast-route-template .coast-schedule-table { margin:0; font-size:12px; min-width:var(--coast-schedule-min-width,1000px); width:100%; border:0; table-layout:fixed; }
.coast-route-template .crt-timetables .coast-schedule-table :is(td,th) { padding:15px 8px; border:1px solid #f2f2f2; color:#3b3839; font-weight:500; background:#fff; }
.coast-route-template .coast-schedule-table td:nth-child(even) { background:#f0f0f0; }
.coast-route-template .coast-schedule-table col:first-child { width:210px; }
.coast-route-template .coast-schedule-table tbody th[scope="row"] { position:sticky; left:0; z-index:1; font-size:12px; text-align:left; white-space:normal; }
.coast-route-template .coast-schedule-table .crt-city-heading th { text-align:left; color:#07586b; font-size:22px; padding:26px 0 10px; border:0; background:#fff; }
.crt-schedule-legend { font-size:12px; color:#50565f; margin-top:8px; }
.crt-notes-planner { display:grid; grid-template-columns:minmax(0,725fr) minmax(0,602fr); gap:8.7%; max-width:1454px; padding-block:32px 80px; align-items:start; }
.crt-outlined ul { margin:14px 0 0 18px; padding:0; }
.crt-outlined li { padding-left:4px; margin-bottom:8px; font-size:18px; }
.crt-outlined li::marker { color:#087a87; }
.crt-planner { border-radius:20px; overflow:hidden; background:#f7f7f8; box-shadow:0 4px 12px #0003; }
.crt-planner h2 { display:flex; justify-content:center; align-items:center; gap:10px; min-height:80px; font-size:27px; padding:18px; margin:0; background:#004280; color:#fff; font-weight:500; }
.crt-planner h2 img { object-fit:contain; width:34px; height:34px; }
.crt-planner-body { padding:24px 32px 20px; }
.crt-planner fieldset { border:0; padding:0; margin:0; min-width:0; }
.crt-planner label { font-size:18px; }
.crt-planner :is(input,select) { background:#fff; border:1px solid #707070; border-radius:0; color:#50565f; padding:10px 12px; height:50px; width:100%; min-width:0; margin:0 0 16px; font-size:18px; opacity:1; -webkit-text-fill-color:#50565f; }
.crt-planner input::placeholder { color:#626262; opacity:1; }
.coast-route-template .crt-planner input[type="text"] { background:#fff; border:1px solid #707070; padding:10px 12px; }
.crt-plan-by { display:grid; grid-template-columns:auto minmax(0,1fr); gap:14px; align-items:baseline; }
.crt-planner-dates { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.crt-planner .crt-current-location { display:block; margin:-10px 0 18px; padding:0; border:0; color:#3b3839; font-size:13px; line-height:1.4; background:none; opacity:1; }
.crt-planner .crt-search { font-size:18px; background:#008395; color:#fff; border-radius:10px; min-height:50px; padding:10px 24px; font-weight:700; text-transform:uppercase; opacity:1; }
.crt-planner :disabled { cursor:not-allowed; }
.crt-planner #crt-planner-status { font-size:13px; color:#50565f; margin:14px 0 0; }
.crt-map { height:740px; background:#eefafc; position:relative; z-index:0; }
.crt-map-status { padding:36px; text-align:center; }
.crt-map .leaflet-control-attribution { font-size:11px; }
.crt-wotr { max-width:1562px; position:relative; padding-block:66px 68px; }
.crt-wotr-sticker { width:260px; height:260px; float:right; margin:-160px 2% 24px 44px; position:relative; z-index:1; transform:rotate(-6deg); }
.crt-wotr-intro { max-width:69%; }
.crt-wotr-intro h2 { color:#004280; font-size:34px; }
.crt-wotr-intro p { font-size:18px; }
.crt-wotr .coast-wotr-directory { clear:both; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:0 8.5%; margin:44px 0; max-width:none; }
.crt-wotr .coast-wotr-category-panel { border-bottom:1px solid #d9dde2; min-width:0; }
.crt-wotr summary,.crt-faqs summary { padding:24px 30px 24px 0; font-size:23px; font-weight:700; color:#004280; cursor:pointer; position:relative; list-style:none; }
.crt-wotr summary::-webkit-details-marker,.crt-faqs summary::-webkit-details-marker { display:none; }
.crt-wotr summary::after,.crt-faqs summary::after { content:''; width:12px; height:12px; border-right:2px solid #087a87; border-bottom:2px solid #087a87; transform:translateY(-70%) rotate(45deg); position:absolute; right:6px; top:50%; }
.crt-wotr details[open] > summary::after,.crt-faqs details[open] > summary::after { transform:translateY(-30%) rotate(225deg); }
.crt-wotr .coast-wotr-list { list-style:none; padding:0; margin:10px 0 20px; }
.crt-wotr .coast-wotr-list-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; margin-bottom:24px; }
.crt-wotr .coast-wotr-list-item h4 { font-size:18px; font-weight:600; margin:0 0 5px; }
.crt-wotr .coast-wotr-list-item address { font-size:16px; font-style:normal; }
.crt-wotr .coast-wotr-location { min-width:0; overflow-wrap:break-word; }
.crt-wotr .coast-stop-badges { align-self:start; flex-wrap:nowrap; }
.crt-wotr .coast-stop-badge { width:34px; height:34px; font-size:14px; }
.crt-wotr .coast-stop-tooltip { right:0; left:auto; transform:none; font-weight:500; font-size:14px; width:max-content; max-width:min(230px,65vw); text-align:left; padding:12px 16px; pointer-events:auto; }
.crt-wotr .coast-stop-tooltip::after { left:auto; right:10px; transform:none; }
.crt-wotr .coast-stop-tooltip::before { content:''; position:absolute; inset:100% 0 -12px; }
.crt-wotr .coast-stop-badge-wrap:hover .coast-stop-tooltip,.crt-wotr .coast-stop-badge-wrap:focus-within .coast-stop-tooltip { opacity:1; visibility:visible; }
.crt-wotr .coast-stop-badge-wrap[data-dismissed] .coast-stop-tooltip { opacity:0; visibility:hidden; }
.crt-all-routes { text-align:center; margin:40px 0 0 !important; }
.crt-all-routes .crt-button { min-width:210px; }
.crt-fares { background:#f7f7f8; padding-block:76px 80px; }
.crt-fares-inner { display:grid; grid-template-columns:minmax(0,847fr) minmax(0,565fr); gap:6.36%; align-items:start; }
.crt-fares-inner > img { width:100%; height:auto; display:block; border-radius:24px; }
.crt-fares-inner h2 { font-size:34px; color:#144069; margin-top:10px; }
.crt-fares-inner p { font-size:18px; margin-bottom:16px; }
.coast-route-template > dialog.crt-dialog { position:fixed; inset:0; margin:auto !important; overflow-y:auto; width:min(680px,calc(100% - 40px)); max-height:calc(100% - 64px); padding:28px; border:0; border-radius:8px; color:#3b3839; background:#fff; }
.crt-dialog::backdrop { background:#0008; }
.crt-dialog-header { display:flex; align-items:start; justify-content:space-between; gap:20px; }
.crt-dialog-header h2 { font-size:28px; }
.crt-dialog-header button { background:#004280; color:#fff; border-radius:4px; padding:10px 16px; min-height:44px; font-size:16px; }
.crt-faqs details { border-bottom:1px solid #d9dde2; }
.crt-faqs summary { font-size:19px; }
.crt-faqs details p { font-size:17px; }
@media (min-width:1600px) {
  .coast-route-template { font-size:25px; }
  .crt-hero-title { width:899px; min-height:266px; padding:29px 23px 25px; border-radius:26px; }
  .crt-hero-inner { padding-bottom:55px; }
  .crt-hero-title h1 { font-size:75px; margin-left:40px; }
  .crt-hero-title p { font-size:55px; line-height:1.4; }
  .crt-overview { padding-block:109px 127px; grid-template-columns:279px minmax(0,1fr); gap:135px; }
  .crt-jump-links { gap:38px; }
  .coast-route-template :is(.crt-button,.crt-jump-links a,.crt-jump-links button) { min-height:73px; font-size:25px; border-radius:14px; }
  .crt-outlined { border-width:10px; border-radius:26px; padding:44px 54px; }
  .crt-announcements { border-width:14px; min-height:519px; padding:44px 69px; }
  .crt-outlined h2 { font-size:75px; }
  .crt-outlined h3 { font-size:42px; margin-bottom:24px; }
  .crt-outlined li { font-size:25px; margin-bottom:8px; }
  .crt-transit { min-height:353px; padding-block:34px; }
  .crt-transit h2 { font-size:45px; }
  .crt-transit h2 img { width:76px; height:76px; flex-basis:76px; }
  .crt-transit p { font-size:25px; max-width:1050px; margin:14px auto 20px; }
  .crt-store-links { width:526px; }
  .crt-schedule { padding-block:81px 32px; }
  .crt-section-heading h2 { font-size:32px; }
  .coast-route-template .crt-timetables .coast-schedule-table :is(td,th) { padding-block:15px; font-size:14px; }
  .coast-route-template .coast-schedule-table tbody th[scope="row"] { font-size:14px; }
  .coast-route-template .coast-schedule-table .crt-city-heading th { font-size:26px; padding-top:32px; padding-bottom:14px; }
  .crt-notes-planner { max-width:1496px; padding-block:44px 107px; padding-right:42px; }
  .crt-planner { border-radius:26px; }
  .crt-planner h2 { min-height:107px; font-size:35px; }
  .crt-planner h2 img { width:44px; height:44px; }
  .crt-planner-body { padding:30px 45px 24px; }
  .crt-planner :is(input,select) { height:66px; font-size:25px; margin-bottom:20px; }
  .crt-planner label { font-size:25px; }
  .crt-planner .crt-current-location { font-size:18px; margin-bottom:22px; }
  .crt-planner .crt-search { font-size:25px; min-height:66px; min-width:162px; }
  .crt-planner #crt-planner-status { font-size:16px; }
  .crt-map { height:984px; }
  .crt-wotr { padding-block:90px 96px; }
  .crt-wotr-sticker { width:347px; height:347px; margin-top:-220px; margin-right:3%; }
  .crt-wotr-intro { max-width:932px; }
  .crt-wotr-intro h2 { font-size:45px; margin-bottom:18px; }
  .crt-wotr-intro p { font-size:25px; }
  .crt-wotr .coast-wotr-directory { margin-top:58px; margin-bottom:54px; }
  .crt-wotr summary { font-size:30px; padding-block:30px; }
  .crt-wotr .coast-wotr-list-item h4 { font-size:21px; }
  .crt-wotr .coast-wotr-list-item address { font-size:19px; }
  .crt-all-routes .crt-button { min-width:279px; }
  .crt-fares { padding-block:102px; }
  .crt-fares-inner h2 { font-size:45px; margin-bottom:20px; }
  .crt-fares-inner p { font-size:25px; margin-bottom:20px; }
}
@media (max-width:1100px) {
  .coast-route-template { font-size:16px; }
  .crt-container { width:calc(100% - 64px); }
  .crt-hero-title { width:59%; padding:24px; }
  .crt-hero-title h1 { font-size:44px; }
  .crt-hero-title p { font-size:28px; }
  .crt-overview { gap:7%; grid-template-columns:26% minmax(0,1fr); padding-block:54px; }
  .crt-jump-links { gap:20px; }
  .coast-route-template :is(.crt-button,.crt-jump-links a,.crt-jump-links button) { font-size:16px; min-height:50px; }
  .crt-outlined { border-width:5px; border-radius:16px; padding:28px; }
  .crt-outlined h2 { font-size:40px; }
  .crt-outlined h3 { font-size:26px; }
  .crt-announcements { min-height:330px; }
  .crt-transit h2 { font-size:30px; }
  .crt-transit p { font-size:17px; }
  .crt-notes-planner { gap:5%; padding-bottom:65px; }
  .crt-outlined li { font-size:16px; }
  .crt-planner-body { padding:22px; }
  .crt-planner h2 { font-size:24px; }
  .crt-planner :is(input,select),.crt-planner label { font-size:16px; }
  .crt-planner-dates { gap:8px; }
  .crt-planner :is(input,select) { padding-inline:8px; }
  .crt-map { height:600px; }
  .crt-wotr-sticker { width:205px; height:205px; margin-top:-135px; margin-left:20px; }
  .crt-wotr-intro h2 { font-size:30px; }
  .crt-wotr-intro p { font-size:16px; }
  .crt-wotr summary { font-size:20px; }
  .crt-fares-inner h2 { font-size:28px; }
  .crt-fares-inner p { font-size:16px; }
}
@media (max-width:760px) {
  .crt-hero-title h1 { font-size:36px; }
  .crt-hero-title p { font-size:24px; }
  .crt-overview { grid-template-columns:1fr; gap:28px; }
  .crt-jump-links { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
  .crt-announcements { min-height:0; }
  .crt-notes-planner { grid-template-columns:1fr; gap:32px; }
  .crt-planner-body { padding:26px; }
  .crt-planner :is(input,select) { font-size:18px; }
  .crt-wotr-sticker { width:155px; height:155px; margin-top:-105px; margin-left:18px; }
  .crt-wotr-intro { max-width:100%; }
  .crt-fares-inner { grid-template-columns:1fr; gap:32px; }
}
@media (max-width:480px) {
  .crt-container { width:calc(100% - 40px); }
  .crt-hero { min-height:350px; }
  .crt-hero-photo { object-position:30% center; }
  .crt-hero-inner { justify-content:flex-start; align-items:flex-end; padding-bottom:24px; }
  .crt-hero-title { width:100%; padding:18px 22px; border-radius:16px; }
  .crt-hero-title h1 { font-size:32px; margin-bottom:8px; }
  .crt-hero-title p { font-size:20px; }
  .crt-overview { padding-block:36px; }
  .crt-jump-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .coast-route-template :is(.crt-jump-links a,.crt-jump-links button) { padding:10px 8px; font-size:14px; }
  .crt-outlined { padding:22px; }
  .crt-outlined h2 { font-size:36px; }
  .crt-outlined h3 { font-size:24px; }
  .crt-transit { padding-block:30px; background-size:auto 100%; }
  .crt-transit h2 { font-size:22px; align-items:center; text-align:left; }
  .crt-transit h2 img { width:44px; height:44px; flex-basis:44px; }
  .crt-transit p { font-size:16px; }
  .crt-schedule { padding-block:36px 10px; }
  .crt-schedule-controls { gap:8px; }
  .crt-schedule-controls button { min-width:0; font-size:12px; padding-inline:10px; }
  .crt-notes-planner { padding-block:24px 48px; }
  .crt-map { height:450px; }
  .crt-wotr { padding-top:38px; padding-bottom:44px; }
  .crt-wotr-sticker { width:120px; height:120px; margin:-85px -4px 8px 10px; }
  .crt-wotr-intro h2 { font-size:26px; max-width:180px; }
  .crt-wotr .coast-wotr-directory { grid-template-columns:1fr; margin-top:24px; }
  .crt-wotr summary { font-size:20px; padding-block:20px; }
  .crt-wotr .coast-wotr-list-item { gap:12px; }
  .crt-wotr .coast-wotr-list-item h4 { font-size:16px; }
  .crt-wotr .coast-wotr-list-item address { font-size:14px; }
  .crt-fares { padding-block:36px 48px; }
  .crt-fares-inner > img { border-radius:16px; }
  .crt-dialog { padding:22px; }
}
@media (prefers-reduced-motion:reduce) { .coast-route-template * { scroll-behavior:auto !important; transition:none !important; } }
.crt-travel-date { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-block:16px; }
/* Keep the XD's inset content while retaining full-width image bands. */
.coast-route-template :is(.crt-schedule,.crt-notes-planner,.crt-wotr,.crt-fares-inner){width:78%;max-width:1496px}
.coast-route-template .crt-overview{width:64%;max-width:1228px;grid-template-columns:23% minmax(0,1fr);gap:11%}
.coast-route-template .crt-outlined{border-width:3px;border-radius:8px;padding:28px 32px}
.coast-route-template .crt-announcements{min-height:0}
.coast-route-template :is(.crt-hero-title,.crt-planner,.crt-button,.crt-jump-links a,.crt-jump-links button){border-radius:8px}
.coast-route-template .crt-fares-inner{grid-template-columns:1fr 1fr;align-items:center}
.coast-route-template .crt-fares-inner>img{height:auto;max-height:360px;object-fit:cover;aspect-ratio:848/565;border-radius:8px}
@media(max-width:1100px){.coast-route-template .crt-overview{width:78%}}
@media(max-width:760px){.coast-route-template :is(.crt-overview,.crt-schedule,.crt-notes-planner,.crt-wotr,.crt-fares-inner){width:calc(100% - 40px)}.coast-route-template .crt-overview,.coast-route-template .crt-fares-inner{grid-template-columns:1fr;gap:28px}.coast-route-template .crt-outlined{padding:22px}.coast-route-template .crt-fares-inner>img{max-height:300px}}
.crt-travel-date :is(input,button) { min-height:44px; max-width:100%; font:inherit; }
.crt-travel-date label { font-weight:600; }
.crt-stop-rule { display:block; white-space:normal; overflow-wrap:anywhere; margin-top:4px; line-height:1.4; }
.crt-travel-date :is(input,button):focus-visible { outline:3px solid #004280; outline-offset:3px; }
/* Overview proportions follow the client's enlarged reference. */
.coast-route-template .crt-overview{width:75%;max-width:1120px;grid-template-columns:minmax(170px,23%) minmax(0,1fr);gap:11%;padding:76px 0 86px;align-items:stretch}
.coast-route-template .crt-overview .crt-jump-links{gap:26px;align-content:start}
.coast-route-template .crt-overview .crt-jump-links :is(a,button){min-height:50px;padding:12px 16px;font-size:16px;line-height:1.25;border-radius:10px}
.coast-route-template .crt-overview .crt-announcements{border:8px solid #dbc61d;border-radius:16px;padding:38px 42px;min-height:354px}
.coast-route-template .crt-overview .crt-announcements h2{font-size:46px;line-height:1.15;margin:0}
.coast-route-template .crt-overview .crt-announcements h3{font-size:28px;line-height:1.25;margin:0 0 24px}
.coast-route-template .crt-overview .crt-announcements p{font-size:16px;line-height:1.45}
@media(max-width:900px){.coast-route-template .crt-overview{width:calc(100% - 64px);gap:7%}.coast-route-template .crt-overview .crt-announcements{padding:28px}}
@media(max-width:760px){.coast-route-template .crt-overview{width:calc(100% - 40px);grid-template-columns:1fr;gap:28px;padding-block:36px}.coast-route-template .crt-overview .crt-jump-links{gap:10px}.coast-route-template .crt-overview .crt-announcements{min-height:0;border-width:6px;padding:24px}.coast-route-template .crt-overview .crt-announcements h2{font-size:36px}.coast-route-template .crt-overview .crt-announcements h3{font-size:24px}.coast-route-template .crt-overview .crt-jump-links :is(a,button){font-size:14px;padding:10px 8px}}

/* Round 1 design refinements. */
.coast-route-template .crt-hero-title{width:min(44%,620px);margin-right:3%}
@media(min-width:761px){.coast-route-template.crt-route-1 .crt-hero-title{width:max-content;max-width:min(44%,620px)}}
.coast-route-template .crt-hero-title :is(h1,p){-webkit-text-stroke:0;text-shadow:0 3px 8px rgb(0 0 0 / 70%)}
.coast-route-template .crt-hero-title p{font-size:clamp(25px,2.25vw,34px)}
.coast-route-template .crt-route-number{font-size:.78em;font-weight:700;color:#fff;background:#dbc61d;text-shadow:0 2px 4px rgb(0 0 0 / 40%)}
.coast-route-template .crt-overview .crt-announcements{min-height:0;padding-bottom:24px}
.coast-route-template .crt-overview .crt-announcements{align-self:start}
.coast-route-template .crt-outlined:not(.crt-announcements){padding:46px 50px}
.coast-route-template .crt-outlined li::marker,.coast-route-template .crt-outlined a,.coast-route-template .crt-fares-inner a{color:#01a8c1}
.coast-route-template .crt-planner h2{min-height:60px;padding:12px;font-size:24px}
.coast-route-template .crt-planner-body{padding:18px 24px}
.coast-route-template .crt-planner label{font-size:15px}
.coast-route-template .crt-planner :is(input,select){height:42px;margin-bottom:10px;font-size:16px}
.coast-route-template .crt-planner .crt-search{min-height:44px;font-size:16px;background:#004280}
.coast-route-template .crt-planner .crt-search:hover{background:#01a8c1}
.coast-route-template .crt-wotr-sticker{width:220px;height:220px;margin-top:-145px}
.coast-route-template .crt-wotr summary::after{width:16px;height:16px;border-color:#01bedb;border-width:3px;border-radius:2px}
.coast-route-template .crt-all-routes .crt-button:hover{background:#01a8c1}
.coast-route-template .crt-fares-inner>img{height:100%;max-height:320px;aspect-ratio:auto;object-fit:cover}
@media(min-width:1600px){.coast-route-template .crt-wotr-sticker{width:290px;height:290px;margin-top:-185px}}
@media(max-width:760px){.coast-route-template .crt-hero-title{width:100%;margin-right:0}.coast-route-template .crt-outlined:not(.crt-announcements){padding:24px}.coast-route-template .crt-wotr-sticker{width:145px;height:145px;margin-top:-95px}.coast-route-template .crt-fares-inner>img{height:auto;max-height:300px;aspect-ratio:848/565}}
.coast-route-template #schedule-notes{border-width:8px}
@media(max-width:760px){.coast-route-template #schedule-notes{border-width:6px}}
.coast-route-template:not(.crt-route-1) .crt-outlined,
.coast-route-template:not(.crt-route-1) .crt-overview .crt-announcements{border-color:var(--coast-route-color,#dbc61d)}
.coast-route-template:not(.crt-route-1) .crt-route-number{background:var(--coast-route-color,#dbc61d);color:var(--coast-route-contrast,#fff)}
.coast-route-template .crt-wotr-sticker{width:190px;height:190px;margin-top:-125px}
@media(min-width:1600px){.coast-route-template .crt-wotr-sticker{width:245px;height:245px;margin-top:-160px}}
@media(max-width:760px){.coast-route-template .crt-wotr-sticker{width:120px;height:120px;margin-top:-85px}}
@media(min-width:761px){.coast-route-template .crt-fares-inner{align-items:stretch}.coast-route-template .crt-fares-inner>img{height:100%;max-height:none}}
.coast-route-template .crt-generic-hero .crt-hero-inner{justify-content:flex-start}
.coast-route-template .crt-generic-hero .crt-hero-title{margin-left:3%;margin-right:0;background:rgb(0 42 76 / 58%)}
@media(min-width:761px){.coast-route-template:is(.crt-route-13,.crt-route-33) .crt-hero-inner{justify-content:flex-start}.coast-route-template:is(.crt-route-13,.crt-route-33) .crt-hero-title{margin-left:3%;margin-right:0}}
@media(max-width:760px){.coast-route-template .crt-generic-hero .crt-hero-photo{object-position:78% center}.coast-route-template .crt-generic-hero .crt-hero-title{margin-left:0}}
@media(max-width:760px){.coast-route-template:not(.crt-route-1) .crt-hero-photo{object-position:15% center}.coast-route-template:is(.crt-route-13,.crt-route-33) .crt-hero-photo{object-position:85% center}}
@media(max-width:760px){.coast-route-template:is(.crt-route-13,.crt-route-33) .crt-hero-inner{align-items:flex-start;padding-top:20px;padding-bottom:0}}
.coast-route-template .crt-editorial-content{width:75%;max-width:1120px;padding:0 0 64px}
.coast-route-template .crt-editorial-content>*:last-child{margin-bottom:0}
@media(max-width:760px){.coast-route-template .crt-editorial-content{width:calc(100% - 40px);padding-bottom:36px}}
@media print {
  .crt-schedule-controls,.crt-all-stops,.crt-planner,.crt-map,.crt-transit,.crt-jump-links { display:none !important; }
  .coast-route-template [data-schedule-panel][hidden],.coast-route-template :is(tr,tbody)[hidden] { display:revert !important; }
  .coast-schedule-table-scroll { overflow:visible; }
  .coast-route-template .coast-schedule-table { min-width:0; font-size:8px; }
}

/* Compact schedule cells without shrinking stop names to illegible sizes. */
.coast-route-template .crt-timetables .coast-schedule-table :is(td,th[scope=row]){padding:8px 6px;font-size:.875rem !important;line-height:1.4;font-variant-numeric:tabular-nums}
.coast-route-template .crt-timetables .coast-schedule-table td.crt-timed{font-weight:700}
.coast-route-template .crt-timetables .coast-schedule-table td.crt-other{font-weight:400}
.coast-route-template .crt-timetables .coast-schedule-table td.crt-no-run{background:#e0e6ec;color:#33475a}
.coast-route-template .coast-schedule-table col:first-child{width:200px}
.coast-route-template #schedule-notes ul{list-style:disc outside;padding-inline-start:1.35em}
.crt-printable-stops{margin-block:.8em}.crt-printable-stops summary{cursor:pointer;text-decoration:underline;color:#07586b}

/* Service-day links use actual GTFS service dates. */
.crt-day-choices{display:flex;gap:8px;margin:16px 0;flex-wrap:wrap}
.crt-day-choices .crt-day-choice{padding:10px 20px;border:2px solid #00467f;border-radius:4px;color:#00467f;background:#fff;text-decoration:none;font-weight:700}
.crt-day-choices .crt-day-choice[aria-current],.crt-day-choices .crt-day-choice:hover{background:#00467f;color:#fff}
.crt-day-choice:focus-visible{outline:3px solid #00b2cd;outline-offset:3px}
