@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');
:root {
  --navy:#0c1628;
  --navy-2:#131f33;
  --blue:#1e72e8;
  --yellow:#ffce5c;
  --text:#152238;
  --muted:#6c7686;
  --line:#e8ecf2;
  --paper:#f5f7fa;
  --radius:18px
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0;
  font-family:'DM Sans',Arial,sans-serif;
  color:var(--text);
  background:var(--paper)
}
button,input,select {
  font:inherit
}
button {
  cursor:pointer
}
a {
  color:inherit;
  text-decoration:none
}
a:hover {
  text-decoration:none
}
button:disabled {
  cursor:not-allowed;
  opacity:.6
}
p {
  line-height:1.6
}
.container {
  width:min(1160px,calc(100% - 48px));
  margin:auto
}
.site-shell {
  min-height:100vh
}
.site-header {
  height:88px;
  background:var(--navy);
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.09);
  position:relative;
  z-index:4
}
.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:100%;
  gap:30px
}
.wordmark {
  display:flex;
  align-items:center;
  gap:12px;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:800;
  letter-spacing:1.6px;
  font-size:22px;
  white-space:nowrap
}
.wordmark small {
  font-size:9px;
  letter-spacing:2.2px;
  font-weight:700;
  display:block;
  color:#b1bbc8;
  margin-top:2px
}
.brand-mark {
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  background:var(--yellow);
  color:#122139;
  font-size:26px;
  font-weight:800;
  clip-path:polygon(18% 0,100% 0,82% 100%,0 100%);
  letter-spacing:-2px
}
.top-nav {
  display:flex;
  gap:32px;
  align-items:center;
  font-size:13px;
  color:#aeb8c7;
  font-weight:700
}
.top-nav a {
  padding:34px 0;
  transition:color .2s
}
.top-nav a:hover,.top-nav .nav-current {
  color:#fff
}
.nav-current {
  position:relative
}
.nav-current:after {
  content:'';
  position:absolute;
  bottom:25px;
  height:2px;
  background:var(--yellow);
  left:0;
  right:0
}
.header-actions {
  display:flex;
  align-items:center;
  gap:12px
}
.header-login {
  border:1px solid #394759;
  color:#fff;
  border-radius:12px;
  background:none;
  padding:11px 17px;
  font-size:13px;
  font-weight:700;
  white-space:nowrap
}
.header-login span {
  margin-left:12px;
  color:var(--yellow)
}
.user-initial {
  width:35px;
  height:35px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#243b59;
  color:#ffdc8e;
  font-weight:800
}
.hero-glow {
  position:absolute;
  top:88px;
  right:0;
  left:0;
  height:485px;
  z-index:-1;
  background:radial-gradient(circle at 18% 80%,#1d3047 0%,transparent 33%),linear-gradient(110deg,#0c1628,#17273d)
}
.hero-grid {
  min-height:485px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(460px,520px);
  align-items:center;
  gap:64px;
  padding:54px 0 72px
}
.hero-copy {
  color:#fff;
  position:relative
}
.eyebrow {
  font-size:10px;
  letter-spacing:2.3px;
  font-weight:800;
  color:#ffda7d;
  font-family:'Plus Jakarta Sans',sans-serif;
  text-transform:uppercase
}
.pulse-dot {
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#ffcf65;
  margin-right:8px;
  box-shadow:0 0 0 4px rgba(255,207,101,.12)
}
.hero-copy h1 {
  font-family:'Plus Jakarta Sans',sans-serif;
  letter-spacing:-3.9px;
  line-height:1.12;
  font-size:clamp(46px,5vw,68px);
  margin:24px 0 19px;
  font-weight:800
}
.hero-copy h1 em {
  font-style:normal;
  color:var(--yellow)
}
.hero-copy>p {
  max-width:410px;
  color:#b9c4d3;
  font-size:15px;
  line-height:1.8
}
.hero-features {
  display:flex;
  gap:22px;
  flex-wrap:wrap;
  color:#cad4e0;
  font-size:11px;
  font-weight:600;
  margin-top:30px
}
.mini-journey {
  display:flex;
  align-items:center;
  gap:18px;
  margin-top:35px;
  max-width:376px;
  padding:17px 20px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  background:rgba(255,255,255,.035)
}
.mini-path {
  height:34px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:space-between
}
.mini-path i {
  width:8px;
  height:8px;
  border:2px solid var(--yellow);
  border-radius:50%
}
.mini-path i:last-child {
  background:var(--yellow)
}
.mini-path b {
  width:1px;
  height:14px;
  background:rgba(255,255,255,.5)
}
.mini-journey strong {
  display:block;
  font-size:12px
}
.mini-journey span {
  display:block;
  color:#99a8b9;
  font-size:10px;
  margin-top:6px
}
.mini-journey .mini-arrow {
  margin-left:auto;
  font-size:22px;
  color:#ffdb7c
}
.planner-card {
  background:#fff;
  box-shadow:0 25px 60px rgba(0,0,0,.12);
  padding:33px;
  border-radius:23px;
  position:relative;
  z-index:2
}
.planner-head {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:24px
}
.planner-eyebrow {
  color:#5c8ac3
}
.planner-head h2 {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:24px;
  letter-spacing:-.9px;
  margin:8px 0 0
}
.planner-symbol {
  width:42px;
  height:42px;
  border:1px solid var(--line);
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:24px;
  color:#b1bac6
}
.route-fields {
  display:flex;
  align-items:center;
  gap:14px;
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:8px 12px 8px 17px;
  position:relative
}
.track-decor {
  width:13px;
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:space-around;
  align-items:center;
  padding:19px 0
}
.track-decor span {
  width:10px;
  height:10px;
  border:2.5px solid #247bec;
  border-radius:50%
}
.track-decor span:last-child {
  background:#ffca50;
  border-color:#ffca50
}
.track-decor i {
  height:30px;
  border-left:2px dotted #cad4df
}
.route-inputs {
  min-width:0;
  flex:1
}
.location-field {
  padding:6px 0;
  position:relative
}
.location-field label,.form-field label {
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:1.3px;
  font-weight:800;
  color:#8895a5;
  display:block;
  margin-bottom:7px
}
.location-field input {
  width:100%;
  border:0;
  outline:0;
  font-size:15px;
  font-weight:700;
  color:#1b2b42;
  background:transparent;
  padding:0 0 3px
}
.location-field input::placeholder {
  color:#9ba5b4;
  font-weight:500
}
.location-divider {
  height:1px;
  background:#e8edf3;
  margin:9px 0
}
.swap-button {
  border-radius:10px;
  border:1px solid #e7ebf1;
  background:#fff;
  width:36px;
  height:36px;
  color:#294c7a;
  font-size:21px;
  align-self:center
}
.swap-button:hover {
  background:#eef5ff
}
.suggestions {
  position:absolute;
  top:calc(100% + 9px);
  left:-39px;
  right:-57px;
  z-index:8;
  background:#fff;
  border:1px solid #dce5ef;
  border-radius:14px;
  box-shadow:0 16px 50px #0c16282e;
  overflow:hidden;
  max-height:290px;
  overflow-y:auto
}
.suggestions[hidden] {
  display:none
}
.suggestion {
  display:flex;
  gap:11px;
  align-items:center;
  width:100%;
  padding:13px 16px;
  border:0;
  background:#fff;
  text-align:left;
  font-size:12px;
  font-weight:600
}
.suggestion+.suggestion {
  border-top:1px solid #eff2f5
}
.suggestion:hover,.suggestion:focus-visible {
  background:#f4f8ff
}
.suggestion-marker {
  color:#3d85df;
  font-size:20px
}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:15px
}
.form-field {
  border:1px solid #e2e8f0;
  border-radius:12px;
  padding:12px 14px;
  min-width:0
}
.form-field input,.form-field select {
  font-weight:700;
  color:#182941;
  font-size:13px;
  background:transparent;
  border:0;
  outline:0;
  width:100%;
  min-width:0
}
.passengers-field {
  grid-column:span 2
}
.primary-button {
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  background:var(--yellow);
  color:#14233b;
  border:0;
  border-radius:12px;
  font-weight:800;
  font-family:'Plus Jakarta Sans',sans-serif;
  padding:17px 20px;
  font-size:13px;
  margin-top:17px;
  transition:background .2s,transform .2s
}
.primary-button:hover {
  background:#ffd777;
  transform:translateY(-1px)
}
.primary-button span {
  font-size:19px;
  margin-left:auto
}
.planner-footnote {
  display:flex;
  gap:8px;
  color:#8a96a6;
  font-size:10px;
  line-height:1.5;
  margin:14px 0 0
}
.planner-footnote span {
  font-size:13px;
  color:#7a8799
}
.content-area {
  padding:25px 0 70px
}
.membership-banner {
  display:flex;
  align-items:center;
  gap:20px;
  min-height:105px;
  background:#fff;
  border:1px solid #e5eaf0;
  border-radius:17px;
  padding:22px 25px;
  box-shadow:0 8px 24px rgba(13,24,43,.025)
}
.membership-icon {
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  background:#edf2fa;
  color:#517eaa;
  border-radius:14px;
  font-size:24px;
  flex-shrink:0
}
.membership-gold .membership-icon {
  color:#957019;
  background:#f9efcf
}
.membership-black .membership-icon {
  color:#fff;
  background:#1b2333
}
.membership-silver .membership-icon {
  color:#4d677f;
  background:#e7edf2
}
.membership-text {
  flex:1;
  min-width:0
}
.membership-text .eyebrow {
  color:#8090a5;
  font-size:9px;
  letter-spacing:1.4px
}
.membership-text strong {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:15px;
  display:block;
  margin-top:4px
}
.membership-text p {
  font-size:11px;
  color:#8390a1;
  margin:5px 0 0
}
.membership-link {
  font-size:12px;
  font-weight:800;
  border:1px solid #e4eaf0;
  padding:13px 17px;
  border-radius:9px;
  white-space:nowrap
}
.membership-link span {
  margin-left:9px
}
.membership-link:hover {
  background:#f7f9fb
}
.info-columns {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  margin-top:52px
}
.info-columns article {
  padding:12px 12px 16px
}
.info-icon {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:800;
  font-size:26px;
  letter-spacing:-1px;
  color:#2e74d6
}
.info-columns h3 {
  font-family:'Plus Jakarta Sans',sans-serif;
  margin:10px 0 6px;
  font-size:15px
}
.info-columns p {
  color:#8390a0;
  font-size:12px;
  margin:0;
  max-width:280px
}
.site-footer {
  border-top:1px solid #e3e9f0;
  background:#fff;
  color:#8391a2;
  font-size:11px
}
.footer-inner {
  min-height:66px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px
}
.footer-inner a {
  color:#405777
}
.alert {
  border-radius:12px;
  padding:15px 17px;
  margin:22px 0;
  font-weight:600;
  font-size:13px;
  line-height:1.6;
  background:#fff3ed;
  color:#a24726;
  border:1px solid #ffdacb
}
.alert.info {
  background:#edf5ff;
  color:#315d91;
  border-color:#cce1ff
}
.alert.success {
  background:#e8f8ee;
  color:#167148;
  border-color:#c5ecd5
}
.alert[hidden],.results[hidden],.info-columns[hidden] {
  display:none
}
.results {
  padding-top:46px;
  scroll-margin-top:20px
}
.section-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:25px
}
.eyebrow.dark {
  color:#477ebd
}
.section-heading h2 {
  font-family:'Plus Jakarta Sans',sans-serif;
  letter-spacing:-1px;
  font-size:30px;
  margin:7px 0
}
.section-heading p {
  font-size:13px;
  margin:0
}
.result-count {
  padding:9px 14px;
  background:#eaf0f8;
  color:#416187;
  border-radius:30px;
  white-space:nowrap;
  font-weight:700;
  font-size:11px
}
.results-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 325px;
  gap:20px;
  align-items:start
}
.result-list {
  display:grid;
  gap:15px
}
.journey-card {
  background:#fff;
  padding:20px 23px;
  border:1.5px solid #e4eaf1;
  border-radius:16px;
  box-shadow:0 6px 16px #0c162806;
  transition:border-color .2s,box-shadow .2s
}
.journey-card:hover,.journey-card.selected {
  border-color:#7dacdf;
  box-shadow:0 8px 30px #174e8615
}
.journey-meta {
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-size:10px;
  font-weight:700;
  color:#8896a5
}
.journey-type {
  color:#8a66bd;
  font-weight:800;
  letter-spacing:1px
}
.journey-type.scheduled {
  color:#2972cc
}
.journey-main {
  display:flex;
  align-items:center;
  gap:14px;
  margin:20px 0
}
.journey-times {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  flex-shrink:0
}
.journey-times strong {
  font-size:18px;
  font-family:'Plus Jakarta Sans',sans-serif
}
.journey-line {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  height:41px
}
.journey-line span {
  display:block;
  width:8px;
  height:8px;
  border:2px solid #327ce3;
  border-radius:50%
}
.journey-line span:last-child {
  background:#ffca55;
  border-color:#ffca55
}
.journey-line i {
  width:1px;
  flex:1;
  background:#cfd9e5
}
.journey-stops {
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  align-self:stretch;
  gap:9px;
  min-width:0
}
.journey-stops strong {
  font-size:13px;
  overflow-wrap:anywhere
}
.journey-stops small {
  font-size:10px;
  color:#8693a2
}
.journey-price {
  margin-left:auto;
  align-self:center;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  text-align:right;
  white-space:nowrap
}
.journey-price>span:first-child {
  font-size:10px;
  color:#8c99a7
}
.journey-price strong {
  font-size:21px;
  letter-spacing:-.6px;
  font-family:'Plus Jakarta Sans',sans-serif
}
.saving-chip {
  font-size:9px;
  background:#e9f6ed;
  color:#207a4a;
  padding:5px 7px;
  border-radius:6px;
  margin-top:5px
}
.journey-bottom {
  border-top:1px solid #eff2f6;
  padding-top:15px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px
}
.journey-bottom>span {
  font-size:10px;
  color:#8894a3
}
.secondary-button {
  border:none;
  border-radius:9px;
  background:#172d4a;
  color:#fff;
  font-size:11px;
  font-weight:800;
  padding:12px 14px;
  white-space:nowrap
}
.secondary-button span {
  margin-left:10px
}
.secondary-button:hover {
  background:#24548e
}
.fare-aside {
  position:sticky;
  top:22px;
  border:1px solid #e3eaf1;
  background:#fff;
  border-radius:16px;
  padding:25px
}
.fare-aside h3 {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:19px;
  margin:6px 0 19px
}
.fare-selected {
  font-weight:700;
  font-size:11px;
  color:#77879a;
  border-bottom:1px solid #e9edf3;
  padding-bottom:12px
}
.fare-line {
  display:flex;
  gap:14px;
  justify-content:space-between;
  align-items:baseline;
  color:#66778a;
  font-size:11px;
  padding:7px 0
}
.fare-line strong {
  color:#23364b;
  white-space:nowrap
}
.fare-line.line-subtotal {
  border-top:1px solid #ebeff3;
  margin-top:8px;
  padding-top:13px;
  font-weight:700
}
.fare-line.line-benefit {
  color:#1b8850
}
.fare-line.line-benefit strong {
  color:#13844a
}
.fare-line.line-total {
  border-top:1px solid #e5eaf0;
  margin-top:10px;
  padding-top:16px;
  font-weight:800;
  color:#17273b;
  font-size:14px
}
.fare-line.line-total strong {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:22px
}
.fare-disclaimer {
  border-top:1px solid #ebeff3;
  margin:16px 0 0;
  padding-top:15px;
  color:#97a2b0;
  font-size:10px
}
.auth-body {
  min-height:100vh;
  background:radial-gradient(circle at 20% 10%,#24405e,#0b1525 70%);
  display:flex;
  justify-content:center;
  align-items:center;
  padding:30px 18px
}
.auth-card {
  width:min(430px,100%);
  padding:37px;
  background:#fff;
  border-radius:20px;
  box-shadow:0 25px 70px #0004
}
.auth-card .wordmark {
  color:#18263a;
  margin-bottom:33px
}
.auth-card .eyebrow {
  color:#4679b6
}
.auth-card h1 {
  font-family:'Plus Jakarta Sans',sans-serif;
  margin:8px 0 10px;
  font-size:27px
}
.muted {
  color:#8490a0
}
.auth-card .muted {
  font-size:12px;
  margin:0 0 27px
}
.auth-form {
  display:grid;
  gap:17px
}
.auth-form label {
  font-weight:800;
  font-size:11px;
  color:#58677b
}
.auth-form input {
  display:block;
  border:1px solid #dde5ee;
  border-radius:10px;
  padding:14px 13px;
  width:100%;
  margin-top:7px;
  outline:0
}
.auth-form input:focus,.form-field:focus-within,.route-fields:focus-within {
  border-color:#3787eb
}
.auth-switch,.auth-back {
  text-align:center;
  font-size:12px;
  color:#7c8998;
  margin-top:20px
}
.auth-switch a,.auth-back a {
  color:#2769c7;
  font-weight:800
}
.auth-back {
  margin-top:25px
}
.subpage-body {
  background:#f5f7fa
}
.subpage-main {
  padding:48px 0 90px
}
.subpage-main>.eyebrow {
  color:#467dbd
}
.subpage-main h1 {
  font-size:36px;
  font-family:'Plus Jakarta Sans',sans-serif;
  letter-spacing:-1.5px;
  margin:9px 0
}
.subpage-intro {
  font-size:14px;
  color:#728297;
  margin-bottom:30px
}
.blank-state {
  border:1px dashed #cad5e3;
  background:#fff;
  border-radius:16px;
  text-align:center;
  padding:65px 20px
}
.blank-state p {
  color:#7d8b9c
}
.inline-button {
  width:max-content;
  margin:25px auto 0
}
.my-bookings {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px
}
.booking-card {
  border:1px solid #e1e9f1;
  padding:23px;
  background:#fff;
  border-radius:15px
}
.booking-top,.booking-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px
}
.booking-id {
  font-size:11px;
  color:#8391a1
}
.status {
  border-radius:20px;
  padding:7px 11px;
  background:#f1eaff;
  color:#6f48a0;
  font-size:10px;
  font-weight:800
}
.status-approved,.status-completed {
  background:#e7f7eb;
  color:#177347
}
.status-rejected,.status-cancelled {
  background:#ffeeeb;
  color:#ab4b40
}
.booking-route {
  display:flex;
  align-items:center;
  gap:13px;
  margin-top:20px;
  overflow-wrap:anywhere
}
.booking-route strong {
  font-size:14px
}
.booking-arrow {
  color:#4791e6;
  font-size:20px
}
.booking-card p {
  font-size:12px;
  color:#8391a0
}
.booking-bottom {
  border-top:1px solid #e9eef4;
  padding-top:14px;
  margin-top:18px
}
.booking-bottom strong {
  font-family:'Plus Jakarta Sans',sans-serif
}
.text-button {
  background:none;
  border:0;
  padding:5px 0;
  font-size:11px;
  font-weight:800;
  color:#2165b5
}
.text-button.danger {
  color:#b65050
}
.admin-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px
}
.panel {
  border-radius:16px;
  background:#fff;
  padding:25px;
  border:1px solid #e2e8f0;
  margin-bottom:20px
}
.panel h2 {
  font-family:'Plus Jakarta Sans',sans-serif;
  margin:0 0 17px;
  font-size:19px
}
.admin-form {
  display:grid;
  gap:12px
}
.admin-form label {
  font-size:11px;
  font-weight:800;
  color:#5a6c80
}
.admin-form input,.admin-form select {
  display:block;
  width:100%;
  margin-top:6px;
  padding:12px;
  border:1px solid #dfe7f0;
  border-radius:8px;
  background:#fff;
  font-size:13px
}
.admin-form .primary-button {
  margin-top:8px
}
.admin-table {
  width:100%;
  border-collapse:collapse;
  font-size:12px
}
.admin-table th {
  text-align:left;
  font-size:10px;
  letter-spacing:1px;
  color:#7f8b9b;
  border-bottom:1px solid #e4eaf1;
  padding:12px 8px
}
.admin-table td {
  border-bottom:1px solid #f0f2f5;
  padding:13px 8px;
  vertical-align:middle
}
.admin-table form {
  display:flex;
  align-items:center;
  gap:6px
}
.admin-table select {
  min-width:95px;
  padding:8px;
  border-radius:7px;
  border:1px solid #dce4ed
}
.admin-table button {
  padding:8px 10px;
  background:#173b6f;
  color:#fff;
  border:none;
  border-radius:7px;
  font-size:10px;
  font-weight:700
}
.table-scroll {
  overflow-x:auto
}
.admin-help {
  font-size:11px;
  color:#8491a0
}
.admin-msg {
  background:#e6f8ee;
  color:#17613f;
  padding:14px;
  border-radius:10px;
  margin:18px 0
}
.admin-msg.error {
  background:#ffefed;
  color:#a63e39
}
@media(max-width:1050px) {
  .hero-grid {
    gap:30px;
    grid-template-columns:minmax(0,1fr) minmax(405px,490px)
  }
  .hero-copy h1 {
    font-size:51px
  }
  .top-nav {
    gap:17px
  }
  .results-layout {
    grid-template-columns:minmax(0,1fr) 285px
  }
  .fare-aside {
    padding:19px
  }
}
@media(max-width:800px) {
  .site-header {
    height:76px
  }
  .hero-glow {
    top:76px;
    height:680px
  }
  .hero-grid {
    grid-template-columns:1fr;
    padding:42px 0 50px;
    gap:32px
  }
  .hero-copy h1 {
    font-size:50px;
    margin:16px 0
  }
  .hero-copy>p {
    max-width:100%
  }
  .hero-features {
    margin-top:20px
  }
  .mini-journey {
    display:none
  }
  .planner-card {
    max-width:600px;
    width:100%;
    margin:auto
  }
  .top-nav {
    display:none
  }
  .results-layout {
    grid-template-columns:1fr
  }
  .fare-aside {
    position:static;
    order:-1
  }
  .info-columns {
    margin-top:32px
  }
  .admin-grid {
    grid-template-columns:1fr
  }
  .my-bookings {
    grid-template-columns:1fr
  }
  .hero-glow {
    height:760px
  }
}
@media(max-width:540px) {
  .container {
    width:min(100% - 28px,540px)
  }
  .wordmark {
    font-size:19px
  }
  .brand-mark {
    width:35px;
    height:35px;
    font-size:22px
  }
  .site-header {
    height:68px
  }
  .hero-glow {
    top:68px;
    height:700px
  }
  .hero-grid {
    padding:35px 0 40px;
    gap:24px
  }
  .hero-copy h1 {
    font-size:43px;
    letter-spacing:-2.6px
  }
  .hero-copy>p {
    font-size:13px;
    margin:0
  }
  .hero-features {
    gap:10px;
    font-size:10px
  }
  .planner-card {
    padding:22px 17px;
    border-radius:18px
  }
  .planner-head h2 {
    font-size:22px
  }
  .planner-symbol {
    width:35px;
    height:35px
  }
  .form-grid {
    gap:9px
  }
  .form-field {
    padding:11px 10px
  }
  .route-fields {
    padding-left:12px
  }
  .membership-banner {
    padding:18px 15px;
    gap:12px;
    flex-wrap:wrap
  }
  .membership-icon {
    width:43px;
    height:43px
  }
  .membership-text {
    flex-basis:calc(100% - 70px)
  }
  .membership-link {
    margin-left:54px
  }
  .content-area {
    padding-top:0
  }
  .info-columns {
    grid-template-columns:1fr;
    gap:14px
  }
  .info-columns article {
    padding:10px
  }
  .info-icon {
    font-size:20px
  }
  .info-columns h3 {
    margin:5px 0
  }
  .footer-inner {
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    gap:4px;
    padding:16px 0
  }
  .section-heading h2 {
    font-size:25px
  }
  .journey-card {
    padding:16px
  }
  .journey-main {
    gap:9px
  }
  .journey-times strong {
    font-size:15px
  }
  .journey-stops strong {
    font-size:11px
  }
  .journey-price strong {
    font-size:16px
  }
  .journey-price>span:first-child {
    font-size:9px
  }
  .journey-bottom {
    align-items:flex-start;
    flex-direction:column
  }
  .journey-bottom .secondary-button {
    width:100%
  }
  .results {
    padding-top:34px
  }
  .auth-card {
    padding:26px 20px
  }
  .subpage-main {
    padding:35px 0
  }
  .subpage-main h1 {
    font-size:29px
  }
}

