.bus-main{margin-top:var(--header-h)}
.bus-hero{padding:64px 0 58px;background:var(--teal);color:#dce8e5}
.bus-hero-copy{max-width:1000px}
.bus-back{display:inline-flex;margin-bottom:38px;color:var(--gold);font-size:14px;font-weight:700}
.bus-hero h1{max-width:820px;color:#fff;font-size:clamp(2.7rem,5vw,4.4rem)}
.bus-hero-copy>p:last-child{max-width:680px;margin:16px 0 0;font-size:17px}
.bus-content{padding:72px 0 104px;background:var(--canvas)}
.bus-wrap{max-width:1100px}
.bus-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:48px;align-items:center;padding:30px 34px;border:1px solid var(--line);border-radius:26px;background:#fff;box-shadow:0 8px 24px rgba(10,46,39,.06)}
.bus-summary h2{font-size:clamp(1.9rem,3vw,2.7rem)}
.bus-service-list{display:flex;flex-wrap:wrap;gap:8px 20px;margin:18px 0 0;padding:0;list-style:none}
.bus-service-list li{position:relative;padding-left:20px;color:var(--muted);font-size:14px}
.bus-service-list li:before{position:absolute;left:0;color:var(--gold);content:"✓"}
.bus-price-cta{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:0 22px;border-radius:999px;background:var(--gold);color:var(--ink);font-size:14px;font-weight:700}
.bus-gallery-heading{max-width:720px;margin:72px 0 28px}
.bus-gallery-heading h2{font-size:clamp(2rem,3.4vw,3rem)}
.bus-gallery-heading>p:last-child{margin-top:12px;color:var(--muted);font-size:14px;line-height:1.6}
.bus-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.bus-gallery--route-photos{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.bus-gallery--route-photos .vehicle-photo img{height:410px}
.vehicle-photo{overflow:hidden;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 8px 24px rgba(10,46,39,.06)}
.vehicle-photo img{display:block;width:100%;height:280px;object-fit:cover}
.vehicle-photo[data-kind="shuttle"] img{object-position:12% center}
.vehicle-photo[data-kind="limousine"] img,.vehicle-photo[data-kind="private"] img{object-position:50% center}
.vehicle-photo[data-kind="coach"] img{object-position:88% center}
.vehicle-photo-copy{padding:20px 22px 24px}
.vehicle-photo h3{font-size:1.4rem}
.vehicle-photo p{margin:7px 0 0;color:var(--muted);font-size:14px;line-height:1.55}
@media(max-width:900px){.bus-gallery,.bus-gallery--route-photos{grid-template-columns:1fr 1fr}.bus-summary{grid-template-columns:1fr}.bus-price-cta{width:max-content}}
@media(max-width:640px){.bus-hero{padding:48px 0}.bus-content{padding:54px 0 76px}.bus-summary{padding:24px}.bus-gallery{grid-template-columns:1fr}.vehicle-photo img{height:250px}.bus-gallery-heading{margin-top:54px}.bus-price-cta{width:100%}}
.bus-route-time{margin:16px 0 0;color:#b6812e;font-size:14px;font-weight:700}
.bus-detail-heading{margin-top:26px;font-family:var(--body);font-size:15px}
.bus-route-details{display:grid;gap:10px;margin:14px 0 0;padding:0;list-style:none}
.bus-route-details li{position:relative;padding-left:20px;color:var(--muted);font-size:14px;line-height:1.55}
.bus-route-details li:before{position:absolute;left:0;color:var(--gold);content:"✓"}
.bus-price-cta{max-width:280px;text-align:center;font-variant-numeric:tabular-nums}
.bus-price-cta:focus-visible,.bus-price-enquire:focus-visible,.bus-stepper button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.bus-price-panel{display:grid;grid-template-columns:minmax(0,1.4fr) auto minmax(180px,.7fr);gap:24px;align-items:center;margin-top:26px;padding:30px 34px;border-radius:26px;background:var(--teal);color:#fff;box-shadow:0 12px 30px rgba(10,46,39,.12)}
.bus-price-panel h2{color:#fff;font-size:clamp(1.8rem,3vw,2.5rem)}
.bus-unit-fare,.bus-round-trip{margin:10px 0 0;color:#f4dcae;font-size:14px;line-height:1.5;font-variant-numeric:tabular-nums}
.bus-passenger-label,.bus-price-total span{display:block;margin-bottom:8px;color:#dce8e5;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.bus-stepper{display:grid;grid-template-columns:44px 52px 44px;gap:8px;align-items:center}
.bus-stepper button{display:grid;width:44px;height:44px;padding:0;place-items:center;border:1px solid rgba(255,255,255,.45);border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font:700 22px/1 var(--body);cursor:pointer;touch-action:manipulation}
.bus-stepper button:hover:not(:disabled){background:rgba(255,255,255,.2)}
.bus-stepper button:disabled{cursor:not-allowed;opacity:.42}
.bus-stepper output{text-align:center;color:#fff;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}
.bus-price-total strong{display:block;color:#fff;font-size:clamp(1.45rem,2.4vw,2rem);font-variant-numeric:tabular-nums;white-space:nowrap}
.bus-price-enquire{display:inline-flex;grid-column:1/-1;min-height:48px;align-items:center;justify-content:center;justify-self:start;padding:0 22px;border-radius:999px;background:var(--gold);color:var(--ink);font-size:14px;font-weight:700}
@media(max-width:900px){.bus-price-panel{grid-template-columns:1fr 1fr}.bus-price-copy{grid-column:1/-1}.bus-price-enquire{grid-column:1/-1}}
@media(max-width:640px){.bus-price-panel{grid-template-columns:1fr;padding:24px}.bus-price-copy,.bus-price-enquire{grid-column:auto}.bus-price-enquire{width:100%;text-align:center}.bus-price-total strong{white-space:normal}}
