:root{--brand:#08783f;--brand-dark:#04542c;--brand-pale:#e9f5ed;--sea:#eaf4f3;--ink:#17251d;--muted:#5d6b64;--surface:#fff;--surface-alt:#f5f7f5;--border:#d7e1da;--danger:#a32727;--radius:1rem}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--surface);color:var(--ink);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55}
a{color:var(--brand-dark)}
a:hover{color:#023d20}
.skip-link{background:#fff;color:var(--ink);left:1rem;padding:.65rem 1rem;position:absolute;top:-5rem;z-index:2000}
.skip-link:focus{top:1rem}
.site-header{background:#fff;border-bottom:1px solid var(--border)}
.presentation-notice{background:var(--brand-dark);color:#e5f3e9;font-size:.76rem;font-weight:650;letter-spacing:.01em;padding:.42rem 0;text-align:center}
.navbar-brand{color:var(--brand-dark);font-weight:800;letter-spacing:-.04em}
.brand-mark{background:var(--brand);border-radius:50%;color:#fff;display:inline-grid;font-size:.68rem;height:2rem;place-items:center;width:2rem}
.btn{border-radius:.55rem;font-weight:700;padding:.65rem 1rem}
.btn-primary{background:var(--brand);border-color:var(--brand)}
.btn-primary:hover,.btn-primary:focus{background:var(--brand-dark);border-color:var(--brand-dark)}
.btn-outline-primary{border-color:var(--brand);color:var(--brand)}
.btn-outline-primary:hover{background:var(--brand);border-color:var(--brand)}
.public-nav{align-items:center;display:flex;gap:1.25rem;min-height:5rem}
.brand-identity{align-items:center;display:inline-flex;gap:.55rem;line-height:1;white-space:nowrap}
.public-nav-menu{align-items:center;display:flex;gap:.75rem;justify-content:flex-end;margin-left:auto}
.public-nav-list{align-items:center;display:flex;gap:.1rem;list-style:none;margin:0;padding:0}
.public-nav-list a{border-radius:.4rem;color:var(--ink);display:block;font-size:.86rem;font-weight:700;padding:.55rem .6rem;text-decoration:none}
.public-nav-list a:hover,.public-nav-list a:focus-visible,.public-nav-list a.active{color:var(--brand)}
.public-nav-list a.active{background:var(--brand-pale)}
.nav-menu-toggle{background:#fff;border:1px solid var(--border);border-radius:.45rem;color:var(--brand-dark);display:none;font:inherit;font-weight:700;padding:.5rem .7rem}
.hero{background:linear-gradient(115deg,rgba(3,57,31,.96),rgba(7,120,63,.89)),radial-gradient(circle at 80% 25%,#4b9a7c 0 2%,transparent 2.2%),linear-gradient(160deg,#0d5b3a,#174c43);color:#fff;padding:clamp(3rem,8vw,6.5rem) 0}
.hero .lead{color:#ecf6f0;max-width:39rem}
.eyebrow{color:var(--brand);font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.hero .eyebrow{color:#b9ebcc}
.display-title{font-size:clamp(2.25rem,5.5vw,4.75rem);font-weight:800;letter-spacing:-.055em;line-height:1.03;max-width:850px}
.page-hero{background:var(--brand-pale);padding:clamp(2.5rem,5vw,4.2rem) 0}
.page-hero--image{background-color:var(--brand-dark);background-image:linear-gradient(90deg,rgba(3,57,31,.94) 0%,rgba(3,57,31,.79) 42%,rgba(3,57,31,.28) 100%),var(--hero-image);background-position:center right;background-repeat:no-repeat;background-size:cover;color:#fff}
.page-hero--image .eyebrow{color:#b9ebcc}
.page-hero--image .text-muted{color:#ecf6f0!important;max-width:44rem}
.page-hero--image .breadcrumb-item,.page-hero--image .breadcrumb-item.active{color:#d9eee1}
.page-hero--image .breadcrumb-item a{color:#fff}
.page-hero--image .breadcrumb-item+.breadcrumb-item::before{color:#b9ebcc}
.page-hero--routes{--hero-image:url("../images/hero-routes-v1.png")}
.page-hero--schedules{--hero-image:url("../images/hero-schedules-v1.png")}
.page-hero--fares{--hero-image:url("../images/hero-fares-v1.png")}
.page-hero--passenger-info{--hero-image:url("../images/hero-passenger-info-v1.png")}
.page-hero--advisories{--hero-image:url("../images/hero-advisories-v1.png")}
.page-hero--company{--hero-image:linear-gradient(135deg,rgba(10,111,62,.72),rgba(3,57,31,.3)),radial-gradient(circle at 82% 35%,rgba(139,204,169,.46) 0 7%,transparent 7.5%),linear-gradient(145deg,#063c26,#106844)}
.page-hero--fleet{--hero-image:linear-gradient(135deg,rgba(22,118,90,.52),rgba(3,57,31,.22)),radial-gradient(ellipse at 76% 62%,rgba(154,222,202,.38) 0 11%,transparent 11.5%),repeating-linear-gradient(160deg,rgba(198,239,221,.18) 0 2px,transparent 2px 28px),linear-gradient(145deg,#063c26,#0b5a48)}
.page-hero .display-title{font-size:clamp(2rem,4vw,3.6rem)}
.section{padding:clamp(3.5rem,7vw,6rem) 0}
.section-muted{background:var(--surface-alt)}
.section-title{font-size:clamp(1.7rem,3.3vw,2.65rem);font-weight:800;letter-spacing:-.04em;line-height:1.12}
.text-muted{color:var(--muted)!important}
.trip-planner{background:#fff;border-radius:var(--radius);box-shadow:0 1rem 3rem rgba(4,59,31,.18);color:var(--ink);margin-top:clamp(2rem,4vw,3.5rem);padding:1rem}
.form-control,.form-select{border-color:#b9c8bd;min-height:3rem}
.form-control:focus,.form-select:focus{border-color:var(--brand);box-shadow:0 0 0 .25rem rgba(8,120,63,.15)}
.form-label{font-weight:700}
.card{border:1px solid var(--border);border-radius:var(--radius);box-shadow:none}
.route-card,.info-card,.advisory-card{height:100%;overflow:hidden}
.card-art{align-items:center;background:linear-gradient(145deg,#c6e7d1,#e9f4ee 55%,#c6e4ea);color:var(--brand-dark);display:flex;font-size:2.3rem;height:130px;justify-content:center}
.route-code{color:var(--brand);font-size:.75rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.badge-status{align-items:center;background:#fff4d8;border:1px solid #f0d998;border-radius:99px;color:#6a4400;display:inline-flex;font-size:.78rem;font-weight:750;gap:.35rem;padding:.3rem .6rem}
.badge-status::before{background:currentColor;border-radius:50%;content:"";height:.45rem;width:.45rem}
.notice{border-left:4px solid var(--brand);padding:1rem 1.15rem}
.notice.warning{background:#fff8e8;border-color:#d99000}
.notice.danger{background:#fff1f1;border-color:var(--danger)}
.table-responsive{border:1px solid var(--border);border-radius:var(--radius)}
.table{margin-bottom:0}
.table th{background:#f1f6f2;color:#3b4d42;font-size:.77rem;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.table td,.table th{padding:1rem}
.breadcrumb{font-size:.9rem;margin-bottom:1.5rem}
.accordion-button{font-weight:700}
.accordion-button:not(.collapsed){background:var(--brand-pale);color:var(--brand-dark)}
.accordion-button:focus{border-color:var(--brand);box-shadow:0 0 0 .25rem rgba(8,120,63,.15)}
.cta-panel{background:var(--brand-dark);border-radius:var(--radius);color:#fff;padding:clamp(1.75rem,5vw,3.5rem)}
.cta-panel .eyebrow{color:#baeecf}
.company-introduction,.company-two-column,.company-fleet-preview{display:grid;gap:3rem;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.company-two-column,.company-fleet-preview{align-items:center}
.company-story-grid{align-items:center;display:grid;gap:clamp(2rem,6vw,6rem);grid-template-columns:minmax(13rem,.7fr) minmax(0,1.3fr)}
.heritage-year{border-left:5px solid var(--brand);display:grid;gap:.35rem;padding-left:1.25rem}.heritage-year span{color:var(--brand-dark);font-size:clamp(4.5rem,10vw,8.5rem);font-weight:850;letter-spacing:-.09em;line-height:.85}.heritage-year strong{font-size:.82rem;letter-spacing:.12em;text-transform:uppercase}
.origin-connection{align-items:center;display:flex;flex-wrap:wrap;font-weight:800;gap:.8rem;margin-top:1.5rem}.origin-connection span:nth-child(2){color:var(--brand);font-size:1.35rem}
.company-progress{display:grid;gap:1rem;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:clamp(2.5rem,5vw,4rem) 0 0;padding:0}.company-progress li{border-top:2px solid #a9cdb6;display:grid;gap:.35rem;padding-top:.85rem}.company-progress strong{color:var(--brand-dark);font-size:.86rem;letter-spacing:.07em;text-transform:uppercase}.company-progress span{color:var(--muted);font-size:.9rem}
.company-service-grid,.company-network{display:grid;gap:1.25rem;grid-template-columns:repeat(3,minmax(0,1fr))}.company-service-card{display:flex;flex-direction:column;padding:1.5rem}.company-service-card h3{font-size:1.25rem;font-weight:800}.company-service-card p{color:var(--muted);flex:1}.company-service-card a{font-weight:800;text-decoration:none}.company-service-icon{align-items:center;background:var(--brand-pale);border-radius:50%;color:var(--brand-dark);display:grid;font-size:1.6rem;height:3rem;margin-bottom:1.5rem;place-items:center;width:3rem}
.fleet-vessel-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(3,minmax(0,1fr))}.fleet-vessel-card{overflow:hidden;padding:1.5rem}.fleet-vessel-card h3{font-size:1.25rem;font-weight:800;margin-top:1.25rem}.fleet-vessel-card p{color:var(--muted);margin-bottom:0}.fleet-vessel-art{background:linear-gradient(150deg,#e4f2e8,#b8dcd0);border-radius:.7rem;height:9rem;overflow:hidden;position:relative}.fleet-vessel-art::before{background:#fff;border:1px solid #75a789;border-radius:1.2rem 1.2rem .35rem .35rem;bottom:1.3rem;content:"";height:2.2rem;left:22%;position:absolute;transform:skewX(-12deg);width:56%}.fleet-vessel-art::after{background:linear-gradient(90deg,transparent 0 20%,#0b5d43 20% 75%,transparent 75%);bottom:2.1rem;content:"";height:.35rem;left:28%;position:absolute;width:45%}.fleet-vessel-art--offset::before{left:14%;width:64%}.fleet-vessel-art--light{background:linear-gradient(150deg,#ecf5f1,#dce6d5)}
.company-section-art{overflow:hidden}.company-section-art img{border-radius:var(--radius);display:block;height:auto;width:100%}.company-section-art figcaption{color:var(--muted);font-size:.78rem;margin-top:.65rem}.company-network-art img{aspect-ratio:3/1;object-fit:cover}.company-fleet-art img{aspect-ratio:4/3;object-fit:cover}
.section-heading-row{align-items:center;display:grid;gap:2rem;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.company-network{margin-top:2rem}.company-network-route{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.company-network-route-name{font-size:1.15rem;font-weight:800;line-height:1.25;margin:0 0 1rem}.company-network-link{font-size:.9rem;font-weight:800}
.fleet-abstract{align-items:end;background:linear-gradient(145deg,#e5f3e9,#d3e9ed);border-radius:var(--radius);display:flex;gap:.75rem;justify-content:center;min-height:15rem;overflow:hidden;padding:2rem}.fleet-abstract span{background:linear-gradient(#fff,#c7e4d0);border:1px solid #78a98a;border-radius:.8rem .8rem 0 0;display:block;width:20%}.fleet-abstract span:nth-child(1){height:36%}.fleet-abstract span:nth-child(2){height:70%}.fleet-abstract span:nth-child(3){height:50%}
.corporate-facts{border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:0}.corporate-facts div{border-bottom:1px solid var(--border);padding:1.1rem 0}.corporate-facts div:nth-child(odd){padding-right:1.5rem}.corporate-facts div:nth-child(even){padding-left:1.5rem}.corporate-facts dt{color:var(--muted);font-size:.82rem;font-weight:750;letter-spacing:.07em;text-transform:uppercase}.corporate-facts dd{font-size:1.06rem;font-weight:750;margin:.2rem 0 0}.company-journey-cta{padding-top:0}
.contact-office-card{background:#fff;border-left:4px solid var(--brand);max-width:42rem;padding:1.5rem}.contact-office-card h3,.contact-path h3{font-size:1.18rem;font-weight:800}.contact-path-grid{display:grid;gap:1rem;grid-template-columns:repeat(4,minmax(0,1fr))}.contact-path{padding:1.25rem}.contact-path p{color:var(--muted);font-size:.92rem;margin-bottom:0}.contact-form-layout{align-items:start;display:grid;gap:3rem;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr)}.contact-self-service{display:grid;gap:.8rem;grid-template-columns:repeat(5,minmax(0,1fr))}.contact-self-service a{background:var(--brand-pale);border:1px solid var(--brand);border-radius:.65rem;font-weight:800;padding:1rem;text-decoration:none}.contact-self-service span{color:var(--muted);display:block;font-size:.82rem;font-weight:500;margin-top:.3rem}
.site-footer{background:#0c2117;color:#d8e6dc;margin-top:auto}
.site-footer a{color:#eff8f1;text-decoration:none}
.site-footer a:hover,.site-footer a:focus-visible{text-decoration:underline}
.site-footer h2{font-size:.92rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.site-subfooter{background:linear-gradient(105deg,#08783f,#0a5e39);padding:clamp(2.25rem,4vw,3.25rem) 0}
.subfooter-cta{align-items:center;display:flex;gap:2rem;justify-content:space-between}
.footer-kicker{color:#bde8cb;font-size:.74rem;font-weight:800;letter-spacing:.13em;margin:0 0:.45rem;text-transform:uppercase}
.subfooter-cta h2{color:#fff;font-size:clamp(1.5rem,2.6vw,2.05rem);letter-spacing:-.035em;margin:0;text-transform:none}
.subfooter-cta p:not(.footer-kicker){color:#e0f1e5;margin:.55rem 0 0;max-width:40rem}
.subfooter-actions{align-items:center;display:flex;flex-shrink:0;gap:1.2rem}
.subfooter-actions .btn{background:#fff;border-color:#fff;color:#075c32;white-space:nowrap}
.subfooter-actions .btn:hover,.subfooter-actions .btn:focus-visible{background:#e9f6ed;border-color:#e9f6ed}
.subfooter-text-link{font-weight:750;white-space:nowrap}
.footer-primary{background:#0c2117}
.footer-content{display:grid;gap:2.5rem;grid-template-columns:minmax(15rem,1.5fr) repeat(3,minmax(9rem,1fr));padding:clamp(3rem,5vw,4.5rem) 0 3rem}
.footer-intro{max-width:21rem}
.footer-brand{color:#fff;display:inline-block;font-size:1.35rem;font-weight:850;letter-spacing:-.035em;margin-bottom:.85rem}
.footer-statement{color:#c7d9cd;font-size:.94rem;margin:0}
.footer-contact-link{display:inline-block;font-size:.9rem;font-weight:750;margin-top:1.35rem}
.footer-link-group h2{color:#a8cbb3;margin:0 0:1rem}
.footer-link-group ul{list-style:none;margin:0;padding:0}
.footer-link-group li+li{margin-top:.65rem}
.footer-link-group a{color:#eef7f0;font-size:.94rem}
.footer-baseline{align-items:center;border-top:1px solid rgba(216,230,220,.16);display:flex;gap:1.25rem;justify-content:space-between;padding:1.15rem 0}
.footer-baseline-links{align-items:center;color:#afc4b5;display:flex;flex-wrap:wrap;font-size:.78rem;gap:.85rem}
.footer-baseline-links a{color:#cce0d2}
.powered-by{align-items:center;color:#aebfb4;display:inline-flex;font-size:.76rem;gap:.38rem;white-space:nowrap}
.im-logo{display:block;height:1.1rem;object-fit:contain;width:1rem}
.im-name{color:#dcebe0;font-weight:750}
.provenance{border-top:1px solid var(--border);color:var(--muted);font-size:.85rem;padding-top:1rem}
.empty-state{border:1px dashed #aebfb4;border-radius:var(--radius);padding:2rem;text-align:center}
@media(max-width:1199.98px){.public-nav{gap:.8rem}.public-nav-list a{font-size:.8rem;padding:.5rem .4rem}.nav-journey-cta{font-size:.85rem;padding:.55rem .7rem}}
@media(max-width:991.98px){.public-nav{flex-wrap:wrap;min-height:4.5rem}.nav-menu-toggle{display:block;margin-left:auto}.public-nav-menu{align-items:stretch;display:none;flex-basis:100%;flex-direction:column;margin-left:0;padding:0 0 1rem}.public-nav-menu.is-open{display:flex}.public-nav-list{align-items:stretch;flex-direction:column;gap:.1rem}.public-nav-list a{font-size:.95rem;padding:.7rem}.nav-journey-cta{align-self:stretch;text-align:center}.subfooter-cta{align-items:flex-start;flex-direction:column}.footer-content{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-intro{grid-column:1/-1;max-width:34rem}.company-introduction,.company-two-column,.company-fleet-preview,.company-story-grid,.section-heading-row{grid-template-columns:1fr}.company-service-grid,.company-network,.fleet-vessel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.company-progress{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:575.98px){.site-subfooter{padding:2rem 0}.subfooter-actions{align-items:flex-start;flex-direction:column;gap:.9rem}.footer-content{gap:2rem;grid-template-columns:1fr;padding:2.75rem 0 2.25rem}.footer-intro{grid-column:auto}.footer-baseline{align-items:flex-start;flex-direction:column}.footer-baseline-links{gap:.65rem}.powered-by{font-size:.72rem}.company-service-grid,.company-network,.fleet-vessel-grid,.company-progress,.corporate-facts{grid-template-columns:1fr}.corporate-facts div:nth-child(odd),.corporate-facts div:nth-child(even){padding-left:0;padding-right:0}.heritage-year span{font-size:4.5rem}}
@media(prefers-reduced-motion:reduce){*,::before,::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
