/* Styles for public operator booking pages only. */
.booking-page{
  --booking-ink:#132e38;
  --booking-ink-soft:#2b4a55;
  --booking-road:#f2b632;
  --booking-bg:#f4f7f6;
  --booking-line:#d6e0de;
  --booking-muted:#5b7079;
  --booking-display:"Bricolage Grotesque",system-ui,sans-serif;
  --booking-body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  background:var(--booking-bg);
  color:var(--booking-ink);
  font:17px/1.55 var(--booking-body);
}
.booking-page .topbar{
  min-height:70px;
  background:var(--booking-bg);
  border-bottom:0;
}
.booking-page .brand{
  gap:10px;
  font:800 18px/1.2 var(--booking-display);
}
.booking-page .brand strong{display:inline;letter-spacing:0}
.booking-page .brand-mark{
  width:32px;height:32px;padding:0;border-radius:8px;
  display:grid;place-items:center;
  background:var(--booking-ink);color:var(--booking-road);
  font:800 14px/1 var(--booking-display);
}
.booking-page .header-caption{color:var(--booking-muted)}
.booking-page .booking{
  max-width:1080px;
  padding:18px 0 64px;
}
.booking-page h1,.booking-page h2,.booking-page h3{
  font-family:var(--booking-display);
  color:var(--booking-ink);
}
.booking-page h2{font-size:25px;letter-spacing:-.025em}
.booking-page .loading{border-radius:16px}
.booking-page .operator-head{
  display:flex;align-items:center;gap:20px;flex-wrap:wrap;
  margin:0 0 32px;padding:18px 0 20px;
}
.booking-page .operator-logo{
  width:72px;height:72px;border-radius:50%;background:var(--booking-road);
  color:var(--booking-ink);font:800 26px/1 var(--booking-display);
}
.booking-page .operator-logo img{border-radius:50%}
.booking-page .operator-intro{min-width:0;flex:1 1 280px}
.booking-page .operator-head h1{
  font-size:clamp(32px,5vw,48px);letter-spacing:-.025em;
  line-height:1.08;margin:0 0 5px;max-width:none;
}
.booking-page .operator-head .lead{
  color:var(--booking-ink-soft);font-size:16px;line-height:1.45;margin:0;
}
.booking-page .operator-details{
  border:0;padding:0;margin:5px 0 0;
  color:var(--booking-muted);font-size:14px;
}
.booking-page .operator-details p{display:inline;margin:0}
.booking-page .operator-details p+p:not(:empty)::before{content:" · "}
.booking-page .operator-actions{
  margin-left:auto;display:flex;gap:10px;flex-wrap:wrap;
}
.booking-page .operator-actions .secondary{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;border:1.5px solid var(--booking-ink);
  border-radius:12px;padding:9px 15px;
  background:transparent;color:var(--booking-ink);
  text-decoration:none;font-weight:600;font-size:15px;
}
.booking-page .operator-actions .secondary:hover{background:#fff}
.booking-page .booking-layout{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
  align-items:start;gap:32px;
}
.booking-page .routes-panel{min-width:0}
.booking-page .section-head{margin:0 0 14px}
.booking-page .section-head h2{margin:0 0 2px}
.booking-page #service-section .section-head p{
  margin:0;color:var(--booking-muted);font-size:14px;
}
.booking-page .service-grid{display:grid;grid-template-columns:1fr;gap:12px}
.booking-page .service-card{
  display:block;width:100%;padding:18px 20px;
  border:1.5px solid var(--booking-line);border-radius:16px;
  background:#fff;text-align:left;color:var(--booking-ink);
  cursor:pointer;box-shadow:none;
}
.booking-page .service-card:hover{
  border-color:var(--booking-ink);
  box-shadow:none;
}
.booking-page .service-card.is-selected,
.booking-page .service-card[aria-pressed="true"]{
  border-color:var(--booking-ink);
  box-shadow:inset 6px 0 0 var(--booking-road);
}
.booking-page .service-card:focus-visible,
.booking-page .tier-option:focus-within{
  outline:3px solid var(--booking-road);outline-offset:2px;
}
.booking-page .service-card .category{
  display:block;margin-bottom:4px;color:var(--booking-muted);
  font:500 14px/1.4 var(--booking-body);
  letter-spacing:0;text-transform:none;
}
.booking-page .service-card h3,
.booking-page .service-card .route-path{
  font:600 18px/1.35 var(--booking-body);
  color:var(--booking-ink);margin:0 0 5px;
}
.booking-page .service-card p{
  margin:0 0 6px;color:var(--booking-ink-soft);
  font-size:15px;font-weight:400;
}
.booking-page .service-card .meta{
  margin:6px 0 0;color:var(--booking-ink-soft);
  font-size:14px;font-weight:500;
}
.booking-page .service-card .route-price{
  margin:8px 0 0;color:var(--booking-ink);
  font-size:15px;font-weight:500;
}
.booking-page .service-card .route-price strong{font-weight:700}
.booking-page .service-photo{
  width:calc(100% + 40px);height:140px;
  margin:-18px -20px 16px;border-radius:15px 15px 0 0;
}
.booking-page .operator-policy{margin-top:20px;font-size:15px}
.booking-page .operator-policy:has(#operator-policy:empty){display:none}
.booking-page .operator-policy summary,
.booking-page .more-trip-details summary{
  cursor:pointer;font-weight:600;text-decoration:underline;
  text-underline-offset:2px;
}
.booking-page .operator-policy p{margin:8px 0;color:var(--booking-ink-soft)}
.booking-page #request-only-note{
  margin:18px 0 0;border:0;border-radius:10px;
  padding:12px 14px;background:#e8efed;
  color:var(--booking-ink-soft);font-size:14px;
}
.booking-page .booking-card{
  min-width:0;padding:28px;background:#fff;
  border:1px solid var(--booking-line);border-radius:20px;
}
.booking-page .booking-hint h2{margin:0 0 6px}
.booking-page .booking-hint p{margin:0;color:var(--booking-muted)}
.booking-page .booking-card:has(#booking-form:not([hidden])) .booking-hint,
.booking-page .booking-card:has(#result:not([hidden])) .booking-hint{display:none}
.booking-page #booking-form{
  margin:0;padding:0;border:0;background:transparent;
}
.booking-page .booking-form-head{align-items:start}
.booking-page .booking-form-head h2{margin:0}
.booking-page .chosen-service{
  margin:4px 0 0;color:var(--booking-muted);font-size:14px;
}
.booking-page #change-service{
  padding:2px 0;margin:4px 0 0;
  color:var(--booking-ink-soft);font-size:13px;
}
.booking-page #booking-explanation:empty,
.booking-page #service-terms:empty{display:none}
.booking-page #booking-explanation{
  margin:4px 0 14px;font-size:14px;color:var(--booking-ink-soft);
}
.booking-page #service-terms{
  padding:0;margin:0 0 14px;background:none;border:0;
  color:var(--booking-muted);font-size:13px;
}
.booking-page #quote-route-note{margin:0 0 14px}
.booking-page .tier-fieldset{
  margin:14px 0 20px;padding:0;border:0;
}
.booking-page .tier-fieldset legend{
  margin-bottom:2px;font:600 15px/1.5 var(--booking-body);
}
.booking-page .tier-fieldset p{
  margin:0 0 10px;color:var(--booking-muted);font-size:13px;
}
.booking-page .tier-options{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;
}
.booking-page .tier-option{
  position:relative;display:grid!important;place-content:center;
  min-width:0;min-height:76px;padding:10px 6px;
  border:1.5px solid var(--booking-line);border-radius:12px;
  background:#fff;text-align:center;cursor:pointer;
}
.booking-page .tier-option:has(input:checked){
  border-color:var(--booking-ink);background:var(--booking-bg);
}
.booking-page .tier-option input{
  position:absolute;width:1px;height:1px;min-height:0;
  padding:0;margin:0;opacity:0;
}
.booking-page .tier-option .tier-copy{display:block;min-width:0}
.booking-page .tier-option strong{
  display:block;color:var(--booking-ink);
  font:700 15px/1.25 var(--booking-body);
}
.booking-page .tier-option small{
  display:block;margin-top:4px;color:var(--booking-muted);
  font:500 12px/1.25 var(--booking-body);
}
.booking-page .form-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.booking-page .form-grid label{
  color:var(--booking-ink);
  font:600 14px/1.4 var(--booking-body);
}
.booking-page .form-grid .wide{grid-column:1/-1}
.booking-page .optional{color:var(--booking-muted);font-weight:400}
.booking-page .flight-details{
  min-width:0;margin:2px 0;padding:16px;
  border:1px solid var(--booking-line);border-radius:12px;
  background:var(--booking-bg);
}
.booking-page .flight-details[hidden]{display:none}
.booking-page .flight-details legend{padding:0 5px;font-weight:700}
.booking-page .flight-details p{
  margin:0 0 12px;color:var(--booking-muted);font-size:13px;
}
.booking-page .flight-details .flight-unknown{
  display:flex;align-items:center;gap:8px;margin-top:12px;
  font-size:13px;font-weight:500;cursor:pointer;
}
.booking-page .flight-unknown input[type=checkbox]{
  display:block;width:20px;height:20px;min-height:20px;flex:none;
  margin:0;padding:0;accent-color:var(--booking-ink);
}
.booking-page .flight-details input:disabled{background:#e8efed;color:var(--booking-muted)}
.booking-page input:not([type=checkbox]):not([type=radio]),
.booking-page select,.booking-page textarea{
  width:100%;min-height:44px;margin-top:6px;
  padding:10px 12px;border:1.5px solid var(--booking-line);
  border-radius:10px;background:#fff;color:var(--booking-ink);
  font:16px/1.35 var(--booking-body);
}
.booking-page input[readonly]{background:var(--booking-bg)}
.booking-page textarea{min-height:78px;resize:vertical}
.booking-page input::placeholder,.booking-page textarea::placeholder{
  color:#81929a;opacity:1;
}
.booking-page .more-trip-details{
  margin-top:18px;padding:14px 0;border-top:1px solid var(--booking-line);
  color:var(--booking-ink-soft);font-size:14px;
}
.booking-page .more-trip-details summary span{
  color:var(--booking-muted);font-weight:400;
}
.booking-page .more-trip-details .form-grid{padding-top:14px}
.booking-page .more-trip-details .fineprint{margin:0}
.booking-page .fare-summary{
  margin-top:20px;padding:16px 0 0;border:0;
  border-top:1px solid var(--booking-line);background:transparent;
  color:var(--booking-ink);font-size:17px;line-height:1.4;
}
.booking-page .fare-summary div{font:800 24px/1.2 var(--booking-display)}
.booking-page .fare-summary small{
  margin-top:5px;color:var(--booking-muted);
  font:400 13px/1.45 var(--booking-body);
}
.booking-page #booking-fineprint{margin:10px 0;color:var(--booking-muted)}
.booking-page #form-error{margin:14px 0}
.booking-page #submit,.booking-page #status-link{
  width:100%;min-height:50px;margin-top:8px;padding:12px 18px;
  border:0;border-radius:12px;
  background:var(--booking-ink);color:#fff;
  font:700 16px/1.3 var(--booking-body);
}
.booking-page #submit:hover,.booking-page #status-link:hover{
  background:var(--booking-ink-soft);
}
.booking-page #submit:disabled{background:#d9dfdc;color:#576665}
.booking-page .result{
  max-width:none;margin:0;padding:0;border:0;
  background:transparent;
}
.booking-page .result h2{margin:0 0 8px}
.booking-page .result>p{margin:0 0 14px}
.booking-page .result-details{
  display:grid;grid-template-columns:minmax(90px,1fr) 1.8fr;
  margin:18px 0;padding:0;border-top:1px solid var(--booking-line);
}
.booking-page .result-details dt,
.booking-page .result-details dd{
  margin:0;padding:10px 0;border-bottom:1px solid var(--booking-line);
  font-size:14px;
}
.booking-page .result-details dt{color:var(--booking-muted)}
.booking-page .result-details dd{text-align:right;font-weight:600}
.booking-page .reference-label{
  margin:16px 0 4px!important;color:var(--booking-muted);font-size:13px;
}
.booking-page .reference{
  display:inline-block;padding:4px 10px;border:1px solid var(--booking-line);
  border-radius:8px;background:var(--booking-bg);
  font:700 17px/1.4 var(--booking-body);
  letter-spacing:0;
}
.booking-page .result .fineprint{margin:10px 0 0;color:var(--booking-muted)}
.booking-page footer{
  padding:24px 0 40px;border-top:1px solid var(--booking-line);
  color:var(--booking-muted);font-size:14px;
}
.booking-page a:focus-visible,.booking-page button:focus-visible,
.booking-page input:focus-visible,.booking-page select:focus-visible,
.booking-page textarea:focus-visible,.booking-page summary:focus-visible{
  outline:3px solid var(--booking-road);outline-offset:2px;
}
@media(max-width:860px){
  .booking-page .booking-layout{grid-template-columns:1fr;gap:24px}
  .booking-page .operator-actions{margin-left:0;width:100%}
  .booking-page .operator-head{padding-bottom:10px}
}
@media(max-width:540px){
  .booking-page .booking{padding-top:12px}
  .booking-page .operator-logo{width:56px;height:56px;font-size:19px}
  .booking-page .operator-intro{flex-basis:calc(100% - 76px)}
  .booking-page .operator-head h1{font-size:32px}
  .booking-page .booking-card{padding:20px}
  .booking-page .form-grid{grid-template-columns:1fr}
  .booking-page .form-grid .wide{grid-column:auto}
  .booking-page .tier-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .booking-page .tier-option{
    min-height:68px;text-align:center;place-content:center;padding:8px 4px;
  }
  .booking-page .tier-option .tier-copy{display:block}
  .booking-page .tier-option small{margin-top:4px;font-size:11px;overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){
  .booking-page *{scroll-behavior:auto!important;transition:none!important}
}
