:root{--ink:#142a35;--cream:#f7f3ea;--paper:#fffaf1;--red:#c95135;--yellow:#f4ba45;--green:#38574a;--muted:#465a59}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:4rem}body{margin:0;background:var(--cream);color:var(--ink);font-family:Georgia,serif}a:focus-visible,button:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}.announcement{padding:.8rem 7%;background:var(--red);color:#fff9ef;text-align:center;font:700 .72rem Arial,sans-serif;letter-spacing:.08em}.site-header{min-height:5.6rem;padding:0 7%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d8d0c1}.wordmark{color:var(--ink);font-size:1.6rem;font-weight:700;line-height:.76;letter-spacing:-.07em;text-decoration:none}.wordmark span,.wordmark small{display:block}.wordmark small{margin-top:.55rem;color:var(--green);font:700 .5rem Arial,sans-serif;letter-spacing:.17em}.desktop-nav{display:flex;gap:1.6rem;align-items:center;font:700 .78rem Arial,sans-serif}.desktop-nav a,.mobile-nav a{color:var(--ink);text-decoration:none}.desktop-nav a.is-active,.mobile-nav a.is-active{color:var(--red)}.desktop-nav .nav-contact{padding:.8rem 1.1rem;background:var(--ink);color:#fff9ef}.mobile-nav{display:none}.hero{display:grid;grid-template-columns:.87fr 1.13fr;min-height:33rem}.hero__copy,.feature>div{display:flex;flex-direction:column;justify-content:center}.hero__copy{padding:5rem 11% 4rem 14%}.eyebrow{margin:0 0 1.1rem;color:var(--red);font:700 .69rem Arial,sans-serif;letter-spacing:.15em;text-transform:uppercase}.eyebrow--light{color:#fff9ef}.eyebrow--gold{color:var(--yellow)}h1,h2,h3{letter-spacing:-.07em;line-height:.92}h1{margin:0 0 1.5rem;font-size:clamp(3rem,5.5vw,4.7rem)}h2{margin:.4rem 0 1.1rem;font-size:clamp(2.3rem,4.2vw,3.2rem)}p{font:1rem/1.58 Arial,sans-serif}.hero__copy>p:not(.eyebrow),.section-copy{max-width:25rem;color:var(--muted)}.button{align-self:flex-start;margin-top:.5rem;padding:1rem 1.25rem;background:var(--yellow);color:var(--ink);font:700 .75rem Arial,sans-serif;text-decoration:none}.hero__image{position:relative;margin:0;min-height:25rem}.hero__image img,.feature img,.story img{width:100%;height:100%;object-fit:cover}.hero__image figcaption,.story figcaption{position:absolute;bottom:0;left:0;padding:1.1rem 1.4rem;background:var(--ink);color:#fff9ef;font:.78rem/1.4 Arial,sans-serif}.hero__image figcaption b{display:block;color:var(--yellow);font-size:.65rem;letter-spacing:.11em}.locations{display:grid;grid-template-columns:.8fr 1.2fr;gap:2.2rem;padding:2.7rem 8%;background:var(--ink);color:#fff9ef}.locations h2{margin-top:0}.section-copy{color:#d5dfd6}.stop-list{margin-top:1.3rem}.stop-list button{display:block;width:100%;padding:.75rem .85rem;border:0;border-bottom:1px solid #ffffff3d;background:transparent;color:#fff9ef;text-align:left;cursor:pointer}.stop-list button[aria-pressed=true]{background:#f4ba4528}.stop-list b{display:block;margin-bottom:.35rem;color:var(--yellow);font:700 .63rem Arial,sans-serif;letter-spacing:.12em}.stop-list span{font:700 .85rem Arial,sans-serif}.map-wrap{position:relative;min-height:21rem}.route-map{position:absolute;inset:0}.map-label{position:absolute;z-index:500;top:1rem;right:1rem;max-width:16rem;padding:.75rem .85rem;background:#142a35ed;color:#fff9ef;font:.75rem/1.4 Arial,sans-serif}.map-label b{display:block;margin-bottom:.2rem;color:var(--yellow);font-size:.65rem;letter-spacing:.08em}.route-pin{display:block;width:28px;height:28px;border:3px solid #fff9ef;border-radius:50% 50% 50% 0;background:var(--red);transform:rotate(-45deg)}.map-empty,.empty-state{padding:1rem;border-left:4px solid var(--yellow);background:#ffffff12;color:inherit;font:.9rem/1.5 Arial,sans-serif}.map-empty{height:100%;display:grid;place-items:center;border:1px dashed #ffffff60}.feature{display:grid;grid-template-columns:1fr 1fr;min-height:25rem}.feature img{min-height:25rem}.feature>div{padding:3.8rem 14%;background:var(--green);color:#fff9ef}.feature h2{font-size:2.7rem}.feature p:not(.eyebrow){color:#e8ebe3}.text-link{align-self:flex-start;padding-bottom:.35rem;border-bottom:2px solid var(--yellow);color:#fff9ef;font:700 .75rem Arial,sans-serif;text-decoration:none}.menu{padding:4.5rem 9%;background:var(--paper)}.menu-heading{display:flex;justify-content:space-between;gap:2rem;align-items:end}.menu-heading>p{max-width:24rem;color:var(--muted)}.menu-notice{margin:1.8rem 0;padding:.9rem 1rem;border-left:4px solid var(--red);background:#fff0c9}.menu-notice b{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.category-nav{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.8rem;scrollbar-color:var(--green) transparent}.category-nav a{flex:0 0 auto;padding:.7rem .9rem;background:var(--green);color:#fff9ef;font:700 .75rem Arial,sans-serif;text-decoration:none}.menu-categories{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:2rem}.menu-category h3{font-size:1.75rem}.menu-category dl{margin:0}.menu-category dl>div{padding:.9rem 0;border-top:1px solid #d8d0c1}.menu-category dt{font-size:1.15rem}.menu-category dt small{display:block;margin-top:.25rem;color:var(--muted);font:.78rem/1.4 Arial,sans-serif}.menu-category dd{display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin:.65rem 0 0;font:.8rem Arial,sans-serif}.menu-category dd b{text-transform:capitalize}.empty-state--light{background:#fff0c9;color:var(--ink)}.story{display:grid;grid-template-columns:.8fr 1.2fr;gap:3.4rem;align-items:center;padding:4rem 9%}.story>div p:not(.eyebrow){max-width:25rem;color:var(--muted)}.story figure{position:relative;height:19rem;margin:0}.story figcaption{right:0;left:auto;background:var(--yellow);color:var(--ink);font-weight:700;text-transform:uppercase;font-size:.65rem}footer{display:grid;grid-template-columns:.88fr 1.12fr;gap:2rem 3.2rem;padding:3.4rem 8% 1.4rem;background:var(--ink);color:#fff9ef}footer h2{font-size:2.5rem}footer>div>p:not(.eyebrow){max-width:22rem;color:#dce3dc}.contact-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;align-content:start}.contact-actions a{min-height:5.7rem;padding:1rem;border:1px solid #fff9ef65;color:#fff9ef;text-decoration:none}.contact-actions a:hover{border-color:var(--yellow);background:#f4ba4514}.contact-actions .email{grid-column:1/-1;min-height:auto}.contact-actions span{display:block;color:var(--yellow);font:700 .65rem Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase}.contact-actions strong{display:block;margin-top:.45rem;font:700 clamp(1rem,2vw,1.35rem)/1 Arial,sans-serif}.copyright{grid-column:1/-1;margin:0;padding-top:1.2rem;border-top:1px solid #fff9ef4d;color:#c7d0c9;font:.72rem Arial,sans-serif}@media(max-width:700px){html{scroll-padding-top:3rem}.site-header{min-height:4.6rem;padding:0 7%}.desktop-nav{display:none}.mobile-nav{position:sticky;top:0;z-index:1000;display:flex;background:var(--paper);border-bottom:1px solid #d8d0c1}.mobile-nav a{flex:1;padding:.8rem .35rem;border-right:1px solid #d8d0c1;text-align:center;font:700 .7rem Arial,sans-serif}.mobile-nav a:last-child{border:0}.mobile-nav a.is-active{background:var(--red);color:#fff9ef}.hero,.feature,.locations,.story,footer{grid-template-columns:1fr}.hero__copy{padding:3.4rem 10% 2.8rem}.hero__image{min-height:22rem}.locations{padding:2rem 9%;gap:1.5rem}.map-wrap{min-height:20rem}.feature img{min-height:18rem}.feature>div{padding:3rem 10%}.menu{padding:3.4rem 9%}.menu-heading{display:block}.story{gap:1.8rem;padding:3.2rem 9%}.story figure{height:16rem}footer{padding:2.8rem 9% 1.4rem}.contact-actions{grid-template-columns:1fr}.contact-actions .email,.copyright{grid-column:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.stop-list small { display: block; margin-top: .35rem; font: .8rem/1.4 Arial, sans-serif; }
.hero__copy > p:not(.eyebrow), footer > div > p:not(.eyebrow) { white-space: pre-wrap; overflow-wrap: anywhere; }
.contact-actions strong { overflow-wrap: anywhere; }

.map-empty[hidden], .route-map[hidden] { display: none; }

.announcement--holiday { background: var(--ink); color: var(--paper); }
.announcement--delay { background: var(--yellow); color: var(--ink); }
.announcement--event { background: var(--green); color: var(--paper); }
.announcement--cancellation { background: #a9412b; color: var(--paper); }
