/* 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; background: #fff; 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: #002950; 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; }
.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: 0 0 18px; margin-bottom: 18px; }
.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: 20px 12px; } #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; }

/* 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; }
.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: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); }
