/* Neway corporate design 2025. Local font; original supplied logo. */
@font-face {
    font-family: "Libre Franklin";
    src: url("./assets/libre-franklin.ttf") format("truetype");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}
:root, :root[data-theme="light"], :root[data-theme="dark"] {
    color-scheme: light;
    --font: "Libre Franklin", Arial, sans-serif;
    --bg: #f4f6f8;
    --surface: #fff;
    --surface2: #f4f6f8;
    --ink: #002950;
    --muted: #596778;
    --line: #e1e6eb;
    --line2: #c4cdd6;
    --brand: #004177;
    --brand2: #002950;
    --green: #009851;
    --focus: 0 0 0 3px rgba(0,103,159,.16);
    --maxw: 1160px;
    --topbar-bg: #fff;
    --hover: #edf3f8;
    --shadow: 0 16px 48px rgba(0,41,80,.09);
    --shadow2: 0 6px 20px rgba(0,41,80,.08);
    --overlay-bg: rgba(255,255,255,.88);
    --modal-backdrop: rgba(0,41,80,.5);
}
html { scroll-behavior: smooth; }
body { background: var(--bg); font-weight: 400; }
body::before { display: none; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible { outline: 3px solid #00679f; outline-offset: 4px; }
.topbar { position: relative; color: var(--ink); background: var(--topbar-bg); border: 0; backdrop-filter: none; }
.topbar .inner { max-width: 1200px; padding: 6px 20px; gap: 28px; flex-wrap: nowrap; }
.display-settings { display: flex; gap: 10px; margin-left: auto; flex: 0 0 auto; }
.display-settings label { margin: 0; font-size: 9px; color: #637282; }
.display-settings select { display: block; height: 34px; padding: 0 8px; margin-top: 3px; min-width: 74px; font-size: 11px; font-weight: 500; }
.display-status { padding: 10px 20px; font-size: 11px; color: #596778; background: #f3f7fa; border-radius: 12px 12px 0 0; }
.display-status[hidden] { display: none; }
@media (max-width: 1150px) { .header-nav { display: none; } }
.brand { flex: 0 0 auto; gap: 20px; text-decoration: none; color: #000; }
.brand-wordmark { font-size: 22px; font-weight: 650; letter-spacing: -.8px; white-space: nowrap; }
.brand-wordmark > span { font-weight: 400; }
.ac-country { display: inline-flex; align-items: center; gap: 7px; color: #596778; font-size: 11px; }
.country-flag { object-fit: contain; border-radius: 2px; }
@media (max-width: 720px) { .brand { gap: 8px; } .brand-wordmark { font-size: 18px; } .header-nav { margin-left: 0; } }
.brand .logo { width: 68px; height: 68px; display: block; background: none; object-fit: contain; }
.brand-caption { border-left: 1px solid #dedede; padding: 8px 0 8px 20px; }
.brand-caption strong { display: block; font-size: 14px; font-weight: 650; }
.brand-caption span { display: block; font-size: 11px; color: #68717a; margin-top: 5px; }
.header-nav { display: flex; gap: 26px; margin-left: auto; align-items: center; }
.header-nav a { color: #002950; font-size: 12px; font-weight: 550; text-decoration: none; padding: 12px 0; }
.header-nav a:hover { text-decoration: underline; text-underline-offset: 6px; }
.opmode { flex-basis: 310px; }
.opmode-label { color: #596778; font-size: 9px; letter-spacing: 1.2px; margin-bottom: 5px; }
.opseg { background: #edf2f6; box-shadow: none; border: 1px solid #d8e1e8; }
.opseg-slider { background: #f07800; box-shadow: 0 2px 6px rgba(0,41,80,.12); }
.opseg-option { min-height: 40px; font-size: 13px; padding: 0 12px; font-weight: 600; color: #004177; }
.opseg-option.active { color: #002950; -webkit-text-fill-color: #002950; }
.opseg-option svg { width: 18px; height: 18px; }
.hero { position: relative; background: var(--bg); color: #fff; border: 0; overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(0,41,80,.9) 0%,rgba(0,41,80,.5) 45%,rgba(0,41,80,.08) 100%),url("./bg.webp") center 47% / cover; }
/* Blend the photograph into the page below without fading the hero text. */
.hero::before { -webkit-mask-image: linear-gradient(to bottom,#000 0%,#000 calc(100% - 170px),transparent 100%); mask-image: linear-gradient(to bottom,#000 0%,#000 calc(100% - 170px),transparent 100%); }
.hero .inner { position: relative; display: block; max-width: 1160px; padding: 34px 0 100px; margin: auto; }
.hero-eyebrow { margin: 0 0 17px; color: #fff; font-size: 10px; font-weight: 600; letter-spacing: 2.2px; text-transform: uppercase; display: flex; align-items: center; gap: 12px; }
.hero-eyebrow::before { content: ""; width: 28px; height: 3px; background: #f07800; }
.hero h1 { font-size: clamp(36px,4.1vw,50px); font-weight: 650; line-height: 1.1; letter-spacing: -2px; text-transform: none; margin: 0; max-width: 640px; }
.hero-description { font-size: 14px; font-weight: 300; line-height: 1.8; margin: 18px 0 0; max-width: 440px; color: #eef4f9; }
.hero-caption { position: absolute; right: 0; bottom: 100px; display: flex; gap: 8px; align-items: center; font-size: 10px; color: #fff; letter-spacing: .5px; }
.hero-caption::before { content: ""; width: 6px; height: 6px; background: #f07800; border-radius: 50%; }
.wrap { max-width: 1160px; padding: 0; margin: -68px auto 0; overflow: visible; }
.panel { background: #fff; border: 1px solid #e3e8ed; border-radius: 12px; box-shadow: var(--shadow); overflow: visible; }
.panel > .hd { padding: 28px 32px 23px; border-bottom: 1px solid #e7ebef; flex-wrap: nowrap; }
#panelTitle { display: block !important; font-size: 23px; font-weight: 650; text-transform: none; letter-spacing: -.7px; }
#panelSub { display: block !important; font-size: 12px; margin-top: 7px; font-weight: 400; }
.panel > .bd { padding: 25px 32px 26px; }
#stepper { display: flex !important; padding: 0; gap: 22px; overflow: visible; }
.step { border: 0; background: none; padding: 0; font-size: 11px; color: #677787; gap: 9px; }
.step .dot { height: 25px; width: 25px; border-radius: 50%; font-size: 10px; border-color: #c8d1da; color: #697989; }
.step.active { color: #002950; font-weight: 650; }
.step.active .dot { background: #f07800; border-color: #f07800; color: #002950; }
.step.done .dot { background: #e6f4ed; border-color: #009851; color: #007440; }
.booking-meta { display: none; }
.booking-fields { align-items: start; gap: 18px; margin-top: 0; }
.booking-fields > .trip-field { grid-column: 1 / -1; margin-bottom: 3px; }
.trip-field > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.seg { gap: 23px; border: 0; background: none; display: flex; }
.seg button { display: flex; align-items: center; gap: 8px; padding: 0; min-height: 28px; background: none; border: 0; color: #566676; font-size: 12px; font-weight: 450; }
.seg button::before { content: ""; box-sizing: border-box; width: 16px; height: 16px; border: 1px solid #aab7c3; border-radius: 50%; background: #fff; }
.seg button.active { background: none; color: #002950; border: 0; box-shadow: none; font-weight: 600; }
.seg button.active::before { border: 5px solid #f07800; }
.booking-fields > .route-fields { grid-column: span 6; }
.booking-fields > .date-field, .booking-fields > .cargo-field { grid-column: span 3; }
.booking-fields[data-trip="oneway"] > .date-field { grid-column: span 6; }
.booking-fields[data-mode="freight"] > .date-field { grid-column: span 3; }
.leg { border: 0; background: none; box-shadow: none; margin: 0; }
.leg + .leg { margin-top: 16px; }
.leg .leghd { background: none; border: 0; padding: 0 0 10px; color: #596778; font-size: 11px; }
.route-fields .leg:only-child .leghd { display: none; }
.leg .legbd { padding: 0; }
.leggrid { position: relative; grid-template-columns: 1fr 1fr; gap: 12px; }
label { color: #566575; font-size: 10px; font-weight: 550; margin-bottom: 8px; }
input, select, textarea { border: 1px solid #c8d2dc; border-radius: 5px; background: #fff; color: #002950; -webkit-text-fill-color: #002950; }
input, select { height: 59px; padding: 0 15px; font-size: 14px; font-weight: 550; }
input::placeholder, textarea::placeholder { color: #748190; -webkit-text-fill-color: #748190; font-weight: 400; }
input:focus, select:focus, textarea:focus { border-color: #00679f; box-shadow: var(--focus); }
input[type="date"] { font-size: 13px; }
.date-trigger { position: relative; width: 100%; min-height: 76px; text-align: left; padding: 14px 40px 14px 15px; border: 1px solid #c8d2dc; border-radius: 5px; background: #fff; color: #002950; font-family: inherit; cursor: pointer; }
.date-trigger > span:first-child { font-size: 15px; font-weight: 600; white-space: nowrap; }
.date-trigger small { display: block; margin-top: 6px; font-size: 11px; color: #637282; }
.date-icon { position: absolute; right: 14px; top: 24px; font-size: 22px; }
.date-trigger[aria-expanded="true"] { border-color: #004177; border-radius: 5px 5px 0 0; }
.date-calendar { position: fixed; inset: auto; margin: 0; box-sizing: border-box; padding: 20px; border: 1px solid #004177; border-radius: 0 8px 8px 8px; background: #fff; color: #002950; box-shadow: 0 18px 40px rgba(0,41,80,.18); font-family: inherit; }
.calendar-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; font-size: 16px; }
.calendar-head button { border: 0; background: #f3f7fa; border-radius: 5px; color: #002950; width: 36px; height: 36px; font-size: 24px; cursor: pointer; }
.calendar-days { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 4px; }
.calendar-days > span { text-align: center; padding: 6px 0; color: #637282; font-size: 11px; }
.calendar-days button { border: 0; background: #fff; color: #002950; border-radius: 6px; min-height: 38px; font: inherit; font-size: 13px; cursor: pointer; }
.calendar-days button:hover { background: #edf3f8; }
.calendar-days button[aria-pressed="true"] { background: #004177; color: #fff; }
.calendar-days button:disabled { opacity: .3; cursor: default; }
.route-swap { position: absolute; left: 50%; top: 39px; transform: translateX(-50%); width: 29px; height: 29px; border: 1px solid #b7c6d4; border-radius: 50%; background: #fff; color: #004177; cursor: pointer; display: grid; place-items: center; z-index: 2; }
.route-swap:hover { background: #edf3f8; }
.route-swap svg { width: 15px; height: 15px; }
.route-controls { margin-top: 11px; }
.mini { font-size: 10px; line-height: 1.65; color: #6b7784; }
.route-controls .btn { font-size: 11px; padding: 5px 0; height: auto; color: #004177; border: 0; text-decoration: underline; text-underline-offset: 3px; }
.actions { border-top: 1px solid #e7ebef; margin-top: 23px; padding-top: 21px; }
.search-note { margin-right: auto; font-size: 11px; color: #637282; line-height: 1.6; max-width: 390px; }
.search-note strong { display: block; color: #002950; font-weight: 550; font-size: 12px; }
.btn { border-radius: 5px; font-size: 12px; font-weight: 550; }
.btn.primary, .actions .btn.primary { color: #002950; -webkit-text-fill-color: #002950; background: #f07800; border-color: #f07800; min-width: 192px; height: 52px; font-size: 13px; font-weight: 650; box-shadow: none; }
.btn.primary:hover, .actions .btn.primary:hover { background: #002950; border-color: #002950; color: #fff; -webkit-text-fill-color: #fff; }
.search-action::after { content: "\2192"; font-size: 19px; margin-left: 18px; }
.ac-menu { border-radius: 7px; border: 1px solid #cad5df; box-shadow: 0 10px 30px rgba(0,41,80,.16); background: #fff; }
.ac-item { padding: 14px 16px; color: #002950; }
.ac-item:hover { background: #edf3f8; }
.ac-top { font-size: 13px; }
.ac-sub { font-size: 11px; margin-top: 4px; color: #5a6b7c; }
input.ac-open { border-color: #00679f; border-radius: 5px 5px 0 0; box-shadow: 0 0 0 1px #00679f; }
.ac-menu { border-radius: 0 0 8px 8px; border-color: #00679f; border-top-color: #e1e6eb; padding: 5px 0; box-shadow: 0 14px 26px rgba(0,41,80,.13); }
.ac-item + .ac-item { border-top: 1px solid #edf1f4; }
.ac-top > span:first-child { background: #edf4f9; border-radius: 4px; padding: 4px 7px; font-weight: 650; letter-spacing: .5px; }
.ac-sub { line-height: 1.5; margin-top: 7px; }
.ac-loading, .ac-empty { position: relative; overflow: hidden; padding: 22px 16px; color: #596778; font-size: 12px; }
.ac-loading-bar { position: absolute; top: 0; left: 0; width: 35%; height: 3px; background: #f07800; animation: airport-loading 1.1s ease-in-out infinite; }
@keyframes airport-loading { from { transform: translateX(-100%); } to { transform: translateX(390%); } }
.journey-guide { max-width: 1160px; margin: 44px auto 42px; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 40px; }
.journey-guide article { display: flex; align-items: start; gap: 15px; }
.guide-number { color: #9c9e9e; font-size: 12px; padding-top: 2px; font-weight: 550; }
.journey-guide h2 { margin: 0 0 7px; font-size: 13px; font-weight: 650; color: #002950; }
.journey-guide p { margin: 0; font-size: 11px; line-height: 1.7; color: #697787; max-width: 280px; }
.site-footer { border-top: 1px solid #dfe5eb; padding: 23px 0; }
.site-footer .inner { max-width: 1160px; margin: auto; display: flex; justify-content: space-between; gap: 20px; color: #6b7784; font-size: 10px; line-height: 1.7; }
.site-footer strong { color: #002950; font-weight: 600; }
.summary, .qcard, .quoteCard, .jmodal .card { border-radius: 8px; border-color: #d9e2e9; }
.summary { background: #f5f8fa; }
.result { padding: 0; border: 0; background: none; margin-top: 24px; }
.result .rt { font-size: 18px; font-weight: 650; text-transform: none; letter-spacing: -.3px; color: #002950; }
.result .sub { color: #637282; font-size: 12px; }
.qbox, .embedWrap { border: 1px solid #d9e2e9; border-radius: 8px; }
.qbox > .ttl { font-size: 12px; font-weight: 600; color: #596778; }
.qitem { border-radius: 6px; border-color: #d9e2e9; padding: 15px; }
.qitem.active { background: #f3f7fa; border-color: #004177; box-shadow: inset 3px 0 #004177; }
.qitem:hover { background: #f0f5f9; }
.qtitle { display: flex; flex-wrap: wrap; gap: 4px 8px; }
.qhint--err { color: #596778; line-height: 1.6; }
.qprice .qpriceVal { color: #004177; }
.embedHd { background: #f5f8fa; border-color: #d9e2e9; }
.embedHd .ttl { color: #002950; }
.result .qgrid { height: auto; align-items: start; }
.qbox { height: auto; }
.qlist { overflow: visible; max-height: none; }
.embedWrap { height: auto; border: 0; background: transparent; overflow: visible; }
.embedHd { background: none; padding: 16px; margin-bottom: 18px; gap: 16px; }
.embedHd > .right { display: flex; flex-wrap: wrap; gap: 10px; }
.embedHd > div { min-width: 0; }
.embedHd .operator-identity { flex-wrap: wrap; }
.embedHd .ttl { text-transform: none; letter-spacing: 0; font-size: 15px; }
iframe.embedFrame { flex: none; min-height: 0; background: transparent; }
.embedFt { position: static; background: none; backdrop-filter: none; padding: 20px 0 0; }
.chip { background: #f0f4f7; border-color: #d8e2ea; color: #496276; border-radius: 4px; }
.jmodal .card .hd { background: #f3f6f9; }
.jmodal .card .hd .t { color: #002950; }
.jmodal .card label { color: #596778; }
body[data-booking-step="review"] .hero .inner { padding-top: 30px; padding-bottom: 92px; }
body[data-booking-step="review"] .hero h1 { font-size: 36px; }
body[data-booking-step="review"] .hero-description, body[data-booking-step="review"] .hero-caption { display: none; }
body[data-booking-step="review"] .opmode { display: none; }
.review-back { margin-bottom: 18px; }
#main > .review-back:last-child { margin-top: 24px; margin-bottom: 0; }
@media (max-width: 720px) {
    .embedFt { display: block; padding-top: 18px; }
    .embedFt .btn.primary { width: 100%; min-width: 0; }
    #main > .review-back:last-child .btn { width: 100%; min-height: 48px; }
}
.lowest-fare { width: 100%; display: flex; align-items: center; gap: 24px; text-align: left; padding: 22px 24px; border: 1px solid #d9e2e9; border-left: 4px solid #004177; border-radius: 8px; background: #fff; color: #002950; font-family: inherit; cursor: pointer; }
.lowest-fare:hover { background: #f3f7fa; border-color: #004177; }
.lowest-copy { display: grid; gap: 7px; flex: 1; }
.lowest-label { font-size: 10px; text-transform: uppercase; letter-spacing: 1.3px; font-weight: 650; width: fit-content; border: 1px solid #bbd1df; border-radius: 20px; padding: 5px 10px; color: #004177; }
.lowest-copy strong { font-size: 19px; }
.lowest-copy > span:last-child, .lowest-price > span { font-size: 12px; color: #596778; }
.lowest-price { display: grid; gap: 6px; text-align: right; }
.lowest-price strong { font-size: 25px; white-space: nowrap; }
.lowest-arrow { font-size: 25px; }
#quotePreview:focus { outline: none; }
@media (max-width: 520px) {
    .lowest-fare { flex-wrap: wrap; gap: 16px; padding: 18px; }
    .lowest-copy { flex-basis: 100%; }
    .lowest-price { text-align: left; flex: 1; }
}
.review-back .btn { padding: 11px 16px; border-color: #c4cdd6; color: #002950; font-size: 13px; }
@media (max-width: 1239px) {
    .hero .inner, .wrap, .journey-guide, .site-footer .inner { margin-left: 32px; margin-right: 32px; }
    .hero-caption { right: 0; }
}
@media (max-width: 1050px) {
    .brand-caption { display: none; }
    .booking-fields > .route-fields { grid-column: 1 / -1; }
    .booking-fields > .date-field, .booking-fields > .cargo-field, .booking-fields[data-mode="freight"] > .date-field { grid-column: span 6; }
}
@media (max-width: 720px) {
    .topbar .inner { padding: 6px 20px; gap: 12px; flex-wrap: wrap; }
    .brand .logo { width: 56px; height: 56px; }
    .header-nav { gap: 20px; }
    .header-nav a { font-size: 11px; }
    .opmode { flex: 1 0 100%; }
    .opmode-label { margin-top: 0; }
    .opseg-option { min-height: 39px; }
    .hero .inner { padding-top: 34px; padding-bottom: 87px; }
    .hero .inner, .wrap, .journey-guide, .site-footer .inner { margin-left: 20px; margin-right: 20px; }
    .hero h1 { font-size: 38px; letter-spacing: -1.4px; }
    .hero-description { font-size: 12px; max-width: 290px; }
    .hero-caption { display: none; }
    .wrap { margin-top: -42px; }
    .panel > .hd { padding: 22px 20px 18px; display: block; }
    #panelTitle { font-size: 21px; }
    #panelSub { font-size: 11px; }
    #stepper { margin-top: 20px; gap: 22px; }
    .step { font-size: 10px; }
    .panel > .bd { padding: 22px 20px; }
    input, select, input[type="date"] { font-size: 16px; }
    .booking-fields { gap: 16px; }
    .booking-fields > .date-field, .booking-fields > .cargo-field, .booking-fields[data-trip="oneway"] > .date-field, .booking-fields[data-mode="freight"] > .date-field { grid-column: span 12; }
    .leggrid { grid-template-columns: 1fr; gap: 15px; }
    .route-swap { left: auto; right: 12px; top: 72px; transform: rotate(90deg); }
    .actions { flex-wrap: wrap; gap: 16px !important; }
    .search-note { width: 100%; max-width: none; font-size: 10px; }
    .actions .btn.primary { width: 100%; }
    .journey-guide { grid-template-columns: 1fr; gap: 23px; margin-top: 30px; margin-bottom: 30px; }
    .journey-guide p { max-width: none; }
    .site-footer .inner { flex-direction: column; gap: 8px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
@media (max-width: 720px) {
    .topbar .inner { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px 10px; padding: 7px 14px; }
    .topbar .header-nav { display: none; }
    .brand { gap: 3px; min-width: 0; }
    .brand .logo { width: 40px; height: 40px; }
    .brand-wordmark { font-size: 15px; letter-spacing: -.6px; }
    .display-settings { grid-column: 2; grid-row: 1; gap: 5px; }
    .display-settings select { min-width: 62px; width: 68px; padding: 0 3px; font-size: 10px; }
    .opmode { grid-column: 1 / -1; grid-row: 2; }
    .display-settings label { font-size: 8px; }
}
/* Flight search journey */
.pageOverlay .loader { width: min(620px, calc(100vw - 32px)); display: flex; flex-direction: column; padding: 24px; border-radius: 20px; background: #fff; box-sizing: border-box; }
#routeFlightAnimation { width: 100%; }
#routeFlightAnimation svg { width: 100%; display: block; }
.pageOverlay .loaderTxt { font-size: 17px; color: #002950; padding-bottom: 12px; white-space: normal; text-align: center; }
@media (prefers-reduced-motion: reduce) { .flying-plane { display: none; } }
/* Request is a separate page in the booking flow, with normal document scrolling. */
body.request-page-open .hero, body.request-page-open #booking, body.request-page-open .journey-guide, body.request-page-open .opmode { display: none; }
#joinModal.request-page { position: static; inset: auto; z-index: auto; background: transparent; backdrop-filter: none; padding: 32px 20px 60px; min-height: 65vh; }
#joinModal.request-page.open { display: block; }
#joinModal.request-page .card { width: min(820px, 100%); max-width: 820px; max-height: none; margin: 0 auto; overflow: visible; transform: none; border-radius: 16px; box-shadow: 0 12px 40px #0029500c; }
#joinModal.request-page .bd { max-height: none; overflow: visible; padding: 28px; }
#joinModal.request-page .hd { padding: 24px 28px; flex-wrap: wrap; gap: 16px; }
#joinModal.request-page .t { font-size: 26px; text-transform: none; letter-spacing: -.5px; margin: 0; }
#joinModal.request-page .ft { padding: 24px 28px; gap: 16px; }
body.request-page-open .site-footer { display: none; }
@media(max-width: 600px) {
 #joinModal.request-page { padding:0 0 24px; }
 #joinModal.request-page > .card { width:100%; margin:0; border-left:0; border-right:0; border-radius:0; box-shadow:none; }
 #joinModal.request-page .hd, #joinModal.request-page .bd, #joinModal.request-page .ft { padding:22px 20px; }
 #joinModal.request-page .ft { flex-direction:column-reverse; }
}
#joinTitle:focus { outline: none; }
/* Quiet cartography and a continuous route trace. */
.pageOverlay .loader { border: 1px solid #e0e7ed; padding: 22px 22px 28px; box-shadow: 0 24px 90px #00295018; }
.journey-map { overflow: hidden; shape-rendering: geometricPrecision; }
.map-airport-label { font: 500 15px 'Libre Franklin', sans-serif; fill: #002950; letter-spacing: 1px; stroke: #fff; stroke-width: 4px; paint-order: stroke; stroke-linejoin: round; }
.route-trail { stroke-dasharray: 1; stroke-dashoffset: 1; animation: route-trace 5s linear infinite; }
.flying-plane { filter: drop-shadow(0 2px 2px #00295025); }
.pageOverlay .loaderTxt { font-size: 16px; font-weight: 500; letter-spacing: -.2px; padding-top: 8px; padding-bottom: 0; }
@keyframes route-trace { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .route-trail { animation: none; stroke-dashoffset: 0; } }
/* Compact aircraft comparisons with a clear selected state. */
.qgrid { grid-template-columns: 280px minmax(0,1fr); gap: 24px; }
.qgrid > .qbox { border: 0; background: transparent; padding: 0; width: 100%; max-width: none; }
.qbox > .ttl { padding: 0 0 8px; }
.qlist { padding: 0; display: grid; gap: 8px; }
.qitem { display: grid; grid-template-columns: 14px minmax(0,1fr) auto; align-items: center; gap: 10px; width: 100%; margin: 0; padding: 17px 12px; text-align: left; font-family: inherit; color: #002950; background: #fff; border: 1px solid #d9e2e9; border-radius: 8px; cursor: pointer; }
.qitem.active { border-color: #00679f; background: #f5f9fb; box-shadow: none; }
.qitem:hover { border-color: #7b9fb8; background: #f8fafc; }
.qitem:focus-visible { outline: 2px solid #00679f; outline-offset: 3px; }
.aircraft-choice-mark { width: 12px; height: 12px; border: 1px solid #9bb0c0; border-radius: 50%; }
.qitem.active .aircraft-choice-mark { border: 4px solid #00679f; background: #fff; box-sizing: border-box; width: 14px; height: 14px; }
.aircraft-choice-name, .aircraft-choice-fare { display: flex; flex-direction: column; gap: 5px; }
.aircraft-choice-name strong { font-size: 16px; font-weight: 600; }
.aircraft-choice-name small { font-size: 11px; color: #627789; }
.aircraft-choice-fare { text-align: right; }
.aircraft-choice-fare strong { font-size: 16px; font-weight: 600; white-space: nowrap; }
.aircraft-choice-fare small { font-size: 10px; color: #627789; }
@media (max-width: 980px) { .qgrid { grid-template-columns: minmax(0,1fr); } }
.operator-identity { display: flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 11px; font-weight: 400; color: #627789; }
.operator-identity img { width: 32px; height: 32px; object-fit: contain; border-radius: 3px; }
.aircraft-choice-fare strong, .qprice, .qpriceVal, .best-offer-price, .lowest-fare-price { color: #666666 !important; }
.lowest-price strong { color: #666666; }
/* Match the map's coordinate space to the phone instead of shrinking a desktop map. */
.pageOverlay .loader { width: min(606px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); overflow: auto; }
@media (max-width: 640px) {
    .pageOverlay .loader { padding: 16px; border-radius: 16px; gap: 12px; }
    .pageOverlay .loaderTxt { font-size: 15px; line-height: 1.4; padding: 0 4px 4px; }
    #routeFlightAnimation { flex: 0 0 auto; }
    .journey-map { border-radius: 8px; }
}

/* A compact floating map keeps the booking page visible. */
.pageOverlay { inset: auto; top: 50%; left: 50%; transform: translate(-50%,-50%); width: min(466px, calc(100vw - 24px)); background: transparent; backdrop-filter: none; }
.pageOverlay .loader { width: 100%; padding: 16px; }
#main.fadeOut { opacity: .45; }
@media(prefers-reduced-motion:reduce) { .flight-time-label { display: none; } }
.booking-error { margin: 0 0 20px; padding: 14px 18px; background: #fff5f2; border: 1px solid #dfb4a6; border-left: 3px solid #ae4931; border-radius: 6px; color: #833b2b; font-size: 14px; line-height: 1.5; }
.booking-error:focus { outline: none; }
[aria-invalid="true"] { border-color: #ae4931 !important; box-shadow: 0 0 0 2px #ae493118; }
/* Full-screen route view, with map geometry fitted to the actual screen. */
.pageOverlay { inset: 0; top: 0; left: 0; transform: none; width: 100%; height: 100dvh; background: #fff; }
.pageOverlay .loader { width: 100%; height: 100%; max-height: none; padding: 24px; border: 0; border-radius: 0; box-shadow: none; overflow: hidden; justify-content: center; gap: 16px; }
.pageOverlay #routeFlightAnimation { width: 100%; flex: 0 0 auto; }
.pageOverlay .journey-map { border-radius: 0; }
.pageOverlay .loaderTxt { margin: 0; padding: 0; font-size: 15px; line-height: 1.4; }
.flight-loading-bar { width: min(220px, 60vw); height: 3px; flex: 0 0 3px; overflow: hidden; border-radius: 3px; background: #e5edf2; }
.flight-loading-bar span { display: block; height: 100%; width: 40%; border-radius: inherit; background: #00679f; animation: flight-loading 1.8s ease-in-out infinite; }
@keyframes flight-loading { from { transform: translateX(-110%); } to { transform: translateX(360%); } }
@media(prefers-reduced-motion:reduce) { .flight-loading-bar span { animation: none; width: 100%; opacity: .5; } }
/* Desktop keeps the booking page visible; phones retain the full-screen map. */
@media (min-width: 641px) {
    .pageOverlay { inset: auto; top: 50%; left: 50%; transform: translate(-50%,-50%); width: min(610px, calc(100vw - 48px)); height: auto; background: transparent; }
    .pageOverlay .loader { height: auto; max-height: calc(100dvh - 48px); padding: 24px; border: 1px solid #e0e7ed; border-radius: 16px; box-shadow: 0 24px 90px #00295025; }
    .pageOverlay .journey-map { border-radius: 8px; }
}
/* Blur the desktop backdrop without changing the compact map size. */
@media (min-width: 641px) {
    .pageOverlay { inset: 0; top: 0; left: 0; transform: none; width: 100%; height: 100dvh; background: rgba(245,248,250,.35); backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px); }
    .pageOverlay .loader { width: min(610px, calc(100vw - 48px)); }
}
.flight-animation-stats { display: flex; justify-content: center; gap: 40px; width: 100%; flex: 0 0 auto; padding: 0 0 12px; border-bottom: 1px solid #e4ebf0; }
.flight-animation-stats > div { display: flex; flex-direction: column; align-items: center; gap: 5px; min-width: 100px; }
.flight-animation-stats span { font-size: 11px; color: #627789; }
.flight-animation-stats strong { color: #333333; font-size: 24px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.aircraft-choice-fare strong, .lowest-price strong { display: inline-block; align-self: flex-end; background: #f1f2f3; border-radius: 6px; padding: 6px 8px; color: #505050 !important; }
.lowest-price strong { padding: 8px 12px; }
/* Reveal results only when the animation and loading bar have finished. */
body.flight-animation-active[data-booking-step="review"] #main,
body.flight-animation-active #joinModal { visibility: hidden; }
.aircraft-choice-fare strong, .lowest-price strong { background: transparent; padding: 0; border-radius: 0; }
#pageOverlay[data-show-flight-time="false"] .flight-time-stat { display: none; }

/* A compact confirmation itinerary stays visible above the request fields. */
.request-itinerary { margin-bottom: 28px; }
.request-itinerary h2 { margin: 0 0 8px; font-size: 20px; }
.request-itinerary-intro { margin: 0 0 18px; font-size: 13px; color: #637385; }
.request-itinerary-aircraft { display: flex; flex-wrap: wrap; gap: 12px 32px; margin-bottom: 18px; }
.request-itinerary-aircraft > span { display: grid; gap: 5px; font-size: 12px; }
.request-itinerary-aircraft strong { font-size: 15px; font-weight: 600; }
.request-itinerary-leg { border: 1px solid #b3c4d2; border-top: 2px solid #f07800; border-radius: 10px; padding: 16px 18px; margin-top: 12px; }
.request-itinerary-leg header { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; margin-bottom: 14px; color: #637385; }
.request-itinerary-leg time { color: #002950; font-weight: 600; }
.request-itinerary-route { display: grid; grid-template-columns: minmax(0,1fr) 28px minmax(0,1fr); gap: 10px; align-items: start; }
.request-itinerary-route > div { display: grid; gap: 5px; min-width: 0; overflow-wrap: anywhere; }
.request-itinerary-route > div:last-child { text-align: right; }
.request-itinerary-route strong { font-size: 22px; font-weight: 500; }
.request-itinerary-route span { font-size: 14px; }
.request-itinerary-route small { font-size: 11px; color: #637385; }
.request-itinerary-route .request-itinerary-arrow { color: #f07800; font-size: 24px; text-align: center; }
.request-itinerary-route:has(.required-stops) { grid-template-columns: minmax(0,1fr) minmax(80px, .7fr) minmax(0,1fr); }
.required-stops { display: grid; gap: 8px; text-align: center; padding-top: 8px; }
.required-stops-track { display: flex; justify-content: space-evenly; align-items: center; position: relative; min-height: 12px; }
.required-stops-track::before { content: ''; position: absolute; left: 0; right: 0; height: 2px; background: #b3c4d2; }
.required-stops-track i { position: relative; width: 10px; height: 10px; border-radius: 50%; background: #f07800; border: 2px solid var(--surface, #fff); box-sizing: content-box; }
.stopover-notice { padding: 10px 14px; border-left: 3px solid #f07800; font-size: 14px; line-height: 1.6; }

/* Header preferences: visible labels and comfortable touch targets. */
.display-settings { gap: 12px; padding: 6px 10px; background: #f0f4f7; border: 1px solid #c4d2dd; border-radius: 10px; }
.display-settings label { font-size: 11px; font-weight: 600; color: #004177; }
.display-settings select { height: 40px; min-width: 108px; width: auto; margin-top: 3px; padding: 0 28px 0 10px; font-size: 14px; font-weight: 600; color: #002950; background-color: #fff; border: 1px solid #9cb3c4; border-radius: 6px; cursor: pointer; }
.display-settings select:hover { border-color: #00679f; }
.display-settings select:focus-visible { outline: 2px solid #00679f; outline-offset: 2px; }
@media (max-width: 720px) {
    .display-settings { gap: 8px; padding: 5px 7px; }
    .display-settings label { font-size: 10px; }
    .display-settings select { width: 100px; min-width: 0; height: 40px; font-size: 12px; padding: 0 5px; }
}

/* Documentation layout for operator membership. */
.wiki-layout { max-width: 1120px; margin: 40px auto 80px; padding: 0 24px; display: grid; grid-template-columns: 210px minmax(0,1fr); gap: 48px; }
.wiki-sidebar nav { position: sticky; top: 24px; border-left: 2px solid #d7e1e8; padding-left: 18px; display: grid; gap: 14px; }
.wiki-sidebar h2 { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; margin: 0 0 6px; color: #637385; }
.wiki-sidebar a { font-size: 13px; text-decoration: none; color: #004177; }
.wiki-sidebar a:hover { text-decoration: underline; }
.wiki-article { background: white; padding: 32px 38px; border: 1px solid #e1e6eb; border-radius: 8px; }
.wiki-kicker { color: #637385; font-size: 12px; margin: 0 0 12px; }
.wiki-article h1 { font-size: clamp(26px,4vw,36px); line-height: 1.2; margin: 0 0 20px; letter-spacing: -.7px; }
.wiki-article p, .wiki-article li, .wiki-article dd { font-size: 15px; line-height: 1.75; }
.wiki-article .wiki-lead { font-size: 17px; }
.wiki-contact { display: flex; flex-wrap: wrap; gap: 8px 20px; border-left: 3px solid #f07800; padding: 14px 18px; background: #f4f7f9; font-size: 14px; margin: 24px 0; }
.wiki-contact a { font-weight: 600; color: #004177; }
.wiki-article section { scroll-margin-top: 24px; margin-top: 32px; }
.wiki-article h2 { font-size: 22px; border-bottom: 1px solid #e1e6eb; padding-bottom: 12px; margin: 0 0 16px; }
.wiki-definitions dt { font-weight: 600; margin-top: 18px; font-size: 15px; }
.wiki-definitions dd { margin: 5px 0 0; }
.wiki-article li { margin-bottom: 10px; padding-left: 5px; }
.wiki-email { margin-top: 12px; text-decoration: none; }
.wiki-article a.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 48px;
    height: auto;
    max-width: 100%;
    min-width: 0;
    padding: 12px 20px;
    font-size: 15px;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    white-space: normal;
}
.header-nav a[aria-current=page] { text-decoration: underline; text-underline-offset: 6px; }
@media (max-width: 1250px) {
    .topbar .inner { flex-wrap: wrap; gap: 12px 20px; }
    .topbar .header-nav { display: flex; order: 4; flex-basis: 100%; gap: 12px 24px; flex-wrap: wrap; padding: 6px 0; }
}
@media (max-width: 720px) {
    .topbar .header-nav { grid-column: 1 / -1; grid-row: 3; font-size: 12px; gap: 10px 18px; }
    .wiki-layout { grid-template-columns: 1fr; gap: 24px; padding: 0 14px; margin-top: 24px; }
    .wiki-sidebar nav { position: static; display: flex; flex-wrap: wrap; gap: 12px 18px; }
    .wiki-sidebar h2 { flex-basis: 100%; }
    .wiki-article { padding: 24px 20px; }
}

/* Dark palette keeps Neway orange accents and natural photographs. */
:root[data-theme="dark"] {
    color-scheme: dark;
    --bg: #101923; --surface: #192633; --surface2: #223342;
    --ink: #e4edf4; --muted: #acbdcb; --line: #354959; --line2: #506778;
    --brand: #83c7ee; --brand2: #c3e5fa; --green: #69cea1;
    --topbar-bg: #15212c; --hover: #2a4052;
    --page-bg: #192633; --card-bg: #192633; --details-bg: #223342;
    --text: #e4edf4; --border: #506778;
    --badge-rt-bg: #223342; --badge-rt-bd: #506778; --badge-ow-bg: #223342; --badge-ow-bd: #506778;
    --shadow: 0 16px 48px #0003; --shadow2: 0 6px 20px #0003;
}
html[data-theme="dark"] body { background: var(--bg); color: var(--ink); }
html[data-theme="dark"] :is(.topbar,.panel,.wiki-article,.jmodal .card,.qitem,.lowest-fare,.ac-menu,.date-calendar,.date-trigger,.calendar-days button,.route-swap,.card,.pricecol,.profile-content) { background-color: var(--surface); color: var(--ink); border-color: var(--line2); }
html[data-theme="dark"] :is(.display-settings,.wiki-contact,.summary,.chip,.jmodal .card .hd,.embedHd,.opseg,.calendar-head button,.ac-top > span:first-child,.display-status,.details,.detailcard) { background-color: var(--surface2); color: var(--ink); border-color: var(--line); }
html[data-theme="dark"] :is(input,select,textarea) { background: #14212d; color: var(--ink); -webkit-text-fill-color: var(--ink); border-color: var(--line2); }
html[data-theme="dark"] :is(input,textarea)::placeholder { color: #97abba; -webkit-text-fill-color: #97abba; }
html[data-theme="dark"] :is(h1,h2,h3,.header-nav a,.result .rt,.embedHd .ttl,.jmodal .card .hd .t,.step.active,.seg button.active,.search-note strong,.request-itinerary-leg time,.flight-animation-stats strong,.display-settings label,.code,.route-city,.profile-heading,.legtitle) { color: var(--ink); }
html[data-theme="dark"] :is(label,.mini,.subtle,.name,.ac-sub,.ac-country,.ac-loading,.ac-empty,.result .sub,.qbox > .ttl,.step,.opmode-label,.leg .leghd,.seg button,.search-note,.date-trigger small,.calendar-days > span,.lowest-copy > span:last-child,.lowest-price > span,.aircraft-choice-name small,.aircraft-choice-fare small,.operator-identity,.request-itinerary-intro,.request-itinerary-route small,.request-itinerary-leg header,.wiki-kicker,.wiki-sidebar h2,.flight-animation-stats span) { color: var(--muted); }
html[data-theme="dark"] :is(a,.link,.details summary,.wiki-sidebar a,.wiki-contact a,.lowest-label,.fare-badge,.opseg-option) { color: #92d1f6; }
html[data-theme="dark"] :is(.btn,.review-back .btn) { color: var(--ink); background-color: var(--surface2); border-color: var(--line2); }
html[data-theme="dark"] :is(.btn.primary,.actions .btn.primary,.opseg-option.active) { color: #15212c; -webkit-text-fill-color: #15212c; background: #f79532; border-color: #f79532; }
html[data-theme="dark"] .btn.primary:hover { background: #ffad59; }
html[data-theme="dark"] :is(.qitem.active,.qitem:hover,.lowest-fare:hover,.ac-item:hover,.calendar-days button:hover) { background: #2a4052; border-color: #83c7ee; }
html[data-theme="dark"] .calendar-days button[aria-pressed="true"] { background: #83c7ee; color: #101923; }
html[data-theme="dark"] :is(.aircraft-choice-fare strong,.lowest-price strong,.qprice,.qpriceVal,.fare-amount,.fare-amount *,.price,.cur,.pricing strong,.info-row .value) { color: #d0d4d8 !important; }
html[data-theme="dark"] .booking-error, html[data-theme="dark"] .jerr { color: #ffc4ad; background: #3b2927; border-color: #9c6859; }
html[data-theme="dark"] .jsuccess { color: #a1e7c5; background: #173c30; }
html[data-theme="dark"] .request-itinerary-leg { border-color: #607f95; border-top-color: #f07800; }
html[data-theme="dark"] .brand .logo { background: #fff; padding: 4px; box-sizing: border-box; }
html[data-theme="dark"] .pageOverlay { background: rgba(10,18,26,.6); }
html[data-theme="dark"] .pageOverlay .loader { background: #192633; }
html[data-theme="dark"] .pageOverlay .loaderTxt { color: var(--ink); }
html[data-theme="dark"] .flight-loading-bar { background: #354959; }
html[data-theme="dark"] .flight-loading-bar span { background: #83c7ee; }
html[data-theme="dark"] #routeFlightAnimation [fill="#e2eef6"] { fill: #112638; }
html[data-theme="dark"] #routeFlightAnimation [fill="#ffffff"] { fill: #2c3e4c; stroke: #62798a; }
html[data-theme="dark"] #routeFlightAnimation [stroke="#fff"] { stroke: #192633; }
html[data-theme="dark"] #routeFlightAnimation circle { fill: #c3e5fa; stroke: #192633; }
html[data-theme="dark"] #routeFlightAnimation .flying-plane path { fill: #f79532; stroke: #192633; }
html[data-theme="dark"] #routeFlightAnimation .map-airport-label { fill: #e4edf4; stroke: #192633; }
html[data-theme="dark"] .flight-pass { border-color: #607f95; border-top-color: #f07800; }
html[data-theme="dark"] .flight-pass .route__marker { background: var(--surface); }
html.embedded[data-theme="dark"], html.embedded[data-theme="dark"] body,
html.embedded[data-theme="dark"] .flight-pass > .card__info::before,
html.embedded[data-theme="dark"] .flight-pass > .card__info::after { background: #192633; }
@media (max-width:640px) { html[data-theme="dark"] .pageOverlay { background: #192633; } }

.display-settings, .display-settings select { border-radius: 0; }
.display-settings { gap: 8px; }
.display-settings select { min-width: 90px; }
@media(max-width:720px) {
    .display-settings { gap: 6px; padding: 5px; }
    .display-settings select { width: 84px; min-width: 0; font-size: 12px; }
    .topbar .inner { grid-template-columns: 40px minmax(0,1fr); padding: 7px 10px; gap: 8px; }
}
@media(max-width:370px) {
    .display-settings select { width: 73px; font-size: 11px; }
}

.wiki-table-wrap { overflow-x: auto; margin: 24px 0; }
.wiki-table-wrap table { width: 100%; border-collapse: collapse; font-size: 13px; }
.wiki-table-wrap caption { text-align: left; font-size: 16px; font-weight: 600; margin-bottom: 12px; }
.wiki-table-wrap th, .wiki-table-wrap td { padding: 12px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; line-height: 1.6; }
.wiki-table-wrap thead { background: var(--surface2); }
.wiki-table-wrap th[scope=row] { font-weight: 400; max-width: 200px; }
.wiki-table-wrap code { font-size: 11px; overflow-wrap: anywhere; }
.wiki-article pre { padding: 20px; overflow: auto; background: var(--surface2); border: 1px solid var(--line); font-size: 12px; line-height: 1.7; }
.wiki-contact p { margin: 0; }
.wiki-layout { grid-template-columns: 200px minmax(0,1fr); gap: 32px; max-width: 1250px; }
@media(max-width:600px) {
    .operator-wiki .wiki-layout { padding:0 16px; }
    html[data-theme] body.operator-wiki .wiki-article { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
}
@media(max-width:720px) { .wiki-layout { grid-template-columns: 1fr; } .wiki-table-wrap table { min-width: 570px; } }

/* Unboxed header preferences. */
.display-settings, html[data-theme="dark"] .display-settings { background: transparent; border: 0; padding: 0; }
.display-settings select, html[data-theme="dark"] .display-settings select { background-color: transparent; border: 0; border-bottom: 1px solid var(--line2); border-radius: 0; box-shadow: none; }
.display-settings select:hover { border-bottom-color: var(--brand); }

/* Connected date span with clear outbound and return endpoints. */
.calendar-days { column-gap: 0; row-gap: 4px; }
.calendar-days button.calendar-range { background: #e1edf5; color: #002950; border-radius: 0; }
.calendar-days button.calendar-range-row-start { border-radius: 6px 0 0 6px; }
.calendar-days button.calendar-range-row-end { border-radius: 0 6px 6px 0; }
.calendar-days button.calendar-range-start { border-radius: 6px 0 0 6px; }
.calendar-days button.calendar-range-end { border-radius: 0 6px 6px 0; }
.calendar-days button.calendar-range-start.calendar-range-end { border-radius: 6px; }
.calendar-days button:is(.calendar-range-start,.calendar-range-end) { background: #004177; color: #fff; font-weight: 650; }
html[data-theme="dark"] .calendar-days button.calendar-range { background: #304e64; color: #e4edf4; }
html[data-theme="dark"] .calendar-days button:is(.calendar-range-start,.calendar-range-end) { background: #83c7ee; color: #101923; }
.calendar-days button.calendar-range:hover { box-shadow: inset 0 0 0 2px #00679f; }

.flight-enquiry-note { color: var(--muted, #596778); font-size: 13px; line-height: 1.6; margin: 20px 0 0; }

.request-price { padding: 0 0 20px; margin-bottom: 24px; border-bottom: 1px solid var(--line); }
.request-price > strong { display: block; color: #666; font-size: 24px; }
.request-price > strong > span { font-size: 14px; font-weight: 400; }
.request-price > span { margin-right: 12px; }
.request-price small { display: block; margin-top: 8px; color: var(--muted); }
html[data-theme="dark"] .request-price > strong { color: #d0d4d8; }

.flight-share-dialog { box-sizing:border-box; width:min(560px,calc(100vw - 16px)); max-width:none; max-height:96dvh; border:0; padding:0; background:transparent; color:var(--ink); border-radius:0; overflow:auto; }
.flight-share-dialog::backdrop { background:rgba(0,20,40,.65); backdrop-filter:blur(5px); }
.flight-share-dialog header { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.flight-share-dialog h2 { display:none; }
.flight-share-dialog header { justify-content:flex-end; margin:0; }
.flight-share-dialog [data-close] { border:0; padding:4px 12px; font-size:26px; }
.flight-share-dialog > img { display:block; width:100%; max-width:none; height:auto; margin:0; }
.flight-share-dialog > img[hidden] { display:none; }
.flight-share-dialog button { padding:10px 14px; border:1px solid var(--line); background:var(--surface); color:var(--ink); font:inherit; cursor:pointer; }
.flight-share-dialog [data-share] { background:#f07800; color:#002950; border-color:#f07800; }
.flight-share-dialog .share-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; }
.flight-share-dialog input,.flight-share-dialog select { margin-top:12px; width:100%; min-width:0; color:var(--ink); background:var(--surface); }
.flight-share-dialog [role="status"] { font-size:13px; color:var(--muted); }

/* Familiar native sharing action; export tools remain secondary. */
#btnShareFlight, #joinShare, .flight-share-dialog [data-share] { display:inline-flex; align-items:center; justify-content:center; gap:9px; }
#btnShareFlight::before, #joinShare::before, .flight-share-dialog [data-share]::before { content:""; width:20px; height:20px; flex:none; background:currentColor; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m8.7 10.5 6.6-4m-6.6 7 6.6 4'/%3E%3Ccircle cx='6' cy='12' r='3'/%3E%3Ccircle cx='18' cy='5' r='3'/%3E%3Ccircle cx='18' cy='19' r='3'/%3E%3C/svg%3E") center/contain no-repeat; }
.flight-share-dialog .share-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.flight-share-dialog [data-share] { grid-column:1 / -1; font-weight:600; }
.flight-share-dialog [data-save], .flight-share-dialog [data-copy] { border:0; background:transparent; font-size:13px; text-decoration:underline; text-underline-offset:3px; }
.flight-share-dialog .share-appearance { display:flex; justify-content:center; gap:4px; margin:0 0 16px; }
.flight-share-dialog .share-appearance button { min-width:90px; padding:7px 14px; font-size:14px; }
.flight-share-dialog .share-appearance [aria-pressed="true"] { background:var(--ink); color:var(--surface); border-color:var(--ink); font-weight:600; }

.flight-share-dialog .share-actions { margin:0 20px; padding:12px; background:var(--surface); }
.flight-share-dialog [role="status"]:empty { display:none; }
.flight-share-dialog [role="status"]:not(:empty) { padding:10px; background:var(--surface); }
.flight-share-dialog .share-price-option { display:flex; align-items:center; justify-content:center; gap:8px; width:fit-content; margin:0 auto 12px; padding:8px 12px; background:var(--surface); color:var(--ink); font-size:14px; cursor:pointer; }
.flight-share-dialog .share-price-option input { width:18px; height:18px; margin:0; accent-color:#f07800; }
.flight-share-dialog .share-back { display:block; width:calc(100% - 40px); margin:12px 20px 16px; min-height:44px; }

html[data-theme] .topbar { background:var(--topbar-bg); color:var(--ink); }
html[data-theme] .topbar .header-nav a { color:var(--ink); }
.embedFt.flight-option-actions { display:flex; align-items:stretch; justify-content:space-between; gap:12px; }
.embedFt.flight-option-actions .btn { min-height:48px; }
@media(max-width:640px) {
 .embedFt.flight-option-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
 .embedFt.flight-option-actions .btn { width:100%; min-width:0; padding:12px 10px; font-size:13px; white-space:normal; }
}

.flight-share-dialog .share-loading-bar { display:block; overflow:hidden; height:4px; margin-top:12px; background:var(--line); }
.flight-share-dialog .share-loading-bar::after { content:""; display:block; width:35%; height:100%; background:#f07800; animation:share-loading 1.4s ease-in-out infinite; }
@keyframes share-loading { from { transform:translateX(-100%); } to { transform:translateX(390%); } }
@media (prefers-reduced-motion:reduce) { .flight-share-dialog .share-loading-bar::after { animation:none; width:100%; opacity:.7; } }

/* Use the phone width once, with the panel's existing inner padding. */
@media (max-width:600px) {
 .wrap { margin-left:0; margin-right:0; }
 .wrap > .panel { border-left:0; border-right:0; border-radius:0; }
}
.embedFt.flight-option-actions .btn {
 display:flex; align-items:center; justify-content:center; align-self:stretch;
 box-sizing:border-box; height:100%; margin:0; text-align:center; line-height:1.35;
}
#btnOptionsBack { gap:8px; }
#btnOptionsBack .back-arrow { flex:0 0 auto; line-height:1; }
#btnOptionsBack > span:last-child { min-width:0; }

.search-action { display:inline-flex; align-items:center; justify-content:center; gap:12px; text-align:center; line-height:1.35; }
.search-action > span { min-width:0; }
.search-action::after { flex:0 0 auto; font-size:26px; line-height:1; margin-left:0; }
#btnOptionsBack .back-arrow { font-size:26px; }
/* Vector arrows have a centered shape independent of the font baseline. */
.arrow-button .back-arrow, .search-action::after {
 width:26px; height:26px; flex:0 0 26px; font-size:0; line-height:0;
 background:currentColor;
 mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h16M10 6l-6 6 6 6' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.search-action::after { content:""; transform:rotate(180deg); }
button.arrow-button, .flight-share-dialog button.arrow-button { display:flex; align-items:center; justify-content:center; gap:8px; text-align:center; }
.arrow-button > span:last-child { min-width:0; }

.pageOverlay .loaderTxt.join-animation-heading { order:-1; width:100%; display:flex; flex-direction:column; gap:10px; padding:2px 0 8px; text-align:center; }
.join-animation-kicker { color:var(--muted); font-size:11px; font-weight:600; letter-spacing:1.3px; text-transform:uppercase; }
.join-animation-route { display:grid; grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr); align-items:center; gap:14px; width:100%; color:var(--ink); }
.join-animation-route strong { font-size:24px; font-weight:600; line-height:1.2; overflow-wrap:anywhere; }
.join-animation-route strong:first-child { text-align:right; }
.join-animation-route strong:last-child { text-align:left; }
.join-animation-arrow { width:28px; height:28px; background:#f07800; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h16m-6-6 6 6-6 6' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; }
.join-animation-meta { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px; font-size:13px; line-height:1.5; color:var(--muted); }
.join-animation-meta b { font-weight:600; color:var(--ink); }
@media(max-width:600px) { .join-animation-route { gap:10px; } .join-animation-route strong { font-size:21px; } .join-animation-kicker { font-size:10px; } }

.booking-fields .seg { flex-wrap:wrap; row-gap:12px; }

.wiki-profile-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 16px 0; }
.wiki-profile-actions .btn { text-align: center; }
@media (max-width: 600px) { .wiki-profile-actions .btn { width: 100%; box-sizing: border-box; } }
.header-nav .login-menu { position:relative; margin-left:auto; flex-shrink:0; color:var(--ink); }
.login-menu summary { cursor:pointer; list-style:none; display:flex; align-items:center; gap:10px; min-height:44px; padding:0 12px; font-size:13px; font-weight:600; border:1px solid var(--line); border-radius:6px; }
.login-menu summary::-webkit-details-marker { display:none; }
.login-menu summary::after { content:''; width:6px; height:6px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); margin-top:-3px; }
.login-menu[open] summary::after { transform:rotate(225deg); margin-top:3px; }
.login-menu-links { position:absolute; right:0; top:calc(100% + 8px); min-width:180px; padding:6px; background:var(--surface); border:1px solid var(--line); border-radius:8px; box-shadow:0 8px 24px #0002; z-index:100; }
.header-nav .login-menu-links a { display:block; padding:12px 14px; font-size:14px; border-radius:4px; white-space:nowrap; }
.login-menu-links a:hover { background:var(--surface2); }
.login-menu summary:focus-visible,.login-menu-links a:focus-visible { outline:2px solid var(--brand); outline-offset:3px; }

.shared-flight-results .shared-flight-offer{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,280px);gap:24px;padding:24px 0;border-top:1px solid #dce3e9}.shared-flight-offer>div:last-child{text-align:right}.shared-flight-offer>div:last-child>strong{display:block;font-size:24px}.shared-flight-offer small{display:block;margin:6px 0;color:#61778d}.shared-flight-offer p{font-size:14px;line-height:1.6}.shared-flight-offer a.btn{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;margin-top:12px;padding:0 18px;text-align:center;line-height:1.2;text-decoration:none}@media(max-width:600px){.shared-flight-results .shared-flight-offer{grid-template-columns:1fr;gap:12px}.shared-flight-offer>div:last-child{text-align:left}}

.shared-flight-offer .shared-flight-match{display:inline-block;margin:0 0 14px;padding:8px 12px;border:1px solid #e7ba80;border-radius:4px;background:#fff3df;color:#633800;font-weight:600}

/* Keep match context separate from aircraft identity and the route. */
.shared-flight-offer .shared-flight-match{display:table;max-width:100%;box-sizing:border-box;margin:0 0 18px;padding:6px 10px;border:0;border-radius:4px;background:#edf3f7;color:#496278;font-size:13px;font-weight:400;line-height:1.5}
.shared-flight-offer>div:first-child>strong{display:block;font-size:18px;line-height:1.4;margin-bottom:14px}
.shared-flight-offer>div:first-child>p:not(.shared-flight-match){margin:8px 0;font-size:15px}

/* Match the last-minute navigation: compact logo and unbroken link labels. */
.topbar .inner{max-width:1440px;padding:22px 32px;gap:26px}
.topbar .brand .logo{width:48px;height:48px}
.topbar .header-nav{margin-left:0;flex-shrink:0;gap:26px}
.topbar .header-nav>a{font-size:14px;font-weight:600;white-space:nowrap;padding:10px 0}
.topbar .header-nav>a[aria-current="page"]{border-bottom:3px solid #f58200;text-decoration:none}
.topbar .opmode{flex-basis:240px;min-width:220px;margin-left:auto}
@media(min-width:721px) and (max-width:1250px){
 .topbar .inner{display:flex;flex-wrap:wrap}
 .topbar .header-nav{order:0;flex:1;justify-content:flex-start}
 .topbar .opmode{order:1;margin-left:74px;flex-basis:260px}
 .topbar .display-settings{order:2;margin-left:auto}
}
@media(max-width:720px){
 .topbar .inner{padding:16px 20px;gap:12px}
 .topbar .brand .logo{width:40px;height:40px}
 .topbar .header-nav{flex-shrink:1;gap:10px 20px;flex-wrap:wrap}
 .topbar .header-nav>a{font-size:13px}
 .topbar .opmode{min-width:0;margin-left:0}
}
/* Explicit 24-hour time selection, independent of browser locale. */
.time-picker24-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}
#joinSchedule .time-picker24{min-width:0;margin:0;padding:16px;border:1px solid var(--line2,#c6d5e1);border-radius:4px}
#joinSchedule .time-picker24 legend{padding:0 6px;font-size:14px;font-weight:600}
#joinSchedule .time-picker24-controls{display:flex;align-items:center;gap:10px}
#joinSchedule .time-picker24 label{display:grid;gap:5px;min-width:0;margin:0;flex:1}
#joinSchedule .time-picker24 label>span{font-size:11px;color:var(--muted,#637487)}
#joinSchedule .time-picker24 select{font:600 24px 'Libre Franklin',Libre,Arial,sans-serif;min-height:52px;width:100%;padding:8px;border:1px solid var(--line2,#c6d5e1);border-radius:3px;font-variant-numeric:tabular-nums}
#joinSchedule .time-picker24 b{padding-top:18px;font-size:24px}
#joinSchedule .time-picker24 small{font-size:12px;white-space:nowrap;padding-top:18px}
@media(max-width:650px){.time-picker24-grid{grid-template-columns:1fr}}
/* Aircraft comparison starts with a full-width photographic tile grid. */
.qgrid.aircraft-gallery{display:block}
.aircraft-gallery .qbox{border:0;padding:0;background:transparent}
.aircraft-gallery .qbox>.ttl{display:none}
.aircraft-gallery .qlist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;max-height:none;overflow:visible;padding:0}
.aircraft-gallery .qitem{position:relative;display:block;padding:0;margin:0;min-width:0;border:1px solid var(--line2);border-radius:4px;overflow:hidden;text-align:left;background:var(--surface,#fff);color:var(--ink,#002950)}
.aircraft-gallery .qitem.active{border-color:var(--line2);box-shadow:none;background:var(--surface,#fff)}
.aircraft-gallery .qitem:hover{border-color:#f07800}
.aircraft-tile-photo,.aircraft-tile-placeholder{display:block;width:100%;height:170px;object-fit:cover;background:var(--surface2,#edf2f6)}
.aircraft-tile-placeholder{display:grid;place-items:center;font-size:48px}
.aircraft-tile-content{display:grid;gap:12px;padding:20px}
.aircraft-gallery .aircraft-choice-name{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.aircraft-gallery .aircraft-choice-name strong{font-size:22px}
.aircraft-tile-meta,.aircraft-tile-operator{font-size:12px;color:var(--muted,#61778d)}
.aircraft-gallery .aircraft-choice-fare{display:grid;text-align:left;gap:5px;border-top:1px solid var(--line2);padding-top:14px}
.aircraft-gallery .aircraft-choice-fare strong{font-size:24px;white-space:nowrap}
.aircraft-gallery .aircraft-choice-fare small{font-size:12px}
.aircraft-tile-action{font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:4px}
.aircraft-tile-lowest{position:absolute;top:12px;left:12px;background:#f07800;color:#002950;padding:6px 10px;font-size:11px;font-weight:700}
.aircraft-gallery.detail-open>.qbox{display:none}
.aircraft-back-link{margin:0 0 18px;background:transparent;color:var(--ink,#002950);border:0;padding:10px 0;text-decoration:underline;text-underline-offset:4px;cursor:pointer;font:inherit}
@media(max-width:1050px){.aircraft-gallery .qlist{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.aircraft-gallery .qlist{grid-template-columns:1fr}}
#joinSchedulePreview .estimated-arrival{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding:12px 0;margin:0;border-bottom:1px solid var(--line2,#c6d5e1);font-size:14px}
#joinSchedulePreview .estimated-arrival strong{font-size:18px;font-variant-numeric:tabular-nums;white-space:nowrap}
#joinSchedulePreview{margin-top:16px}
#joinSchedule .time-picker24-arrival .estimated-arrival{display:grid;gap:6px;padding:12px 0 0;margin:14px 0 0;border:0;border-top:1px solid var(--line2,#c6d5e1);font-size:12px}
#joinSchedule .time-picker24-arrival strong{font-size:18px}
/* Transport belongs to the flight enquiry, alongside its route fields. */
#booking .booking-transport{width:280px;max-width:100%;margin:0 0 24px;flex:none;grid-area:auto}
#booking .booking-transport .opmode-label{display:none}
#booking .booking-transport .opseg{padding:4px}
#booking .booking-transport .opseg-option{min-height:40px;padding:0 12px;font-size:13px}
@media(max-width:720px){#booking .booking-transport{margin-bottom:20px}}
#booking .hd>.booking-transport{width:250px;max-width:100%;margin:0;flex:0 0 250px}
#booking .hd{flex-wrap:wrap;gap:18px 24px}
#booking .hd>.stepper{margin-left:auto}
@media(max-width:720px){
 #booking .hd>.booking-transport{width:230px;flex-basis:230px}
 #booking .hd{gap:14px 18px}
}

/* Trip choices must retain their full translated labels on narrow screens. */
#booking .booking-fields .seg{display:flex;flex-wrap:wrap;gap:12px 20px}
#booking .booking-fields .seg button{flex:0 0 auto;width:auto;min-width:0;max-width:100%;white-space:normal;line-height:1.4}
#booking .booking-fields .seg button::before{flex-shrink:0}

#joinModal [aria-invalid="true"] { border: 2px solid #c53535; outline: 2px solid #c53535; outline-offset: 2px; }

.quote-sort { display:flex; justify-content:flex-end; align-items:center; flex-wrap:wrap; gap:10px; margin:16px 0; }
.quote-sort select { width:auto; max-width:100%; min-height:44px; padding:8px 12px; }
