/* Responsive corrections 1.0.82. Keep Leaflet panes and marquee belts unconstrained. */
.container { width:100%; }
.site-header .navbar { padding-inline:20px; }
:where(.hero-inner,.grid3,.split,.nsw-grid,.nsw-row,.nsw-routes__bar) > * { min-width:0; }
:where(.card,.panel,.nsw-card,.nsw-panel,.ns-ride__panel,.ns-home-localbar) { min-width:0; max-width:100%; }
:where(.hero-title,.sub,.panel,.nsw-text,.ns-reg-body,.ns-faq-answer,.ns-partners__card) { overflow-wrap:anywhere; }
#content :where(picture img, .wp-post-image, .wp-block-image img, .ns-reg-body img) { max-width:100%; height:auto; }
#content :where(video,iframe) { max-width:100%; }
.hero-inner--low { width:100%; }
.hero-inner--low :is(.hero-title,.sub) { max-width:min(100%,var(--hero-text-w,720px)); }
.hero-title { font-size:clamp(26px,3.6vw,46px); }
.h1 { font-size:clamp(30px,5vw,56px); overflow-wrap:anywhere; }
/* Wrap based on actual content, including long ACF start locations. */
.ns-ride__meta.ns-ride__meta--singleline { flex-wrap:wrap !important; white-space:normal !important; }
.ns-ride__meta .pill,
.ns-ride__meta--singleline .pill { flex:0 1 auto !important; max-width:100%; height:auto !important; min-height:40px; white-space:normal !important; overflow-wrap:anywhere; text-align:center; }
.ns-ride__meta--singleline .ns-ride__actions { max-width:100% !important; min-width:0; }
.ns-ride__meta--singleline .ns-ride__actions .btn { max-width:100% !important; height:auto !important; min-height:44px; white-space:normal !important; }
.ns-ride__meta--singleline .ns-ride__actions .btn :is(.ns-btn__l1,.ns-btn__l2) { white-space:normal !important; line-height:1.35 !important; }
.ns-ride__countline .ns-countdown { min-width:0; max-width:100%; }
.ns-ride__countline :is(.ns-countdown__inline,.ns-countdown__live) { white-space:normal; overflow-wrap:anywhere; line-height:1.25; }
.nsw-routes__bar,.nsw-map-head { flex-wrap:wrap; }
.nsw-routes__btn,.nsw-tabs__btn { max-width:100%; white-space:normal; overflow-wrap:anywhere; min-height:44px; }
.nsw-countbox { min-width:0 !important; max-width:100%; }
.nsw-row__left,.nsw-row__right { min-width:0; max-width:100%; }
.nsw-pill { max-width:100%; flex-wrap:wrap; overflow-wrap:anywhere; }
.nsw-slot__label,.nsw-schedule__row > * { min-width:0; overflow-wrap:anywhere; }
.ns-home-localbar__items { min-width:0; overflow-wrap:anywhere; }
.ns-partners__logo img { max-width:100%; }
@media (min-width:641px) and (max-width:1199px) {
  .grid3,.grid3.grid3--full { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .grid3.grid3--full .card { padding:16px; }
  .card strong { font-size:clamp(24px,3.4vw,34px); }
}
@media (max-width:1199px) {
  /* A filtered sticky header otherwise becomes the fixed drawer's containing block. */
  .site-header { backdrop-filter:none; -webkit-backdrop-filter:none; background:rgba(5,8,22,.96); }
  .site-header .brand { max-width:min(70%,260px); height:auto; min-height:40px; }
  .site-header .brand-logo { width:auto; max-width:100%; object-fit:contain; }
  .ns-burger { flex-shrink:0; height:44px; }
  .menu { height:100vh; height:100dvh; visibility:hidden; padding-bottom:max(20px,env(safe-area-inset-bottom)); }
  body.ns-menu-open .menu { visibility:visible; }
  .menu .ns-menu a { overflow-wrap:anywhere; min-height:44px; }
  body:not(.ns-menu-open) .menu { transition:transform .18s ease,visibility .18s; }
}
@media (max-width:900px) {
  .split { grid-template-columns:minmax(0,1fr); }
  .nsw-grid.nsw-grid--58 { grid-template-columns:minmax(0,1fr) !important; }
  .nsw-panel--side { height:auto !important; max-height:none !important; }
  .nsw-panel--map .nsw-map { min-height:0 !important; height:clamp(280px,65vw,520px) !important; aspect-ratio:auto; flex:none; }
  .ns-ride__map { min-height:0; height:clamp(260px,60vw,480px); max-height:none; }
  .ns-partners__cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
}
@media (max-width:640px) {
  .container { padding-inline:16px; }
  .site-header .navbar { padding-inline:16px; }
  .hero { min-height:0; padding:36px 0 24px; }
  .home .hero .hero-inner--low { padding-top:clamp(40px,12svh,100px); padding-bottom:12px !important; }
  .sub { font-size:16px; line-height:1.6; }
  .grid3,.grid3.grid3--full { grid-template-columns:minmax(0,1fr); }
  .section { padding:36px 0; }
  .panel,.nsw-card { padding:16px !important; }
  .ns-ride__panel--hero { width:100%; }
  .ns-ride__countline :is(.ns-countdown__inline,.ns-countdown__live) { white-space:normal; font-size:clamp(17px,5.2vw,24px); }
  .ns-ride__meta--singleline .ns-ride__actions { flex:1 1 100% !important; }
  .ns-ride__meta--singleline .ns-ride__actions .btn { width:100% !important; min-width:0 !important; padding:10px 12px !important; }
  .ns-ride__meta .pill:nth-child(2) { overflow:visible; text-overflow:clip; }
  .ns-partners__cards { grid-template-columns:minmax(0,1fr); }
  .ns-partners__card { padding:20px; min-height:0; }
  .nsw-routes__meta { justify-content:flex-start; }
  .nsw-schedule__row { gap:10px; flex-wrap:wrap; }
  .nsw-slot { flex-wrap:wrap; }
  .ns-reg-body { padding:16px; }
  .ns-acc-q { gap:10px; padding:14px 12px; }
  .ns-acc-qtext { font-size:16px; }
  .ns-acc-ico { width:34px; height:34px; }
  .ns-acc-chev { width:32px; height:32px; }
}
@media (max-height:500px) and (max-width:1199px) {
  .home .hero .hero-inner--low { padding-top:24px; padding-bottom:12px !important; }
}
/* Keep complete start-location text on desktop as well. */
.ns-ride__meta .pill:nth-child(2) { overflow:visible; text-overflow:clip; }
/* 1.0.83: compatibility with the existing WordPress Additional CSS. */
body.home .hero .container.hero-inner {
  width:100% !important;
  max-width:1440px !important;
  margin-inline:auto;
  padding-top:clamp(80px,18svh,220px) !important;
  padding-bottom:24px !important;
}
body.home .hero {
  min-height:calc(100vh - 170px) !important;
  min-height:calc(100svh - 170px) !important;
  align-items:flex-end;
}
body.home .hero .hero-inner .sub {
  width:100%; max-width:min(100%,1000px);
  margin-inline:auto;
  font-size:clamp(17px,1.15vw,22px); line-height:1.6;
}
body.home .hero .ns-hero-ride { width:100%; max-width:1120px; }
body.home .hero .panel.ns-ride__panel--hero {
  width:100% !important; max-width:1120px; padding:24px;
}
body.home .hero .ns-ride__panel--hero .ns-ride__head {
  display:flex !important; flex-direction:column !important;
  gap:10px !important; margin-bottom:14px;
}
body.home .hero .ns-ride__panel--hero .ns-ride__title {
  width:100% !important; margin:0; text-align:center !important;
}
body.home .hero .ns-ride__countline { width:100%; margin:0; }
body.home .hero .ns-ride__titletext { font-size:clamp(20px,1.7vw,28px); }
body.home .hero .ns-ride__countline :is(.ns-countdown__inline,.ns-countdown__live) {
  font-size:clamp(22px,2.5vw,42px); white-space:normal !important; line-height:1.25;
}
body.home .hero .ns-ride__meta .ns-ride__actions { width:auto !important; flex:0 1 auto !important; }
body.home .hero .ns-ride__actions .btn { width:auto !important; min-height:44px; padding:10px 20px !important; }
body.home .hero .nsw-home-partners { width:100% !important; max-width:1360px !important; margin-inline:auto; }
@media (min-width:1600px) {
  body .site-header .container.navbar,body .site-footer .container { max-width:1440px; }
  body .site-header .brand { max-width:260px; height:52px; }
  body .site-header .brand-logo { height:42px; }
  body .site-header .menu .ns-menu a { font-size:16px; padding:12px 14px; }
  body .site-footer { font-size:16px; }
}
@media (max-width:900px) {
  body.home .hero .container.hero-inner { padding-top:72px !important; padding-bottom:20px !important; }
  body.home .hero .panel.ns-ride__panel--hero { padding:20px 16px; }
  body .nsw-panel.nsw-panel--map .nsw-map { height:clamp(280px,65vw,520px) !important; min-height:0 !important; }
}
@media (max-width:640px) {
  body.home .hero { min-height:calc(100svh - 140px) !important; }
  body.home .hero .container.hero-inner { padding-top:48px !important; padding-inline:16px !important; }
  body.home .hero .hero-inner .sub { font-size:16px; }
  body.home .hero .ns-ride__titletext { font-size:19px; }
  body.home .hero .ns-ride__countline :is(.ns-countdown__inline,.ns-countdown__live) { font-size:clamp(18px,5.4vw,28px); }
  body.home .hero .ns-ride__meta .ns-ride__actions { flex:1 1 100% !important; width:100% !important; }
  body.home .hero .ns-ride__actions .btn { width:100% !important; }
  body .site-header { background:rgba(5,8,22,.97) !important; }
}
@media (max-height:500px) and (max-width:1199px) {
  body.home .hero .container.hero-inner { padding-top:24px !important; }
}