.mobile-nav {
  display:none;
}
@media(max-width:800px) {
  .mobile-nav {
    display:flex;
    gap:24px;
    overflow-x:auto;
    align-items:center;
    background:var(--navy);
    color:#b3bfd0;
    border-top:1px solid rgba(255,255,255,.07);
    padding:0 22px 13px;
    font-size:11px;
    font-weight:800;
    position:relative;
    z-index:5;
    white-space:nowrap;
    scrollbar-width:none;
  }
  .mobile-nav a {padding:8px 0;}
  .mobile-nav .mobile-active {color:#ffd878;}
}
/* Independent ZEUS Card / booking additions */
.table-input { width:min(100%,190px); padding:8px; font-size:12px; border:1px solid #dce5ee; border-radius:8px; background:#fff; }
.small-admin-button {border:0; border-radius:8px; background:#183a69; color:#fff; padding:9px 12px; font-size:12px; font-weight:700;}
.admin-inline-form {display:flex; align-items:center; gap:6px;}
.admin-inline-form select {padding:8px; background:#fff; border:1px solid #dce5ee; border-radius:7px;}
.booking-dialog {border:0;border-radius:20px;padding:0;width:min(530px,calc(100vw - 24px));max-height:calc(100vh - 25px);overflow:auto;box-shadow:0 25px 85px #06142955;color:var(--text);}
.booking-dialog::backdrop {background:rgba(7,21,40,.68);backdrop-filter:blur(4px);}
.booking-modal-form {padding:30px;display:grid;gap:15px;}
.booking-dialog-header {display:flex;justify-content:space-between;gap:18px;align-items:start;}
.booking-dialog-header h2 {margin:6px 0 0;font-family:'Plus Jakarta Sans',sans-serif;}
.booking-modal-form label {display:grid;gap:6px;font-size:13px;font-weight:700;}
.booking-modal-form label input {padding:12px;border:1px solid #dce5ee;border-radius:9px;width:100%;}
.dialog-close {font-size:28px;border:0;background:none;color:#556477;}
.modal-note {color:#69788c;font-size:12px;margin:0;line-height:1.5;}
.modal-calc {width:100%;}
.booking-price-box {padding:14px;background:#f0f6ff;border-radius:10px;font-size:15px;font-weight:700;}
.booking-success-content {padding:35px;text-align:center;display:grid;gap:16px;justify-items:center;}
.booking-success-content h2,.booking-success-content p {margin:0;}
.booking-success-content a {margin:0;}
.success-icon {width:60px;height:60px;background:#e4f6ee;color:#16734b;border-radius:50%;display:grid;place-items:center;font-size:32px;}
.dialog-close-bottom {border:0;background:none;padding:12px;color:#617286;}
.card-entry {background:#f5f8fc;border:1px solid #e2ebf6;border-radius:13px;padding:14px;margin:12px 0;}
.card-entry label {font-size:12px;font-weight:800;}
.card-entry-row {display:flex;align-items:center;gap:9px;margin-top:8px;}
.card-entry-row input {width:100%;background:#fff;padding:12px;border:1px solid #d6e0ee;border-radius:8px;font:inherit;}
.card-entry p {color:#718096;font-size:11px;margin:8px 0 0;}
.optional {font-size:11px;color:#8391a4;font-weight:400;}
@media(max-width:650px){.booking-modal-form{padding:20px}.admin-inline-form{flex-direction:column;align-items:stretch}.table-input{min-width:115px}}
