/* =================================================================
   YAJ Jet Charter — /jet-charter
   Standalone stylesheet. The main JL 2026 style.css is dequeued on
   this page (see jl2026_jet_assets in functions.php), so nothing
   here needs to fight the charcoal/gold system.
   ================================================================= */

:root{
  /* black is the dark end of the blue ramp, not a neutral grey-black */
  --black:#08111a; --black-2:#0f1c26; --black-3:#162836;
  --paper:#faf8f4; --paper-2:#f2eee6; --paper-3:#e8e2d6;
  --ink:#141a1f; --ink-2:#4e565e; --ink-3:#868e96;
  --rule:#dbd5c8; --rule-2:#c6bfae;
  --onblack:#e9eef2; --onblack-2:#94a4b1; --onblack-3:#5d707f;
  --blue:#1c4e66; --blue-hi:#4e9cc4; --blue-line:#2a6a8a;
  --f:'Instrument Sans',ui-sans-serif,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  --max:1240px; --g:clamp(20px,4vw,48px); --sy:clamp(68px,8vw,120px);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f);font-size:16.5px;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
:focus-visible{outline:2px solid var(--blue-hi);outline-offset:3px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}}

.jc-wrap{max-width:var(--max);margin:0 auto;padding:0 var(--g)}
.num{font-variant-numeric:tabular-nums}
.jc-skip{position:absolute;left:-9999px;top:0;background:var(--blue-hi);color:var(--black);padding:12px 20px;font-weight:600;z-index:9999}
.jc-skip:focus{left:16px;top:16px}

/* ---------- nav ---------- */
.jc-nav{background:var(--paper);border-bottom:1px solid var(--rule)}
.jc-nav .jc-wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;height:80px}
.jc-brand{display:flex;align-items:center;gap:14px;color:var(--ink);font-weight:700;font-size:17.5px;letter-spacing:-.025em}
.jc-brand .sub{font-weight:400;font-size:11.5px;color:var(--ink-3);letter-spacing:.06em}
.jc-nav nav{display:flex;gap:28px;align-items:center;font-size:14px;color:var(--ink-2)}
.jc-nav nav a{transition:color .2s ease}
.jc-nav nav a:hover{color:var(--ink)}
.jc-quote{background:var(--blue-hi);color:var(--black);padding:10px 18px;font-weight:600;font-size:13.5px;transition:background .2s ease}
.jc-quote:hover{background:#6bb2d6;color:var(--black)}
.jc-navtoggle{display:none;width:44px;height:44px;margin-right:-10px;padding:0;background:none;border:0;
  cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.jc-navtoggle span{display:block;width:22px;height:2px;background:var(--ink);transition:transform .25s ease,opacity .2s ease}
.jc-navtoggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.jc-navtoggle.is-open span:nth-child(2){opacity:0}
.jc-navtoggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:840px){
  .jc-nav .jc-wrap{position:relative}
  .jc-navtoggle{display:flex;order:2}
  .jc-nav nav{display:none;position:absolute;top:calc(100% + 18px);left:var(--g);right:var(--g);
    flex-direction:column;gap:0;background:var(--paper);border:1px solid var(--rule-2);
    padding:6px 0;z-index:60;box-shadow:0 16px 40px rgba(8,17,26,.16)}
  .jc-nav nav.is-open{display:flex}
  .jc-nav nav a{padding:14px 20px;border-bottom:1px solid var(--rule);color:var(--ink);width:100%}
  .jc-nav nav a:last-child{border-bottom:0}
  .jc-quote{background:var(--blue);color:#fff;text-align:center;margin:6px 14px 8px;width:auto}
  .jc-quote:hover{background:var(--blue-line);color:#fff}
}

/* ---------- hero ---------- */
.jc-hero{background:var(--black);color:var(--onblack);padding:clamp(56px,7vw,92px) 0 0}
.jc-hero .tag{font-size:12.5px;color:var(--blue-hi);letter-spacing:.1em;margin-bottom:22px}
.jc-hero h1{font-size:clamp(40px,6vw,78px);line-height:1;letter-spacing:-.04em;font-weight:600;margin:0 0 22px;max-width:14ch;color:#fff}
.jc-hero .lede{font-size:clamp(17px,1.5vw,20px);line-height:1.55;color:var(--onblack-2);max-width:54ch;margin:0 0 44px}
.jc-hero .lede b{color:var(--onblack);font-weight:600}
/* hero photo: full bleed, edge to edge, no inset */
.jc-shot{position:relative;width:100%;aspect-ratio:3/1;min-height:260px;overflow:hidden;background:var(--black-2);margin-top:clamp(36px,4vw,56px)}
.jc-shot img{width:100%;height:100%;object-fit:cover;object-position:center 55%}
.jc-shot::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(8,17,26,.30) 0%,rgba(8,17,26,0) 34%,rgba(8,17,26,.55) 100%)}
@media(max-width:820px){.jc-shot{aspect-ratio:4/3;min-height:0;margin-top:clamp(28px,6vw,40px)}}

/* trip form straddles the dark/light boundary */
.jc-hero-foot{background:linear-gradient(180deg,var(--black) 0 50%,var(--paper) 50% 100%)}
.jc-tripform{margin:0}
.jc-triptype{display:flex;justify-content:flex-end;margin-bottom:8px}
.jc-check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13.5px;color:var(--ink);font-weight:500;
  padding:8px 14px;border:2px solid #6b6557;background:var(--paper);transition:all .18s ease}
.jc-check:hover{border-color:var(--blue);color:var(--ink)}
.jc-check input{width:15px;height:15px;margin:0;accent-color:var(--blue);cursor:pointer}
.jc-tripform.rt .jc-check{border-color:var(--blue);color:var(--ink);font-weight:600}
.jc-strip{background:var(--paper);border:2px solid #6b6557;display:grid;grid-template-columns:repeat(4,1fr) auto;margin:0}
.jc-ret{display:none}
.jc-tripform.rt .jc-strip{grid-template-columns:repeat(5,1fr) auto}
.jc-tripform.rt .jc-ret{display:block}
.jc-strip .f{padding:16px 22px 18px;border-right:1px solid #b5ad9c;min-width:0;transition:background .18s ease}
.jc-strip .f:focus-within{background:var(--paper-2)}
.jc-strip .f label{display:block;font-size:12px;color:#20272d;font-weight:700;letter-spacing:.11em;margin-bottom:7px;text-transform:uppercase}
.jc-strip .f input{display:block;width:100%;border:0;background:transparent;padding:0;margin:0;
  font-family:inherit;font-size:18px;font-weight:600;line-height:1.35;color:#141a1f;letter-spacing:-.01em;
  -webkit-appearance:none;appearance:none;min-height:25px}
.jc-strip .f input::placeholder{color:#aab1b8;font-weight:400;opacity:1}
.jc-strip .f input:focus{outline:none}
.jc-strip .f input[type=date]::-webkit-calendar-picker-indicator{opacity:.45;cursor:pointer}
.jc-strip .go{background:var(--blue);color:#fff;border:0;cursor:pointer;font-family:inherit;
  display:grid;place-items:center;padding:0 32px;font-weight:600;font-size:14px;letter-spacing:.01em;transition:background .2s ease;white-space:nowrap}
.jc-strip .go:hover{background:var(--blue-line)}
/* validation: only after the field has been interacted with */
.jc-strip .f:has(input:user-invalid){background:rgba(180,60,45,.05)}
.jc-strip .f input:user-invalid{color:#9b3a2c}
.jc-strip .f input:user-invalid::placeholder{color:#c08376}
.jc-striphint{margin:14px 0 0;font-size:14.5px;color:var(--ink-2);line-height:1.55;max-width:62ch}
.jc-striphint b{color:var(--ink);font-weight:600}
.jc-stripnote{margin:5px 0 0;font-size:12.5px;color:var(--ink-3);line-height:1.5;max-width:62ch}

/* why me */
.jc-why .jc-head{margin-bottom:clamp(24px,3vw,34px)}
.jc-lead{font-size:clamp(19px,2vw,24px);line-height:1.45;letter-spacing:-.015em;color:var(--ink);
  max-width:42ch;margin:0 0 14px;padding-left:clamp(16px,2vw,24px);border-left:2px solid var(--blue)}
.jc-byline{font-size:12.5px;letter-spacing:.06em;color:var(--ink-3);margin:0 0 clamp(38px,5vw,58px);
  padding-left:clamp(18px,2vw,26px)}
.jc-why-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--rule)}
.jc-why-pt{padding:28px 32px 32px 0;border-bottom:1px solid var(--rule)}
.jc-why-pt:nth-child(odd){border-right:1px solid var(--rule);padding-right:clamp(28px,4vw,52px)}
.jc-why-pt:nth-child(even){padding-left:clamp(28px,4vw,52px);padding-right:0}
.jc-why-pt h3{font-size:19px;font-weight:600;letter-spacing:-.02em;margin:0 0 10px;color:var(--ink)}
.jc-why-pt p{font-size:15.5px;line-height:1.6;color:var(--ink-2);margin:0}
@media(max-width:820px){
  .jc-lead{max-width:none}
  .jc-why-grid{grid-template-columns:1fr}
  .jc-why-pt,.jc-why-pt:nth-child(odd),.jc-why-pt:nth-child(even){padding:24px 0 26px;border-right:0}
}

/* pricing comparison */
.jc-price{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--black-3);border:1px solid var(--black-3)}
.jc-price-col{background:var(--black);padding:30px 32px 34px}
.jc-price-col.lit{background:var(--black-2);border-top:2px solid var(--blue-hi)}
.jc-price-tag{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--onblack-3);margin-bottom:18px}
.jc-price-col.lit .jc-price-tag{color:var(--blue-hi)}
.jc-price-big{font-size:clamp(34px,4.4vw,52px);font-weight:600;letter-spacing:-.035em;color:var(--onblack-2);
  font-variant-numeric:tabular-nums;line-height:1;margin-bottom:22px}
.jc-price-rows{margin-bottom:22px}
.jc-price-rows > div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  padding:9px 0;border-bottom:1px solid var(--black-3);font-size:15px;color:var(--onblack-2)}
.jc-price-rows .n{font-variant-numeric:tabular-nums;font-weight:600;color:var(--onblack);white-space:nowrap}
.jc-price-rows .tot{border-bottom:0;padding-top:13px;font-size:17px;color:#fff;font-weight:600}
.jc-price-rows .tot .n{font-size:24px;letter-spacing:-.025em;color:#fff}
.jc-price-col p{font-size:14.5px;line-height:1.6;color:var(--onblack-2);margin:0}
.jc-price-note{font-size:12.5px;color:var(--onblack-3);margin:12px 0 clamp(44px,5vw,64px)}
@media(max-width:820px){.jc-price{grid-template-columns:1fr}}

/* why-grid also used on dark backgrounds */
.jc-s.dark .jc-why-grid{border-top-color:var(--black-3)}
.jc-s.dark .jc-why-pt{border-bottom-color:var(--black-3)}
.jc-s.dark .jc-why-pt:nth-child(odd){border-right-color:var(--black-3)}
.jc-s.dark .jc-why-pt h3{color:#fff}
.jc-s.dark .jc-why-pt p{color:var(--onblack-2)}

/* autocomplete dropdown */
.jc-strip .f{position:relative}
.jc-ac{position:absolute;z-index:60;top:calc(100% + 1px);left:-1px;right:-1px;min-width:280px;
  margin:0;padding:4px 0;list-style:none;background:var(--paper);
  border:1px solid var(--rule-2);box-shadow:0 12px 32px rgba(8,17,26,.16);
  max-height:302px;overflow-y:auto;overscroll-behavior:contain}
.jc-ac li{display:grid;grid-template-columns:58px 1fr;gap:10px;align-items:baseline;
  padding:9px 14px;cursor:pointer;font-size:14px;line-height:1.35}
.jc-ac li .c{font-weight:700;font-variant-numeric:tabular-nums;color:var(--blue);letter-spacing:.01em}
.jc-ac li .n{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jc-ac li.on,.jc-ac li:hover{background:var(--paper-3)}
.jc-ac li.on .n,.jc-ac li:hover .n{color:var(--ink)}

@media(max-width:880px){
  .jc-hero-foot{background:var(--paper)}
  .jc-strip,.jc-tripform.rt .jc-strip{grid-template-columns:1fr}
  .jc-strip .f{border-right:0;border-bottom:1px solid #b5ad9c}
  .jc-strip .go{padding:18px}
  .jc-ac{min-width:0}
}

/* ---------- sections ---------- */
.jc-s{padding:var(--sy) 0}
.jc-s.dark{background:var(--black);color:var(--onblack)}
.jc-head{max-width:60ch;margin-bottom:clamp(34px,4vw,56px)}
.jc-head .kicker{font-size:12.5px;color:var(--blue);letter-spacing:.1em;margin-bottom:14px}
.jc-s.dark .jc-head .kicker{color:var(--blue-hi)}
.jc-head h2,.jc-head h1{font-size:clamp(28px,3.6vw,46px);line-height:1.06;letter-spacing:-.035em;font-weight:600;margin:0 0 14px}
.jc-s.dark .jc-head h2,.jc-s.dark .jc-head h1{color:#fff}
.jc-head p{font-size:17px;line-height:1.6;color:var(--ink-2);margin:0}
.jc-s.dark .jc-head p{color:var(--onblack-2)}

/* process */
.jc-steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule)}
.jc-st{padding:28px 26px 34px;border-right:1px solid var(--rule)}
.jc-st:last-child{border-right:0}
.jc-st .n{font-size:12.5px;font-weight:700;color:var(--blue);margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--rule)}
.jc-st h3{font-size:18.5px;font-weight:600;letter-spacing:-.02em;margin:0 0 9px}
.jc-st p{font-size:15px;line-height:1.55;color:var(--ink-2);margin:0}
@media(max-width:900px){.jc-steps{grid-template-columns:1fr 1fr}.jc-st:nth-child(2n){border-right:0}.jc-st:nth-child(-n+2){border-bottom:1px solid var(--rule)}}
@media(max-width:560px){.jc-steps{grid-template-columns:1fr}.jc-st{border-right:0;border-bottom:1px solid var(--rule)}}

/* photo strip */
.jc-photos{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:clamp(40px,5vw,64px)}
.jc-photo{margin:0;aspect-ratio:3/2;overflow:hidden;border:1px solid var(--rule);background:var(--paper-2)}
.jc-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.jc-photo:hover img{transform:scale(1.03)}
@media(max-width:780px){.jc-photos{grid-template-columns:1fr;gap:12px}.jc-photo{aspect-ratio:16/10}}

/* aircraft table */
.jc-tbl{width:100%;border-collapse:collapse;font-size:15px}
.jc-tbl thead th{text-align:left;font-size:12px;letter-spacing:.09em;color:var(--ink-3);font-weight:600;padding:0 18px 13px 0;border-bottom:1.5px solid var(--ink)}
.jc-tbl td{padding:19px 18px 19px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.jc-tbl .cat{font-weight:600;font-size:17.5px;letter-spacing:-.02em;white-space:nowrap}
.jc-tbl .egs{color:var(--ink-3);font-size:14px}
.jc-tbl .r{font-variant-numeric:tabular-nums;white-space:nowrap}
.jc-tbl tbody tr:hover td{background:var(--paper-2)}
@media(max-width:780px){
  .jc-tbl thead{display:none}
  .jc-tbl tr{display:block;border-bottom:1px solid var(--rule);padding:18px 0}
  .jc-tbl td{display:flex;justify-content:space-between;gap:20px;border:0;padding:4px 0}
  .jc-tbl td::before{content:attr(data-l);color:var(--ink-3);font-size:13px;flex:none}
  .jc-tbl .cat{display:block;margin-bottom:6px}
  .jc-tbl .cat::before{content:none}
}

/* safety, inverted */
.jc-vet{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(32px,5vw,68px);align-items:start}
.jc-vl{list-style:none;margin:0;padding:0;border-top:1px solid var(--black-3)}
.jc-vl li{padding:22px 0;border-bottom:1px solid var(--black-3);display:grid;grid-template-columns:160px 1fr;gap:26px}
.jc-vl h4{margin:0;font-size:15px;font-weight:600;color:#fff}
.jc-vl p{margin:0;font-size:15px;color:var(--onblack-2);line-height:1.55}
.jc-note{background:var(--black-2);border:1px solid var(--black-3);border-left:2px solid var(--blue-hi);padding:30px}
.jc-note h3{margin:0 0 15px;font-size:16px;font-weight:600;color:#fff}
.jc-note p{margin:0 0 13px;font-size:15px;line-height:1.6;color:var(--onblack-2)}
.jc-note p:last-child{margin:0}
@media(max-width:900px){.jc-vet{grid-template-columns:1fr}.jc-vl li{grid-template-columns:1fr;gap:7px}}

/* disclosures */
.jc-disc{border:1px solid var(--rule-2);border-left:3px solid var(--blue);background:var(--paper-2);padding:32px 36px}
.jc-disc h3{margin:0 0 15px;font-size:15px;font-weight:700}
.jc-disc p{margin:0 0 13px;font-size:14.5px;line-height:1.65;color:var(--ink-2)}
.jc-disc p:last-child{margin:0}
.jc-disc b{color:var(--ink)}
@media(max-width:640px){.jc-disc{padding:24px}}

/* contact */
.jc-contact{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,68px);align-items:start}
.jc-contact p{font-size:17px;line-height:1.6;color:var(--onblack-2);max-width:44ch}
.jc-cbox{background:var(--black-2);border:1px solid var(--black-3);padding:32px}
.jc-cbox .lbl{font-size:12px;color:var(--onblack-3);letter-spacing:.1em;margin-bottom:12px}
.jc-cbox .em{display:block;font-size:clamp(18px,2.1vw,25px);font-weight:600;letter-spacing:-.025em;color:#fff;padding-bottom:20px;border-bottom:1px solid var(--black-3);margin-bottom:22px;word-break:break-word;cursor:pointer}
.jc-cbox .em:hover{color:var(--blue-hi)}
.jc-cbox .at{color:var(--blue-hi)}
.jc-btn{display:inline-block;background:var(--blue-hi);color:var(--black);padding:13px 26px;font-weight:600;font-size:14px;border:0;cursor:pointer;font-family:inherit;transition:background .2s ease}
.jc-btn:hover{background:#6bb2d6;color:var(--black)}
.jc-cbox small{display:block;margin-top:20px;font-size:13.5px;color:var(--onblack-3);line-height:1.6}
@media(max-width:900px){.jc-contact{grid-template-columns:1fr}}

/* footer */
.jc-footer{background:var(--black);border-top:1px solid var(--black-3);padding:44px 0 34px;color:var(--onblack-3)}
.jc-footer .fn{font-size:13px;line-height:1.7;max-width:84ch;margin:0 0 24px;color:var(--onblack-2)}
.jc-footer .fl{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:12.5px;padding-top:20px;border-top:1px solid var(--black-3)}
.jc-footer a{transition:color .2s ease}
.jc-footer a:hover{color:var(--blue-hi)}

/* ---------- telephone ---------- */
.jc-tel{border-bottom:1px solid var(--blue-line);transition:color .2s ease}
.jc-tel:hover{color:var(--blue-hi)}
.jc-telblock{margin-top:22px;padding-top:18px;border-top:1px solid var(--black-3)}
.jc-telblock .k{display:block;font-size:12px;color:var(--onblack-3);letter-spacing:.1em;margin-bottom:6px}
.jc-telblock .jc-tel{font-size:19px;font-weight:600;color:#fff;letter-spacing:-.01em;border-bottom:0}
.jc-telblock .jc-tel:hover{color:var(--blue-hi)}

/* ---------- footer business panel ---------- */
.jc-bizpanel{display:grid;grid-template-columns:1.2fr 1.2fr 1fr;gap:clamp(24px,4vw,56px);
  padding-bottom:30px;margin-bottom:26px;border-bottom:1px solid var(--black-3)}
.jc-bizpanel h4{margin:0 0 14px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue-hi);font-weight:600}
.jc-bizpanel dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:7px 16px;font-size:13.5px}
.jc-bizpanel dt{color:var(--onblack-3);white-space:nowrap}
.jc-bizpanel dd{margin:0;color:var(--onblack-2)}
.jc-bizpanel dd a{border-bottom:1px solid var(--black-3)}
.jc-bizpanel dd a:hover{color:var(--blue-hi);border-color:var(--blue-line)}
.jc-bizpanel ul{list-style:none;margin:0;padding:0;font-size:13.5px}
.jc-bizpanel li{margin-bottom:8px}
.jc-bizpanel li a{color:var(--onblack-2)}
.jc-bizpanel li a:hover{color:var(--blue-hi)}
@media(max-width:820px){.jc-bizpanel{grid-template-columns:1fr;gap:26px}}

/* ---------- legal pages ---------- */
.jc-legal{padding-top:clamp(48px,6vw,80px)}
.jc-legal .jc-head{max-width:58ch}
.jc-legal-date{font-size:12.5px;color:var(--ink-3);margin:0 0 clamp(32px,4vw,44px);
  padding-bottom:18px;border-bottom:1px solid var(--rule)}
.jc-legal-body{max-width:74ch}
.jc-legal-body h3{font-size:18px;font-weight:600;letter-spacing:-.02em;margin:34px 0 10px;color:var(--ink)}
.jc-legal-body h3:first-child{margin-top:0}
.jc-legal-body p{font-size:15.5px;line-height:1.65;color:var(--ink-2);margin:0 0 13px}

/* ---------- trip form on dark backgrounds ---------- */
.jc-tripform.on-dark .jc-strip{background:var(--black);border:1.5px solid #2c4557;grid-template-columns:1fr 1fr}
.jc-tripform.on-dark.rt .jc-strip{grid-template-columns:1fr 1fr}
.jc-tripform.on-dark .jc-check{background:var(--black-2);border-color:var(--black-3);color:var(--onblack-2)}
.jc-tripform.on-dark .jc-check:hover{border-color:var(--blue-hi);color:#fff}
.jc-tripform.on-dark .jc-check input{accent-color:var(--blue-hi)}
.jc-tripform.on-dark.rt .jc-check{border-color:var(--blue-hi);color:#fff}
.jc-tripform.on-dark .jc-strip .f{border-right-color:var(--black-3);border-bottom-color:var(--black-3);padding:14px 18px 16px}
.jc-tripform.on-dark .jc-strip .f:nth-child(2n){border-right:0}
.jc-tripform.on-dark .jc-strip .f:nth-child(-n+2){border-bottom:1px solid var(--black-3)}
.jc-tripform.on-dark .jc-strip .f:focus-within{background:var(--black-3)}
.jc-tripform.on-dark .jc-strip .f label{color:var(--onblack-2);font-weight:600}
.jc-tripform.on-dark .jc-strip .f input{color:#fff;font-size:16px}
.jc-tripform.on-dark .jc-strip .f input::placeholder{color:#6d7f8c;font-weight:400}
.jc-tripform.on-dark .jc-strip .f input[type=date]{color-scheme:dark}
.jc-tripform.on-dark .jc-strip .go{grid-column:1/-1;background:var(--blue-hi);color:var(--black);padding:15px}
.jc-tripform.on-dark .jc-strip .go:hover{background:#6bb2d6}
.jc-tripform.on-dark .jc-strip .f:has(input:user-invalid){background:rgba(210,90,70,.10)}
.jc-tripform.on-dark .jc-strip .f input:user-invalid{color:#e79683}
.jc-tripform.on-dark .jc-ac{background:var(--black-2);border-color:var(--black-3);box-shadow:0 12px 32px rgba(0,0,0,.5)}
.jc-tripform.on-dark .jc-ac li .c{color:var(--blue-hi)}
.jc-tripform.on-dark .jc-ac li .n{color:var(--onblack-2)}
.jc-tripform.on-dark .jc-ac li.on,.jc-tripform.on-dark .jc-ac li:hover{background:var(--black-3)}
.jc-tripform.on-dark .jc-ac li.on .n,.jc-tripform.on-dark .jc-ac li:hover .n{color:#fff}
.jc-stripnote.on-dark{color:var(--onblack-3);margin-top:10px}
@media(max-width:560px){.jc-strip.on-dark{grid-template-columns:1fr}
  .jc-tripform.on-dark .jc-strip .f,.jc-tripform.on-dark .jc-strip .f:nth-child(2n){border-right:0;border-bottom:1px solid var(--black-3)}}

/* contact card meta row under the form */
.jc-cmeta{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px;padding-top:20px;border-top:1px solid var(--black-3)}
.jc-cmeta .k{display:block;font-size:11.5px;color:var(--onblack-3);letter-spacing:.1em;margin-bottom:6px}
.jc-cmeta a{font-size:15px;font-weight:600;color:#fff;word-break:break-word;border-bottom:0}
.jc-cmeta a:hover{color:var(--blue-hi)}
.jc-cmeta .at{color:var(--blue-hi)}
@media(max-width:480px){.jc-cmeta{grid-template-columns:1fr;gap:14px}}

/* the anchored form should not hide under the sticky-free nav */
#trip{scroll-margin-top:20px}

/* ---------- vertical trip clips ---------- */
.jc-vids{display:grid;grid-template-columns:repeat(2,320px);gap:20px;justify-content:center;
  margin:clamp(32px,4vw,48px) 0 10px}
.jc-vid{margin:0;position:relative}
.jc-vid video{width:100%;aspect-ratio:9/16;display:block;background:var(--black-2);
  border:1px solid var(--rule);object-fit:cover}
.jc-vid figcaption{margin-top:10px;font-size:13px;color:var(--ink-3);line-height:1.45;text-align:center}
.jc-vidnote{font-size:12.5px;color:var(--ink-3);text-align:center;margin:0 0 clamp(38px,5vw,56px)}
@media(max-width:720px){
  .jc-vids{grid-template-columns:1fr;gap:24px;max-width:320px;margin-left:auto;margin-right:auto}
}

/* ---------- desktop send chooser ---------- */
.jc-send{position:fixed;inset:0;z-index:200;display:grid;place-items:center;
  background:rgba(8,17,26,.62);backdrop-filter:blur(3px);padding:24px;
  animation:jcFade .16s ease both}
@keyframes jcFade{from{opacity:0}to{opacity:1}}
.jc-send-panel{position:relative;width:100%;max-width:430px;background:var(--paper);
  border:1px solid var(--rule-2);padding:32px 32px 26px;box-shadow:0 24px 64px rgba(8,17,26,.35)}
.jc-send-x{position:absolute;top:12px;right:14px;border:0;background:none;cursor:pointer;
  font-size:24px;line-height:1;color:var(--ink-3);padding:4px 8px;font-family:inherit}
.jc-send-x:hover{color:var(--ink)}
.jc-send-panel h3{margin:0 0 8px;font-size:21px;font-weight:600;letter-spacing:-.025em;color:var(--ink)}
.jc-send-sub{margin:0 0 22px;font-size:14.5px;line-height:1.5;color:var(--ink-2)}
.jc-send-opts{display:grid;grid-template-columns:1fr;gap:9px}
.jc-send-btn{display:block;width:100%;text-align:left;padding:13px 16px;font-family:inherit;
  font-size:14.5px;font-weight:600;cursor:pointer;border:1px solid var(--blue);
  background:var(--blue);color:#fff;transition:background .18s ease,border-color .18s ease,color .18s ease}
.jc-send-btn:hover{background:var(--blue-line);color:#fff}
.jc-send-btn.ghost{background:transparent;color:var(--ink);border-color:var(--rule-2);font-weight:500}
.jc-send-btn.ghost:hover{border-color:var(--blue);color:var(--blue);background:transparent}
.jc-send-btn.done{border-color:var(--blue);color:var(--blue);font-weight:600}
.jc-send-addr{margin-top:20px;padding-top:16px;border-top:1px solid var(--rule);
  font-size:13px;color:var(--ink-3)}
.jc-send-to{color:var(--ink-2);font-weight:600}

/* ---------- fee schedule ---------- */
.jc-fees{margin:clamp(34px,4vw,48px) 0 clamp(40px,5vw,58px);
  border:1px solid var(--black-3);background:var(--black-2);padding:28px 30px 26px}
.jc-fees h3{margin:0 0 18px;font-size:17px;font-weight:600;color:#fff;letter-spacing:-.015em}
.jc-feetable{width:100%;border-collapse:collapse;font-size:15px}
.jc-feetable th{text-align:left;font-size:11.5px;letter-spacing:.1em;color:var(--onblack-3);
  font-weight:600;padding:0 14px 10px 0;border-bottom:1px solid var(--black-3)}
.jc-feetable td{padding:13px 14px 13px 0;border-bottom:1px solid var(--black-3);color:var(--onblack-2)}
.jc-feetable tr:last-child td{border-bottom:0;color:var(--onblack-3)}
.jc-feetable .r{font-variant-numeric:tabular-nums;color:#fff;font-weight:600;white-space:nowrap}
.jc-feetable tr:last-child .r{color:var(--onblack-2)}
.jc-feenote{margin:16px 0 0;font-size:14px;line-height:1.6;color:var(--onblack-2)}
@media(max-width:600px){
  .jc-fees{padding:22px 20px}
  .jc-feetable thead{display:none}
  .jc-feetable tr{display:block;padding:12px 0;border-bottom:1px solid var(--black-3)}
  .jc-feetable td{display:flex;justify-content:space-between;gap:16px;border:0;padding:3px 0}
}

/* ---------- repositioning watch ---------- */
.jc-watchblock{border:1px solid var(--rule-2);background:var(--paper-2);
  padding:clamp(24px,3vw,32px);margin:clamp(34px,4vw,46px) 0 0}
.jc-watchblock h3{margin:0 0 10px;font-size:19px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
.jc-watchblock p{margin:0 0 22px;font-size:15.5px;line-height:1.6;color:var(--ink-2);max-width:64ch}
.jc-watch .jc-strip{background:var(--paper)}
.jc-watch .go{background:var(--ink);color:var(--paper)}
.jc-watch .go:hover{background:var(--blue)}

/* ---------- logo ---------- */
.jc-logo{height:44px;width:auto;max-width:none;object-fit:contain;display:block;flex:none}
.jc-brand{gap:14px;align-items:center}
.jc-brand.logo-only .sub{padding-left:14px;border-left:1px solid var(--rule-2)}
.jc-logo-foot{height:46px;width:auto;object-fit:contain;margin-bottom:28px;opacity:.92}
/* if the logo carries its own wordmark, hide the text one */
.jc-brand.logo-only .jc-wordmark{display:none}
@media(max-width:600px){
  .jc-logo{height:34px}
  .jc-brand .sub{display:none}
  .jc-logo-foot{height:34px}
}

/* ---------- contact card buttons ---------- */
.jc-cmeta{display:grid;grid-template-columns:1.35fr 1fr;gap:12px;margin-top:22px;
  padding-top:20px;border-top:1px solid var(--black-3)}
.jc-cbtn{display:block;width:100%;text-align:left;padding:13px 16px;font-family:inherit;cursor:pointer;
  background:transparent;border:1px solid var(--black-3);transition:border-color .2s ease,background .2s ease}
.jc-cbtn:hover{border-color:var(--blue-hi);background:rgba(78,156,196,.07)}
.jc-cbtn .k{display:block;font-size:11px;color:var(--onblack-3);letter-spacing:.12em;
  text-transform:uppercase;margin-bottom:5px}
.jc-cbtn .v{display:block;font-size:15px;font-weight:600;color:#fff;letter-spacing:-.015em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jc-cbtn:hover .v{color:var(--blue-hi)}
@media(max-width:520px){.jc-cmeta{grid-template-columns:1fr}}

/* footer email line: never break mid-domain */
.jc-bizpanel dd a{overflow-wrap:anywhere;font-size:13px}

/* ---------- verifiable credentials ---------- */
.jc-creds{margin-top:clamp(40px,5vw,58px);border-top:1px solid var(--rule);padding-top:clamp(28px,3.5vw,40px)}
.jc-creds-head{margin-bottom:22px}
.jc-creds-head h3{margin:0 0 6px;font-size:19px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
.jc-creds-head p{margin:0;font-size:14.5px;color:var(--ink-3);line-height:1.5}
.jc-creds ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(28px,4vw,52px)}
.jc-creds li{display:grid;grid-template-columns:92px 1fr;gap:4px 16px;
  padding:15px 0;border-bottom:1px solid var(--rule)}
.jc-creds .k{grid-row:1 / span 2;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--blue);font-weight:600;padding-top:3px}
.jc-creds .v{font-size:15.5px;font-weight:600;color:var(--ink);letter-spacing:-.01em;line-height:1.35}
.jc-creds .n{font-size:13.5px;color:var(--ink-2);line-height:1.45}
@media(max-width:820px){
  .jc-creds ul{grid-template-columns:1fr}
  .jc-creds li{grid-template-columns:1fr;gap:3px}
  .jc-creds .k{grid-row:auto;padding-top:0;margin-bottom:3px}
}

/* ---------- pilot block (sits at the foot of Safety) ---------- */
.jc-seat-block{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(28px,4vw,56px);
  align-items:center;margin-top:clamp(36px,4.5vw,52px);padding-top:clamp(28px,3.5vw,40px);
  border-top:1px solid var(--rule)}
.jc-seat-body h3{margin:0 0 12px;font-size:19px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
.jc-seat-body p{margin:0 0 12px;font-size:15.5px;line-height:1.6;color:var(--ink-2);max-width:60ch}
.jc-seat-body p:last-child{margin:0}
.jc-seat{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.jc-seat figure{margin:0;aspect-ratio:3/2;overflow:hidden;border:1px solid var(--rule);background:var(--paper-2)}
.jc-seat img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.jc-seat figure:hover img{transform:scale(1.03)}

/* dark variant */
.jc-seat-block.on-dark{border-top-color:var(--black-3)}
.jc-seat-block.on-dark .jc-seat-body h3{color:#fff}
.jc-seat-block.on-dark .jc-seat-body p{color:var(--onblack-2)}
.jc-seat-block.on-dark .jc-seat figure{border-color:var(--black-3);background:var(--black-2)}

@media(max-width:820px){
  .jc-seat-block{grid-template-columns:1fr;gap:22px}
  .jc-seat{max-width:420px}
}

/* ---------- hero data caveat (route + aircraft pages) ----------
   The Part 295 statement left the hero in 1.90.1: the footer carries it on
   every page and the hub has a full Required disclosures section. */
.jc-hero-note{font-size:13px;line-height:1.55;color:var(--onblack-3);max-width:62ch;margin:0 0 40px}

/* hub hero: the three things nobody else will say, then a way into "Why me" */
.jc-hero .lede + .jc-hero-proof{margin-top:-26px}
.jc-hero-proof{margin:0 0 44px;font-size:clamp(15px,1.3vw,17px);line-height:1.5;font-weight:600;
  letter-spacing:-.005em;color:var(--onblack);max-width:54ch}
@media(max-width:600px){.jc-hero .lede + .jc-hero-proof{margin-top:-20px}}
/* "Absolute" badge on the never-waived checks in the safety list */
.jc-abs{display:inline-block;margin-left:8px;padding:2px 7px;border-radius:3px;font-size:10.5px;
  font-weight:700;letter-spacing:.06em;text-transform:uppercase;vertical-align:middle;
  color:var(--blue-hi);background:rgba(90,150,200,.14);border:1px solid var(--blue-line)}

.jc-hero-more{margin:16px 0 0;font-size:14.5px;font-weight:600}
.jc-hero-more a{color:var(--blue-hi);text-decoration:none;border-bottom:1px solid var(--blue-line)}
.jc-hero-more a:hover{color:var(--onblack);border-bottom-color:var(--onblack-2)}

/* ---------- FAQ page ---------- */
.jc-faq{padding-top:clamp(44px,5vw,72px)}
.jc-faq .jc-head{max-width:62ch}
.jc-faq-jump{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:clamp(32px,4vw,44px);
  padding-bottom:clamp(24px,3vw,32px);border-bottom:1px solid var(--rule)}
.jc-faq-jump a{display:inline-block;padding:8px 14px;border:1px solid var(--rule-2);
  font-size:13.5px;color:var(--ink-2);transition:all .18s ease}
.jc-faq-jump a:hover{border-color:var(--blue);color:var(--blue)}

.jc-faq-group{margin-bottom:clamp(34px,4vw,48px);scroll-margin-top:24px}
.jc-faq-group h3{margin:0 0 4px;font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--blue);font-weight:700;padding-bottom:12px;border-bottom:2px solid var(--ink)}

.jc-faq-item{border-bottom:1px solid var(--rule)}
.jc-faq-item summary{list-style:none;cursor:pointer;padding:18px 40px 18px 0;position:relative;
  font-size:16.5px;font-weight:600;letter-spacing:-.01em;color:var(--ink);line-height:1.4}
.jc-faq-item summary::-webkit-details-marker{display:none}
.jc-faq-item summary::after{content:"";position:absolute;right:10px;top:50%;width:9px;height:9px;
  border-right:2px solid var(--blue);border-bottom:2px solid var(--blue);
  transform:translateY(-70%) rotate(45deg);transition:transform .2s ease}
.jc-faq-item[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.jc-faq-item summary:hover{color:var(--blue)}
.jc-faq-a{padding:0 40px 20px 0}
.jc-faq-a p{margin:0;font-size:15.5px;line-height:1.65;color:var(--ink-2);max-width:74ch}

.jc-faq-cta{margin-top:clamp(36px,4vw,52px);padding:clamp(26px,3vw,34px);
  background:var(--paper-2);border:1px solid var(--rule-2);border-left:3px solid var(--blue)}
.jc-faq-cta h3{margin:0 0 6px;font-size:19px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
.jc-faq-cta p{margin:0 0 18px;font-size:15.5px;color:var(--ink-2)}
.jc-faq-cta-row{display:flex;gap:12px;flex-wrap:wrap}
.jc-faq-cta .jc-btn{background:var(--blue);color:#fff}
.jc-faq-cta .jc-btn:hover{background:var(--blue-line);color:#fff}
.jc-faq-cta .jc-btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--rule-2)}
.jc-faq-cta .jc-btn.ghost:hover{border-color:var(--blue);color:var(--blue);background:transparent}
@media(max-width:560px){
  .jc-faq-item summary{font-size:15.5px;padding-right:34px}
  .jc-faq-cta-row .jc-btn{width:100%;text-align:center}
}

/* ---------- what's included ---------- */
.jc-incl{margin-top:clamp(40px,5vw,60px);padding-top:clamp(30px,3.5vw,42px);border-top:1px solid var(--rule)}
.jc-incl-head{max-width:64ch;margin-bottom:clamp(24px,3vw,32px)}
.jc-incl-head h3{margin:0 0 8px;font-size:21px;font-weight:600;letter-spacing:-.025em;color:var(--ink)}
.jc-incl-head p{margin:0;font-size:15.5px;line-height:1.6;color:var(--ink-2)}
.jc-incl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);
  border:1px solid var(--rule)}
.jc-incl-item{background:var(--paper);padding:22px 22px 26px}
.jc-incl-item h4{margin:0 0 9px;font-size:16px;font-weight:600;letter-spacing:-.015em;color:var(--ink);line-height:1.3}
.jc-incl-item p{margin:0;font-size:14.5px;line-height:1.55;color:var(--ink-2)}
.jc-incl-item strong{color:var(--ink);font-weight:600}
@media(max-width:1000px){.jc-incl-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.jc-incl-grid{grid-template-columns:1fr}}

/* ---------- empty leg page ---------- */
.jc-el-hero h1{font-size:clamp(34px,4.8vw,60px);line-height:1.05;letter-spacing:-.035em;
  font-weight:600;margin:0 0 20px;max-width:18ch;color:#fff}
.jc-el-hero .lede{margin-bottom:44px}
.jc-el-note{margin:clamp(26px,3vw,34px) 0 0;font-size:15px;line-height:1.6;color:var(--ink-2);
  max-width:74ch;padding-left:16px;border-left:2px solid var(--blue)}

.jc-el-tips{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--rule)}
.jc-el-tips > div{display:grid;grid-template-columns:52px 1fr;gap:18px;padding:20px 0;
  border-bottom:1px solid var(--rule);align-items:start}
.jc-el-tips .n{font-size:13px;font-weight:700;color:var(--blue);font-variant-numeric:tabular-nums;padding-top:3px}
.jc-el-tips h4{margin:0 0 5px;font-size:16.5px;font-weight:600;letter-spacing:-.015em;color:var(--ink)}
.jc-el-tips p{margin:0;font-size:15px;line-height:1.55;color:var(--ink-2);max-width:72ch}

.jc-el-form-dark .jc-strip{background:var(--paper)}
@media(max-width:560px){.jc-el-tips > div{grid-template-columns:1fr;gap:4px}.jc-el-tips .n{padding-top:0}}

/* ---------- hero form, sitting on the dark hero ---------- */
.jc-hero-form{padding:clamp(28px,4vw,40px) 0 clamp(30px,4vw,44px)}
.jc-striphint.on-dark{color:var(--onblack-2)}
.jc-striphint.on-dark b{color:#fff}
.jc-stripnote.on-dark{color:var(--onblack-3)}
.jc-shot{margin-top:0}

/* ---------- hero with a background photograph ---------- */
.jc-hero.jc-el-hero{position:relative;overflow:hidden;background:var(--black)}
.jc-hero.jc-el-hero::before{
  content:"";position:absolute;inset:0;z-index:0;
  background-image:var(--el-bg);background-size:cover;background-position:center;
  transform:scale(1.02)}
.jc-hero.jc-el-hero::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(6,13,20,.86) 0%,rgba(6,13,20,.78) 45%,rgba(6,13,20,.92) 100%)}
.jc-hero.jc-el-hero > *{position:relative;z-index:2}
@media(max-width:700px){
  .jc-hero.jc-el-hero::after{background:linear-gradient(180deg,rgba(6,13,20,.90) 0%,rgba(6,13,20,.86) 45%,rgba(6,13,20,.94) 100%)}
}

/* ---------- empty leg imagery ---------- */
.jc-el-photo{margin:0;position:relative}
.jc-el-photo img{width:100%;height:clamp(240px,34vw,440px);object-fit:cover;display:block}
.jc-el-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px var(--g) 18px;
  background:linear-gradient(180deg,rgba(8,17,26,0),rgba(8,17,26,.88));
  font-size:13.5px;letter-spacing:.02em;color:#e9eef2}
@media(max-width:600px){.jc-el-photo figcaption{font-size:12.5px;padding-bottom:14px}}

.jc-el-map{margin:0 0 clamp(28px,3.5vw,38px)}
.jc-el-map img{width:100%;height:auto;display:block;border:1px solid var(--rule);background:var(--paper-2)}
.jc-el-map figcaption{margin-top:10px;font-size:13px;color:var(--ink-3);line-height:1.5}

/* empty leg form carries five fields, not four */
.jc-empty .jc-strip{grid-template-columns:repeat(5,1fr) auto}
@media(max-width:1100px){.jc-empty .jc-strip{grid-template-columns:repeat(3,1fr)}
  .jc-empty .jc-strip .f:nth-child(3n){border-right:0}
  .jc-empty .jc-strip .go{grid-column:1/-1;padding:16px}}
@media(max-width:820px){.jc-empty .jc-strip{grid-template-columns:repeat(2,1fr)}
  .jc-empty .jc-strip .f{border-right:1px solid #b5ad9c}
  .jc-empty .jc-strip .f:nth-child(2n){border-right:0}}
@media(max-width:560px){.jc-empty .jc-strip{grid-template-columns:1fr}
  .jc-empty .jc-strip .f,.jc-empty .jc-strip .f:nth-child(2n),.jc-empty .jc-strip .f:nth-child(3n){border-right:0;border-bottom:1px solid #b5ad9c}}


/* ---------- pillar page ---------- */
.jc-crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12.5px;
  color:var(--onblack-3);margin-bottom:18px}
.jc-crumbs a{color:var(--blue-hi);border-bottom:1px solid transparent}
.jc-crumbs a:hover{border-bottom-color:var(--blue-hi)}

.jc-3up{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.jc-3up{grid-template-columns:1fr}}

.jc-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.jc-table-scroll table{min-width:560px}

/* ---------- tables on a phone ----------
   The forced minimum width made narrow screens scroll sideways mid-sentence.
   Below 700px the tables stop being tables and become stacked blocks. */
@media(max-width:700px){
  .jc-table-scroll{overflow-x:visible}
  .jc-table-scroll table,.jc-feetable{min-width:0;width:100%;display:block}
  .jc-feetable thead{display:none}
  .jc-feetable tbody{display:block}
  .jc-feetable tr{display:block;padding:16px 0;border-bottom:1px solid var(--rule)}
  .jc-s.dark .jc-feetable tr{border-bottom-color:var(--black-3)}
  .jc-feetable tr:last-child{border-bottom:0}
  .jc-feetable td{display:block;border:0;padding:0 0 6px;max-width:none;
    font-size:15.5px;line-height:1.5;overflow-wrap:anywhere}
  .jc-feetable td:last-child{padding-bottom:0}

  /* decision tables: first cell is the situation, second the aircraft, third the reason */
  .jc-cmp td:first-child{font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;
    color:var(--ink-3);font-weight:600;padding-bottom:4px}
  .jc-s.dark .jc-cmp td:first-child{color:var(--onblack-3)}
  .jc-cmp td.r{font-size:18px;font-weight:600;letter-spacing:-.015em;color:var(--ink);
    text-align:left;padding-bottom:6px}
  .jc-s.dark .jc-cmp td.r{color:#fff}

  /* spec tables carry their own column labels, so each value keeps its meaning */
  .jc-spec td{display:flex;justify-content:space-between;gap:18px;align-items:baseline;
    padding:5px 0;font-size:15px}
  .jc-spec td::before{content:attr(data-l);color:var(--ink-3);font-size:13px;
    font-weight:500;flex:none;text-transform:none;letter-spacing:0}
  .jc-s.dark .jc-spec td::before{color:var(--onblack-3)}
  .jc-spec td:first-child{font-size:16.5px;font-weight:700;text-transform:none;
    letter-spacing:-.015em;color:var(--ink);padding-bottom:8px;display:block}
  .jc-s.dark .jc-spec td:first-child{color:#fff}
  .jc-spec td:first-child::before{content:none}
  .jc-spec td.r{font-size:15px;font-weight:600}
}
.jc-cmp td:first-child{max-width:320px}
.jc-s:not(.dark) .jc-feetable th{color:var(--ink-3);border-bottom-color:var(--ink)}
.jc-s:not(.dark) .jc-feetable td{color:var(--ink-2);border-bottom-color:var(--rule)}
.jc-s:not(.dark) .jc-feetable .r{color:var(--ink)}
.jc-s:not(.dark) .jc-feetable tr:last-child td{color:var(--ink-2)}
.jc-s:not(.dark) .jc-feetable tr:last-child .r{color:var(--ink)}
.jc-s:not(.dark) .jc-price-note{color:var(--ink-3)}

.jc-sub{margin:clamp(30px,3.5vw,42px) 0 14px;font-size:19px;font-weight:600;
  letter-spacing:-.02em;color:var(--ink)}
.jc-s.dark .jc-sub{color:#fff}

.jc-layout-fig{margin:clamp(26px,3vw,36px) 0 0}
.jc-layout-fig img{width:100%;height:auto;display:block;border:1px solid var(--rule);background:var(--paper-2)}
.jc-layout-fig figcaption{margin-top:10px;font-size:13.5px;line-height:1.55;color:var(--ink-2);max-width:74ch}

.jc-seat-wide{grid-template-columns:1fr 1fr;margin-top:clamp(26px,3vw,34px)}
@media(max-width:700px){.jc-seat-wide{grid-template-columns:1fr}}

.jc-el-cta{margin-top:clamp(26px,3vw,36px);padding-top:clamp(22px,2.5vw,28px);
  border-top:1px solid var(--rule)}
.jc-s.dark .jc-el-cta{border-top-color:var(--black-3)}
.jc-el-cta p{margin:0 0 14px;font-size:16px;color:var(--ink-2);max-width:70ch}
.jc-s.dark .jc-el-cta p{color:var(--onblack-2)}
.jc-el-cta .jc-btn{background:var(--blue);color:#fff}
.jc-el-cta .jc-btn:hover{background:var(--blue-line);color:#fff}
.jc-s.dark .jc-el-cta .jc-btn{background:var(--blue-hi);color:var(--black)}

.jc-el-formwrap{margin-top:clamp(30px,3.5vw,42px);padding:clamp(24px,3vw,32px);
  background:var(--paper-2);border:1px solid var(--rule-2);border-left:3px solid var(--blue)}
.jc-el-formwrap .jc-strip{background:var(--paper)}

.jc-el-note.on-dark{color:var(--onblack-2);border-left-color:var(--blue-hi)}
.jc-el-note.on-dark a{color:var(--blue-hi);border-bottom:1px solid var(--blue-line)}

.jc-faq-dark .jc-faq-item{border-bottom-color:var(--black-3)}
.jc-faq-dark .jc-faq-item summary{color:#fff}
.jc-faq-dark .jc-faq-item summary:hover{color:var(--blue-hi)}
.jc-faq-dark .jc-faq-item summary::after{border-color:var(--blue-hi)}
.jc-faq-dark .jc-faq-a p{color:var(--onblack-2)}

/* recommendation form is six cells wide */
.jc-rec .jc-strip{grid-template-columns:repeat(5,1fr) auto}
@media(max-width:1100px){.jc-rec .jc-strip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.jc-rec .jc-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.jc-rec .jc-strip{grid-template-columns:1fr}}
.jc-dim{color:var(--ink-3);font-size:13px;font-weight:400}
.jc-s.dark .jc-dim{color:var(--onblack-3)}
.jc-seat-block.on-dark .jc-seat figure{border-color:var(--black-3);background:var(--black-2)}
.jc-el-note a{color:var(--blue);border-bottom:1px solid var(--rule-2)}
.jc-el-note a:hover{border-bottom-color:var(--blue)}

/* ---------- pillar: editorial measure, then full-width imagery ---------- */
.jc-prose{max-width:68ch}
.jc-prose p{margin:0 0 15px;font-size:16.5px;line-height:1.68;color:var(--ink-2)}
.jc-prose p:last-child{margin-bottom:0}
.jc-prose p b,.jc-prose p strong{color:var(--ink);font-weight:600}
.jc-s.dark .jc-prose p{color:var(--onblack-2)}
.jc-s.dark .jc-prose p b,.jc-s.dark .jc-prose p strong{color:#fff}

/* first paragraph carries a little more weight, the way a standfirst does */
.jc-prose p:first-child{font-size:18px;line-height:1.6;color:var(--ink)}
.jc-s.dark .jc-prose p:first-child{color:var(--onblack)}

.jc-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;
  margin-top:clamp(30px,3.5vw,44px)}
.jc-gallery figure{margin:0;aspect-ratio:3/2;overflow:hidden;
  border:1px solid var(--rule);background:var(--paper-2)}
.jc-s.dark .jc-gallery figure{border-color:var(--black-3);background:var(--black-2)}
.jc-gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.jc-gallery figure:hover img{transform:scale(1.03)}

/* a lone image should never sit as a half-width orphan */
.jc-gallery figure:only-child{grid-column:1/-1;aspect-ratio:21/9}
/* three images: one wide above two */
.jc-gallery figure:first-child:nth-last-child(3){grid-column:1/-1;aspect-ratio:21/9}
/* four images sit as a clean two by two, which the default already gives */

@media(max-width:640px){
  .jc-gallery{grid-template-columns:1fr;gap:12px}
  .jc-gallery figure,.jc-gallery figure:only-child,
  .jc-gallery figure:first-child:nth-last-child(3){aspect-ratio:3/2;grid-column:auto}
}

/* ---------- pillar: aircraft divider bands ---------- */
.jc-aircraft-band img{height:auto;object-fit:cover}

/* ---------- per-aircraft band framing ----------
   Measured from the source files. 3.3:1 is the tightest band all three
   photographs allow while keeping clear air above every tail and below every
   set of wheels — the Lear is the limiting one. Each value places that
   aircraft's own centre at 47% of the band, so the three read as a set.
   Recomputed per breakpoint: a different ratio shows a different slice. */
.jc-aircraft-band img{aspect-ratio:3.3/1}
.band-citation img{object-position:center 72%}
.band-hawker  img{object-position:center 51%}
.band-lear    img{object-position:center 35%}

@media(max-width:900px){
  .jc-aircraft-band img{aspect-ratio:2.2/1}
  .band-citation img{object-position:center 91%}
  .band-hawker  img{object-position:center 55%}
  .band-lear    img{object-position:center 29%}
}
@media(max-width:600px){
  .jc-aircraft-band img{aspect-ratio:3/2}
  .band-citation img{object-position:center 50%}
  .band-hawker  img{object-position:center 50%}
  .band-lear    img{object-position:center 0%}
}

/* ---------- a dark section carrying a photograph behind it ---------- */
.jc-s.jc-photo-bg{position:relative;overflow:hidden;background:var(--black)}
.jc-s.jc-photo-bg::before{content:"";position:absolute;inset:0;z-index:0;
  background-image:var(--sec-bg);background-size:cover;background-position:center 42%;
  transform:scale(1.02)}
.jc-s.jc-photo-bg::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(6,13,20,.92) 0%,rgba(6,13,20,.80) 38%,rgba(6,13,20,.94) 100%)}
.jc-s.jc-photo-bg > *{position:relative;z-index:2}
.jc-s.jc-photo-bg .jc-why-pt{border-color:rgba(233,238,242,.16)}
.jc-s.jc-photo-bg .jc-why-grid{border-top-color:rgba(233,238,242,.16)}
@media(max-width:700px){
  .jc-s.jc-photo-bg::before{background-position:center 46%}
  .jc-s.jc-photo-bg::after{background:linear-gradient(180deg,rgba(6,13,20,.94) 0%,rgba(6,13,20,.88) 38%,rgba(6,13,20,.96) 100%)}
}
.jc-gallery-note{margin:12px 0 0;font-size:13px;line-height:1.55;color:var(--ink-3);max-width:74ch}
.jc-s.dark .jc-gallery-note{color:var(--onblack-3)}

/* ---------- fit calculator ---------- */
.jc-calc{margin:0}
.jc-calc-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;
  background:#b5ad9c;border:2px solid #6b6557}
.jc-calc-grid .f{background:var(--paper);padding:16px 18px 18px;min-width:0}
.jc-calc-grid label{display:block;font-size:12px;color:#20272d;font-weight:700;
  letter-spacing:.11em;margin-bottom:7px;text-transform:uppercase}
.jc-calc-grid input{width:100%;border:0;background:transparent;font-family:inherit;
  font-size:22px;font-weight:600;color:#141a1f;letter-spacing:-.01em;padding:0;outline:none}
.jc-calc-grid input:focus{color:var(--blue)}
/* people on their own row, the four bag types two by two: no empty cells */
@media(max-width:900px){
  .jc-calc-grid{grid-template-columns:repeat(2,1fr)}
  .jc-calc-grid .f:first-child{grid-column:1 / -1}
}

/* steppers: visible +/- on every device, so it reads as adjustable */
.jc-step{display:flex;align-items:center;gap:8px}
.jc-step input{text-align:center;min-width:0;flex:1 1 auto;-moz-appearance:textfield;appearance:textfield}
.jc-step input::-webkit-outer-spin-button,
.jc-step input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.jc-step-b{flex:0 0 auto;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;
  border:1.5px solid var(--blue);background:transparent;color:var(--blue);font:600 22px/1 var(--f);
  cursor:pointer;padding:0;transition:background .15s ease,color .15s ease;touch-action:manipulation}
@media(hover:hover){.jc-step-b:not(:disabled):hover{background:var(--blue);color:#fff}}
.jc-step-b:not(:disabled):active{background:var(--blue);color:#fff}
.jc-step-b:focus-visible{outline:2px solid var(--blue-hi);outline-offset:2px}
.jc-step-b:disabled{border-color:var(--rule-2);color:var(--ink-3);background:transparent;cursor:default}
@media(max-width:900px){.jc-step-b{width:44px;height:44px}}
.jc-calc-hint{margin:12px 0 0;font-size:14px;color:var(--ink-2)}
.jc-calc-hint b{color:var(--blue);font-weight:700}

.jc-calc-out{margin-top:clamp(24px,3vw,32px)}
.jc-calc-sum{font-size:17px;color:var(--ink-2);padding-bottom:18px;border-bottom:1px solid var(--rule)}
.jc-calc-sum b{color:var(--ink);font-weight:600}
.jc-calc-h{margin:24px 0 14px;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--blue);font-weight:700}
.jc-calc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:900px){.jc-calc-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.jc-calc-cards{grid-template-columns:1fr}}
/* never an empty cell: the last card takes whatever the final row is short by */
.jc-calc-cards > :nth-child(3n+1):last-child{grid-column:1 / -1}
.jc-calc-cards > :nth-child(3n+2):last-child{grid-column:span 2}
@media(max-width:900px){
  .jc-calc-cards > :nth-child(n+1):nth-child(n+1):last-child{grid-column:auto}
  .jc-calc-cards > :nth-child(odd):nth-child(n+1):last-child{grid-column:1 / -1}
}
@media(max-width:560px){
  .jc-calc-cards > :nth-child(n+1):nth-child(n+1):nth-child(n+1):last-child{grid-column:auto}
}
.jc-calc-card{border:1px solid var(--rule-2);border-left:3px solid var(--blue);
  background:var(--paper-2);padding:16px 18px}
.jc-calc-card.tight{border-left-color:#b08a3e}
.jc-calc-name{font-size:16.5px;font-weight:600;letter-spacing:-.015em;color:var(--ink);line-height:1.3}
.jc-calc-cat{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);
  margin:4px 0 12px;font-weight:600}
.jc-calc-card ul{list-style:none;margin:0;padding:0}
.jc-calc-card li{display:flex;justify-content:space-between;gap:12px;padding:3px 0;font-size:14px}
.jc-calc-card li span{color:var(--ink-3)}
.jc-calc-card li b{color:var(--ink);font-weight:600}
.jc-calc-more{margin:12px 0 0;font-size:14px;color:var(--ink-3);max-width:74ch;line-height:1.55}
.jc-calc-none{margin:18px 0 0;font-size:16px;color:var(--ink-2);max-width:70ch;line-height:1.6;
  padding-left:16px;border-left:2px solid var(--blue)}

/* category dividers inside the long reference table */
.jc-catrow td{font-size:12px!important;letter-spacing:.12em;text-transform:uppercase;
  color:var(--blue)!important;font-weight:700;padding:22px 0 8px!important;
  border-bottom:2px solid var(--ink)!important}
.jc-acnote{display:block;font-size:12.5px;color:var(--ink-3);font-weight:400;
  margin-top:3px;line-height:1.45;max-width:46ch}
@media(max-width:700px){
  .jc-catrow td{padding:18px 0 6px!important}
  .jc-acfull td:first-child{font-size:17px}
}

/* calculator: each result carries its own verify button */
.jc-calc-card{display:flex;flex-direction:column}
.jc-calc-card ul{flex:1}
.jc-calc-go{display:block;margin-top:14px;padding-top:12px;border-top:1px solid var(--rule);
  font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--blue);
  transition:color .18s ease}
.jc-calc-go::after{content:" \2192";transition:margin .18s ease}
.jc-calc-go:hover{color:var(--blue-line)}
.jc-calc-go:hover::after{margin-left:3px}
/* slim bar under the results so nobody has to reach the foot of the page */
.jc-calc-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;
  margin-top:24px;padding:16px 20px;background:var(--paper-2);
  border:1px solid var(--rule-2);border-left:3px solid var(--blue)}
.jc-calc-bar p{margin:0;font-size:14.5px;line-height:1.5;color:var(--ink-2);max-width:62ch}
.jc-calc-bar .jc-btn{flex:none;background:var(--blue);color:#fff;padding:12px 22px;font-size:12.5px}
.jc-calc-bar .jc-btn:hover{background:var(--blue-line);color:#fff}
@media(max-width:760px){
  .jc-calc-bar{flex-direction:column;align-items:flex-start;gap:14px}
  .jc-calc-bar .jc-btn{width:100%;justify-content:center;text-align:center}
}
.jc-calc-form{margin-top:clamp(24px,3vw,32px)}

/* ---------- grids must never leave an empty cell ----------
   Card counts drift as content gets added. Rather than remembering to keep
   every grid a multiple of four, the column count adapts to the item count. */
.jc-incl-grid:has(> :nth-child(3):last-child),
.jc-incl-grid:has(> :nth-child(6):last-child),
.jc-incl-grid:has(> :nth-child(9):last-child){grid-template-columns:repeat(3,1fr)}
.jc-incl-grid:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}
/* odd counts that do not divide: let the last card take the slack */
.jc-incl-grid:has(> :nth-child(5):last-child){grid-template-columns:repeat(3,1fr)}
.jc-incl-grid:has(> :nth-child(5):last-child) > :last-child{grid-column:span 2}
.jc-incl-grid:has(> :nth-child(7):last-child) > :last-child{grid-column:span 2}
@media(max-width:1000px){
  .jc-incl-grid:has(> :nth-child(3):last-child),
  .jc-incl-grid:has(> :nth-child(5):last-child),
  .jc-incl-grid:has(> :nth-child(6):last-child),
  .jc-incl-grid:has(> :nth-child(9):last-child){grid-template-columns:repeat(2,1fr)}
  .jc-incl-grid > :last-child{grid-column:auto}
}
@media(max-width:560px){.jc-incl-grid,.jc-incl-grid:has(> *){grid-template-columns:1fr}}
/* ten or more cards (the route grids): keep four columns and let the last
   card absorb whatever the final row is short by */
.jc-incl-grid > :nth-child(4n+2):nth-child(n+10):last-child{grid-column:span 3}
.jc-incl-grid > :nth-child(4n+3):nth-child(n+10):last-child{grid-column:span 2}
.jc-incl-grid > :nth-child(4n+1):nth-child(n+13):last-child{grid-column:span 4}
@media(max-width:1000px){
  .jc-incl-grid > :nth-child(n+1):nth-child(n+10):last-child{grid-column:auto}
  .jc-incl-grid > :nth-child(odd):nth-child(n+10):last-child{grid-column:span 2}
}
@media(max-width:560px){
  .jc-incl-grid > :nth-child(n+1):nth-child(n+1):nth-child(n+10):last-child{grid-column:auto}
}

/* tips list on a dark section — the component was only styled for light */
.jc-s.dark .jc-el-tips{border-top-color:var(--black-3)}
.jc-s.dark .jc-el-tips > div{border-bottom-color:var(--black-3)}
.jc-s.dark .jc-el-tips .n{color:var(--blue-hi)}
.jc-s.dark .jc-el-tips h4{color:#fff}
.jc-s.dark .jc-el-tips p{color:var(--onblack-2)}
.jc-s.dark .jc-el-tips p b,.jc-s.dark .jc-el-tips p strong{color:#fff}

/* same audit for the other components that can land on either background */
.jc-s.dark .jc-incl-head h3{color:#fff}
.jc-s.dark .jc-incl-head p{color:var(--onblack-2)}
.jc-s.dark .jc-incl-grid{background:var(--black-3);border-color:var(--black-3)}
.jc-s.dark .jc-incl-item{background:var(--black-2)}
.jc-s.dark .jc-incl-item h4{color:#fff}
.jc-s.dark .jc-incl-item p{color:var(--onblack-2)}
.jc-s.dark .jc-incl-item strong,.jc-s.dark .jc-incl-item b{color:#fff}
.jc-s.dark .jc-gallery-note{color:var(--onblack-3)}
.jc-s.dark .jc-layout-fig img{border-color:var(--black-3);background:var(--black-2)}
.jc-s.dark .jc-layout-fig figcaption{color:var(--onblack-2)}
.jc-s.dark .jc-acnote{color:var(--onblack-3)}
.jc-calc-form{scroll-margin-top:28px}

/* the caveat that stops the table being misread */
.jc-warn{margin:0 0 clamp(24px,3vw,32px);padding:clamp(20px,2.4vw,26px);
  background:#f6efe4;border:1px solid #d8c9a8;border-left:3px solid #b08a3e}
.jc-warn h3{margin:0 0 7px;font-size:17px;font-weight:600;letter-spacing:-.015em;color:var(--ink)}
.jc-warn p{margin:0;font-size:15.5px;line-height:1.6;color:var(--ink-2);max-width:78ch}
.jc-warn p b{color:var(--ink);font-weight:600}
.jc-s.dark .jc-warn{background:#1d1a12;border-color:#4a3f26;border-left-color:#b08a3e}
.jc-s.dark .jc-warn h3{color:#fff}
.jc-s.dark .jc-warn p{color:var(--onblack-2)}
.jc-s.dark .jc-warn p b{color:#fff}
.jc-dense{display:inline-block;margin-left:5px;font-size:10.5px;font-weight:600;
  letter-spacing:.07em;text-transform:uppercase;color:#b08a3e}

/* ---------- Charterpad availability widget ----------
   Third-party markup with its own stylesheet. Contain it rather than fight it. */
.jc-cp{background:var(--paper);border:1px solid var(--rule-2);padding:clamp(14px,2vw,22px);
  min-height:280px}
.jc-cp charterpad-widget{display:block;width:100%}
.jc-cp *{max-width:100%}
.jc-cp input,.jc-cp select,.jc-cp button{font-family:inherit}
.jc-nav nav a.is-current{color:var(--blue);border-bottom:2px solid var(--blue);padding-bottom:2px}
@media(max-width:840px){.jc-nav nav a.is-current{border-bottom:0;color:var(--blue)}}

/* ---------- component colours that must survive the cascade ----------
   `.jc-nav nav a` outranks `.jc-quote`, so the mobile menu was painting the
   quote button's text with the generic link colour. These raise the component
   selectors above the containers they sit inside. Audited rather than guessed:
   every interactive element that carries its own background is listed. */
.jc-nav nav a.jc-quote{background:var(--blue-hi);color:var(--black)}
.jc-nav nav a.jc-quote:hover{background:#6bb2d6;color:var(--black)}
@media(max-width:840px){
  .jc-nav nav a.jc-quote{background:var(--blue);color:#fff;text-align:center;
    justify-content:center;margin:6px 14px 8px;width:auto;border-bottom:0}
  .jc-nav nav a.jc-quote:hover{background:var(--blue-line);color:#fff}
  .jc-nav nav a.jc-quote.is-current{color:#fff}
}

/* buttons keep their own text colour wherever they are dropped */
.jc-s .jc-btn,.jc-s.dark .jc-btn,.jc-faq-cta .jc-btn,.jc-el-cta .jc-btn,
.jc-calc-cta .jc-btn,.jc-warn .jc-btn{color:#fff}
.jc-s .jc-btn.ghost,.jc-s.dark .jc-btn.ghost{color:var(--ink)}
.jc-s.dark .jc-btn.ghost{color:#fff;border-color:rgba(233,238,242,.32)}
.jc-strip .go,.jc-s.dark .jc-strip .go{color:#fff}

/* footer body text was 3.7:1 against the footer background */
.jc-footer{color:var(--onblack-2)}
.jc-footer .fn,.jc-footer .fl{color:#8fa0ad}
.jc-cp-preview{margin:12px 0 0;font-size:13px;color:#8a6d3b;background:#f6efe4;
  border-left:3px solid #b08a3e;padding:10px 14px}
.jc-cp-preview code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}

/* ---------- route pages ---------- */
.jc-routestats{display:grid;grid-template-columns:repeat(4,auto);gap:0 clamp(24px,4vw,52px);
  justify-content:start;margin-top:clamp(22px,3vw,30px);padding-top:clamp(18px,2.4vw,24px);
  border-top:1px solid rgba(233,238,242,.18)}
.jc-routestats .k{display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--onblack-3);font-weight:600;margin-bottom:5px}
.jc-routestats .v{display:block;font-size:19px;font-weight:600;letter-spacing:-.02em;color:#fff}
@media(max-width:700px){.jc-routestats{grid-template-columns:1fr 1fr;gap:16px clamp(20px,6vw,40px)}}

.jc-map{margin:0;background:#081420;border:1px solid #1b3346;padding:0;overflow:hidden}
.jc-map svg{display:block;width:100%;height:auto}
.jc-map-land{fill:#15293a;stroke:#24435c;stroke-width:1;stroke-linejoin:round}
.jc-map-arc{fill:none;stroke:#8fd2f2;stroke-width:3;stroke-linecap:round;
  stroke-dasharray:11 9;animation:jcfly 2.6s linear infinite}
.jc-map-arc.glow{stroke:#4ea8d8;stroke-width:5.5;opacity:.6;animation:none;stroke-dasharray:none}
@keyframes jcfly{to{stroke-dashoffset:-40}}
@media(prefers-reduced-motion:reduce){.jc-map-arc{animation:none;stroke-dasharray:none}}
.jc-map-pt circle{fill:#bfe6ff}
.jc-map-pt circle.halo{fill:#4ea8d8;opacity:.6}
.jc-map-pt text{font-family:inherit;font-size:21px;font-weight:700;fill:#fff;letter-spacing:.05em}
.jc-map-pt.dest circle{fill:#ffb27a}
.jc-map-pt.dest circle.halo{fill:#e07a3c;opacity:.55}
.jc-map-pt.dest text{fill:#e8c4a6}
.jc-map-note{margin:12px 0 0;font-size:14px;color:var(--ink-3);line-height:1.55}

.jc-altlist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--rule);border:1px solid var(--rule)}
.jc-altlist li{background:var(--paper);padding:16px 18px;font-size:15.5px;color:var(--ink)}
@media(max-width:800px){.jc-altlist{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.jc-altlist{grid-template-columns:1fr}}

.jc-s.dark .jc-incl-item h4 a{color:#fff;border-bottom:1px solid rgba(255,255,255,.28)}
.jc-s.dark .jc-incl-item h4 a:hover{border-bottom-color:var(--blue-hi);color:var(--blue-hi)}

/* ---------- footer: four columns, balanced ---------- */
.jc-bizpanel{grid-template-columns:1.25fr 1fr 1.1fr .9fr;gap:clamp(28px,4vw,56px);align-items:start}
.jc-bizpanel h4.sp{margin-top:clamp(24px,3vw,32px)}
.jc-froutes{columns:1}
@media(max-width:1000px){
  .jc-bizpanel{grid-template-columns:1fr 1fr;gap:32px clamp(28px,5vw,48px)}
}
@media(max-width:620px){
  .jc-bizpanel{grid-template-columns:1fr;gap:30px}
  .jc-froutes{columns:2;column-gap:20px}
}

.jc-routestats + .jc-hero-note{margin-top:clamp(22px,2.8vw,30px)}

/* the map was running near full-screen height at full container width */
.jc-map{max-width:760px;margin-inline:auto}
@media(max-width:820px){.jc-map{max-width:none}}

/* ---------- section rhythm ----------
   Consecutive light sections each carry full vertical padding, which reads as
   dead space rather than breathing room. A third tone between paper and black
   gives the page rhythm, and adjacent sections sharing a tone stop doubling
   their padding at the seam. */
.jc-s.tint{background:var(--paper-2)}

/* With the tints in place no two adjacent sections share a tone, so every
   section keeps its full padding and the space reads as intentional. The
   earlier collapse rules were fighting this and squeezing the tint sections
   against their own top edge. */
.jc-s + .jc-s{padding-top:var(--sy)}

/* a tinted section needs its own card treatment or the panels disappear */

.jc-s.tint .jc-altlist{background:var(--rule-2)}
.jc-s.tint .jc-altlist li{background:var(--paper)}
.jc-s.tint .jc-faq-cta{background:var(--paper);border-color:var(--rule-2)}
.jc-s.tint .jc-el-cta .jc-btn{background:var(--blue);color:#fff}

/* the alternates list sits inside another section now */
.jc-altlist{margin-top:14px}
/* route cards link out, so the heading needs to read as a link */
.jc-incl-item h4 a{color:var(--ink);border-bottom:1px solid var(--rule-2);
  transition:color .18s ease,border-color .18s ease}
.jc-incl-item h4 a:hover{color:var(--blue);border-bottom-color:var(--blue)}
.jc-s.tint .jc-incl-grid{background:var(--rule-2)}
.jc-s.tint .jc-incl-item{background:var(--paper)}

/* ---------- digital business card ---------- */
.jc-cardpage{background:var(--black);min-height:100vh;display:flex;align-items:center}
.jc-cardpage #jc-main{width:100%}
.jc-card-wrap{padding:clamp(24px,6vw,64px) var(--g);max-width:560px;margin:0 auto}
.jc-card{background:var(--paper);border:1px solid var(--rule-2);overflow:hidden}
.jc-card-top{background:var(--paper-2);padding:clamp(28px,6vw,44px);text-align:center;
  border-bottom:1px solid var(--rule-2)}
.jc-card-logo{width:min(240px,64%);height:auto;margin:0 auto;display:block}
.jc-card-body{padding:clamp(26px,5vw,38px)}
.jc-card-body h1{margin:0 0 6px;font-size:clamp(30px,7vw,40px);font-weight:600;
  letter-spacing:-.035em;color:var(--ink);line-height:1.05}
.jc-card-body .role{margin:0 0 3px;font-size:13px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--blue);font-weight:700}
.jc-card-body .org{margin:0 0 26px;font-size:15.5px;color:var(--ink-2)}

.jc-card-save{display:block;text-align:center;background:var(--blue);color:#fff;
  padding:17px 24px;font-size:14px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  transition:background .18s ease}
.jc-card-save:hover{background:var(--blue-line);color:#fff}

.jc-card-links{margin-top:10px;border-top:1px solid var(--rule)}
.jc-card-links a{display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  padding:15px 2px;border-bottom:1px solid var(--rule);transition:color .18s ease}
.jc-card-links a:hover{color:var(--blue)}
.jc-card-links .k{font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-3);font-weight:600;flex:none}
.jc-card-links .v{font-size:16px;font-weight:600;color:var(--ink);text-align:right;
  overflow-wrap:anywhere}
.jc-card-links a:hover .v{color:var(--blue)}

.jc-card-legal{margin:22px 0 0;font-size:11.5px;line-height:1.55;color:var(--ink-3)}


/* ---------- network map (empty leg page) ----------
   Dark panel on a light section: it reads as an instrument rather than an
   illustration, and the glow only works against a dark ground. */
.jc-netmap{max-width:none;background:#081420;border-color:#1b3346;padding:0;overflow:hidden}
.jc-netmap .jc-map-land{fill:#15293a;stroke:#24435c;stroke-width:1}

.jc-net-line .jc-net-arc,.jc-net-glow .jc-net-arc{fill:none;stroke-linecap:round}
.jc-net-line .w1{stroke:#8fd2f2;stroke-width:3;stroke-dasharray:11 9;
  animation:jcfly 2.6s linear infinite}
.jc-net-line .w2{stroke:#5f9ec2;stroke-width:1.5;opacity:.7;stroke-dasharray:5 8;
  animation:jcfly 4.4s linear infinite}
.jc-net-glow{opacity:.55}
.jc-net-glow .w1{stroke:#4ea8d8;stroke-width:5}
.jc-net-glow .w2{stroke:#3f7ea6;stroke-width:2.5;opacity:.6}
@media(prefers-reduced-motion:reduce){
  .jc-net-line .jc-net-arc{animation:none;stroke-dasharray:none}
}

.jc-net-pt circle{fill:#ffb27a}
.jc-net-pt circle.halo{fill:#e07a3c;opacity:.5}
.jc-net-pt text{font-family:inherit;font-size:15px;font-weight:700;fill:#b9cfdf;letter-spacing:.05em}
.jc-net-pt.hub circle{fill:#bfe6ff}
.jc-net-pt.hub circle.halo{fill:#4ea8d8;opacity:.6}
.jc-net-pt.hub text{font-size:21px;fill:#fff}
@media(max-width:620px){
  .jc-net-pt text{font-size:19px}
  .jc-net-pt.hub text{font-size:26px}
}
/* distance suffix on the reach map labels */
.jc-net-pt text .nm{font-size:12.5px;font-weight:600;fill:#7fa3ba;letter-spacing:.02em}
@media(max-width:620px){.jc-net-pt text .nm{font-size:16px}}
/* reach map: destinations beyond practical range */
.jc-net-line .w2.edge{stroke:#e8a15c;opacity:.85;stroke-dasharray:3 9}
.jc-net-glow .w2.edge{stroke:#c9762e}
.jc-net-pt.edge circle{fill:#ffd9a8}
.jc-net-pt.edge circle.halo{fill:#e8a15c;opacity:.55}
.jc-net-pt.edge text{fill:#f0c89a}
.jc-net-pt.edge text .nm{fill:#d19a62}
/* social row in the footer contact column */
.jc-fsocial{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.jc-fsocial a{display:inline-flex;align-items:center;padding:8px 15px;
  border:1px solid rgba(233,238,242,.2);border-radius:999px;font-size:13px;
  font-weight:600;color:var(--onblack-2);transition:all .18s ease}
.jc-fsocial a:hover{border-color:var(--blue-hi);color:#fff}

/* ---------- Instagram feed ----------
   Smash Balloon ships its own stylesheet; these override just enough to make
   the feed sit in the page's grid rhythm rather than look like a widget.
   Selectors are deliberately specific because the plugin uses inline styles. */
.jc-igfeed{margin:0}
.jc-igfeed #sb_instagram{padding:0!important;width:100%!important}
.jc-igfeed #sb_instagram #sbi_images{padding:0!important;gap:clamp(10px,1.4vw,16px)!important}
.jc-igfeed #sb_instagram .sbi_item{padding:0!important}
.jc-igfeed #sb_instagram .sbi_photo_wrap,
.jc-igfeed #sb_instagram .sbi_photo{border-radius:0!important}
.jc-igfeed #sb_instagram .sbi_header_text,
.jc-igfeed #sb_instagram #sbi_load{font-family:inherit!important}

/* the plugin's follow button, restyled as one of ours */
.jc-igfeed #sb_instagram .sbi_follow_btn a{
  background:var(--blue)!important;color:#fff!important;border-radius:0!important;
  font-family:inherit!important;font-size:13px!important;font-weight:700!important;
  letter-spacing:.09em!important;text-transform:uppercase!important;
  padding:14px 26px!important;box-shadow:none!important;transition:background .18s ease}
.jc-igfeed #sb_instagram .sbi_follow_btn a:hover{background:var(--blue-line)!important}
.jc-igfeed #sb_instagram #sbi_load .sbi_load_btn{
  background:transparent!important;color:var(--ink)!important;
  border:1px solid var(--rule-2)!important;border-radius:0!important;
  font-family:inherit!important;font-size:13px!important;font-weight:700!important;
  letter-spacing:.09em!important;text-transform:uppercase!important;padding:14px 26px!important}
.jc-igfeed #sb_instagram #sbi_load .sbi_load_btn:hover{border-color:var(--blue)!important;color:var(--blue)!important}

/* ---------- YAJ Flight Calculator: route row ---------- */
.jc-calc-grid .f{position:relative}
.jc-calc-route{grid-template-columns:1fr 1fr 1.2fr;border-bottom:0}
.jc-calc-route input{font-size:20px}
.jc-calc-route input::placeholder{color:var(--ink-3);font-weight:400}
.jc-calc-dist .lab{display:block;font-size:12px;color:#20272d;font-weight:700;letter-spacing:.11em;margin-bottom:7px;text-transform:uppercase}
.jc-calc-dist .v{display:block;font-size:15px;color:var(--ink-2);line-height:1.35}
.jc-calc-dist .v b{display:block;font-size:22px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.jc-calc-dist .v .none{color:var(--ink-3)}
@media(max-width:900px){
  .jc-calc-route{grid-template-columns:1fr 1fr}
  .jc-calc-route .f:first-child{grid-column:auto}
  .jc-calc-route .jc-calc-dist{grid-column:1 / -1}
}
@media(max-width:560px){
  .jc-calc-route{grid-template-columns:1fr}
  .jc-calc-route .jc-calc-dist{grid-column:auto}
}
.jc-tag{display:inline-block;margin-left:6px;font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}
.jc-tag.ok{color:var(--blue)}
.jc-tag.warn{color:#b08a3e}
.jc-calc-guide{margin-top:clamp(20px,2.4vw,28px);padding:16px 18px;background:#f6efe4;border:1px solid #d8c9a8;
  border-left:3px solid #b08a3e;font-size:14.5px;line-height:1.55;color:var(--ink-2);max-width:900px}
.jc-calc-guide b{color:var(--ink)}

/* ---------- busiest private jet airports ---------- */
.jc-s.dark .jc-map-note{color:var(--onblack-3)}
.jc-s.dark .jc-prose a{color:var(--blue-hi)}
.jc-topmap{max-width:none}
.jc-top-pt circle{fill:#ffb27a;opacity:.9}
.jc-top-pt circle.halo{fill:#e07a3c;opacity:.35}
.jc-top-pt.hub circle{fill:#bfe6ff;opacity:1}
.jc-top-pt.hub circle.halo{fill:#4ea8d8;opacity:.6}
.jc-top50 td a{color:var(--blue);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.jc-top50 tr.is-ptk td{background:#eaf2f7}
.jc-top50 tr.is-ptk td:first-child{box-shadow:inset 3px 0 0 var(--blue);padding-left:12px}
.jc-s.dark .jc-el-form-dark{margin-top:clamp(28px,3.5vw,40px)}

/* ---------- range explorer (/how-far-can-a-private-jet-fly) ----------
   The form borrows the trip-strip language; the map is the same dark
   instrument treatment as every other map on the site, with the rings
   drawn by range-explorer.js into #rx-rings. */
.rx-form{margin:0 0 28px}
.rx-fields{display:grid;grid-template-columns:1.1fr 1.4fr auto;gap:0;
  background:#fff;border:1.5px solid var(--ink);border-radius:2px}
/* the airport typeahead is absolutely positioned inside its cell, so the
   cell has to be the positioning context and nothing above it may clip */
.rx-fields .f{padding:14px 20px 16px;border-right:1px solid var(--paper-3);min-width:0;
  position:relative}
.rx-fields .f:focus-within{z-index:61}
.rx-fields .f:focus-within{background:var(--paper-2)}
.rx-fields .f label{display:block;font-size:11.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--ink-2);font-weight:600;margin-bottom:6px}
.rx-fields .f input,.rx-fields .f select{width:100%;border:0;background:none;padding:0;
  font:inherit;font-size:16px;font-weight:600;color:var(--ink);outline:none}
.rx-fields .f select{cursor:pointer}
.rx-fields .go{border:0;background:var(--blue);color:#fff;font:inherit;font-weight:600;
  font-size:14px;letter-spacing:.04em;padding:0 30px;cursor:pointer;transition:background .18s ease}
.rx-fields .go:hover{background:var(--blue-line)}
@media(max-width:820px){
  .rx-fields{grid-template-columns:1fr 1fr}
  .rx-fields .f:nth-child(2){border-right:0}
  .rx-fields .go{grid-column:1/-1;padding:15px}
}
@media(max-width:520px){
  .rx-fields{grid-template-columns:1fr}
  .rx-fields .f{border-right:0;border-bottom:1px solid var(--paper-3)}
}

.rx-map{margin:0 0 6px}
.rx-ring{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
/* the map auto-zooms, so land and rings keep a constant stroke on screen */
.rx-map .jc-map-land{vector-effect:non-scaling-stroke}
.rx-ring-lo{stroke:var(--blue-hi);stroke-width:2.4;opacity:.95}
.rx-ring-hi{stroke:var(--blue-hi);stroke-width:1.6;opacity:.6;stroke-dasharray:7 6}
.rx-ring-max{stroke:#9fd0e8;stroke-width:1.2;opacity:.3;stroke-dasharray:2 7}

.rx-legend{display:flex;flex-wrap:wrap;gap:8px 22px;margin:14px 2px 0;
  font-size:12.5px;color:var(--ink-2)}
.rx-legend .k{display:inline-flex;align-items:center;gap:9px}
.rx-legend .k::before{content:"";flex:none;width:22px;height:0;border-top:2.4px solid var(--blue-hi)}
.rx-legend .hi::before{border-top:1.6px dashed var(--blue-hi);opacity:.75}
.rx-legend .max::before{border-top:1.2px dotted #6f97ad}

.rx-note{margin:18px 2px 26px;font-size:15px;line-height:1.6;color:var(--ink-2)}
.rx-note b{color:var(--ink)}

.rx-out{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--paper-3);
  border:1px solid var(--paper-3)}
.rx-out:has(> .rx-group:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}
.rx-out:has(> .rx-group:first-child:last-child){grid-template-columns:1fr}
.rx-group{background:var(--paper);padding:24px 22px}
.rx-group h4{margin:0 0 6px;font-size:15px;letter-spacing:-.01em;display:flex;
  align-items:center;gap:10px;color:var(--ink)}
.rx-group h4::before{content:"";width:10px;height:10px;border-radius:50%;flex:none;background:var(--blue-hi)}
.rx-g1 h4::before{background:#c9a961}
.rx-g2 h4::before{background:var(--ink-3)}
.rx-g-mi{grid-column:1/-1}
.rx-g-mi h4::before{width:7px;height:7px;background:var(--blue-hi)}
.rx-g-mi .rx-list{columns:2 280px;column-gap:28px;max-height:none}
.rx-g-mi .rx-list li{break-inside:avoid}
.rx-count{font-size:12px;font-weight:600;color:var(--ink-3);letter-spacing:.06em}
.rx-gnote{margin:0 0 14px;font-size:12.5px;line-height:1.5;color:var(--ink-3)}
.rx-list{list-style:none;margin:0;padding:0;max-height:330px;overflow:auto}
.rx-list li{display:grid;grid-template-columns:46px 1fr auto;gap:10px;align-items:baseline;
  padding:9px 0;border-bottom:1px solid var(--paper-3);font-size:13.5px}
.rx-list li:last-child{border-bottom:0}
.rx-code{font-weight:700;color:var(--blue);letter-spacing:.03em}
.rx-name{color:var(--ink);line-height:1.35;overflow-wrap:anywhere}
.rx-region{display:block;font-size:11.5px;color:var(--ink-3)}
.rx-nm{font-weight:600;color:var(--ink-2);white-space:nowrap;text-align:right}
.rx-flag{display:block;font-size:10.5px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:#a8622f}
.rx-empty{margin:0;padding:26px 22px;background:var(--paper);color:var(--ink-3);font-size:14px}
@media(max-width:900px){.rx-out,.rx-out:has(> *){grid-template-columns:1fr}}
.rx-legend .rx-cap{flex-basis:100%;color:var(--ink-3);font-size:12px}
.rx-dot{fill:#4ea8d8;opacity:.9}
.rx-dot.v1{fill:#c9a961}
.rx-dot.v2{fill:#6f8697;opacity:.75}
.rx-legend .dot::before{width:10px;height:10px;border:0;border-radius:50%;background:#4ea8d8}
.rx-legend .dot.v1::before{background:#c9a961}

/* ---------- chart hero (/how-far-can-a-private-jet-fly) ----------
   Generated by jl2026_rx_hero(). Same projection as the maps, so the hero
   and the explorer below it read as one instrument. The scrim keeps the
   headline legible over the brightest part of the chart. */
.rx-hero{position:relative;isolation:isolate;overflow:hidden;background:#060f18;
  padding:clamp(48px,7vw,104px) 0 clamp(56px,8vw,120px)}
.rx-hero .jc-wrap{position:relative;z-index:2}
.rxh{position:absolute;inset:0;z-index:0}
.rxh svg{width:100%;height:100%;display:block}
.rx-hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(100deg,rgba(6,15,24,.97) 0%,rgba(6,15,24,.93) 30%,
    rgba(6,15,24,.62) 52%,rgba(6,15,24,.18) 78%,rgba(6,15,24,.10) 100%)}
@media(max-width:820px){
  .rx-hero::after{background:linear-gradient(180deg,rgba(6,15,24,.90) 0%,rgba(6,15,24,.80) 55%,rgba(6,15,24,.55) 100%)}
}
.rx-hero h1,.rx-hero .lede,.rx-hero .jc-crumbs,.rx-hero .jc-crumbs a{color:#fff}
.rx-hero .lede{color:rgba(255,255,255,.88)}
.rx-hero .lede b{color:#fff}

.rxh-grat path{fill:none;stroke:#2b5570;stroke-width:.6;opacity:.45}
.rxh-land{fill:#11212f;stroke:#2f6182;stroke-width:1.1;stroke-linejoin:round;opacity:.95}
.rxh-ring{fill:none;stroke:#4e9cc4;stroke-width:1;opacity:.42;stroke-dasharray:5 7}
.rxh-ringlbl{font-family:inherit;font-size:13px;font-weight:600;fill:#6fa8c6;
  letter-spacing:.08em;opacity:.8}
.rxh-arc{fill:none;stroke:#8fd2f2;stroke-width:2.4;stroke-linecap:round;
  stroke-dasharray:10 8;animation:jcfly 3s linear infinite}
.rxh-arc.glow{stroke:#4ea8d8;stroke-width:6;opacity:.45;animation:none;stroke-dasharray:none}
.rxh-arc.hidden{display:none}
.rxh-plane path{fill:#ffdcb0;stroke:#08131d;stroke-width:.7;stroke-linejoin:round}
.rxh-nm{font-family:inherit;font-size:14px;font-weight:700;fill:#dceffa;letter-spacing:.04em;
  paint-order:stroke fill;stroke:#08131d;stroke-width:3.5;stroke-linejoin:round}
.rxh-code{font-family:inherit;font-size:15px;font-weight:700;fill:#ffd9a8;letter-spacing:.09em;
  paint-order:stroke fill;stroke:#08131d;stroke-width:3.5;stroke-linejoin:round}
.rxh-hub circle{fill:#bfe6ff}
.rxh-hub circle.halo{fill:#4ea8d8;opacity:.55}
.rxh-hub text{font-family:inherit;font-size:20px;font-weight:700;fill:#fff;letter-spacing:.07em;
  paint-order:stroke fill;stroke:#08131d;stroke-width:4;stroke-linejoin:round}
@media(prefers-reduced-motion:reduce){.rxh-arc{animation:none;stroke-dasharray:none}}

/* ---------- range explorer: map controls, markers, tooltip ---------- */
.rx-map{max-width:none;position:relative}
.rx-map svg{touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none}
.rx-map svg.is-dragging{cursor:grabbing}
.rx-zoom{position:absolute;top:12px;right:12px;z-index:3;display:flex;gap:6px}
.rx-zoom button{min-width:34px;height:34px;padding:0 10px;border:1px solid #2a5771;
  background:rgba(8,20,32,.82);color:#cfe7f5;font:inherit;font-size:16px;font-weight:600;
  line-height:1;border-radius:2px;cursor:pointer;transition:background .15s ease,color .15s ease}
.rx-zoom button:last-child{font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.rx-zoom button:hover{background:rgba(30,72,98,.92);color:#fff}
.rx-zoom button[disabled]{opacity:.35;cursor:default}
.rx-dot{fill:#4ea8d8;opacity:.92;cursor:pointer;stroke:#06121c;stroke-width:1.1;
  vector-effect:non-scaling-stroke}
.rx-dot.v1{fill:#c9a961}
.rx-dot.v2{fill:#6f8697;opacity:.8}
.rx-dot:hover,.rx-dot:focus{stroke:#fff;stroke-width:1.8;outline:none}
.rx-hit{fill:transparent;cursor:pointer}
.rx-tip{position:absolute;z-index:4;max-width:250px;padding:10px 13px;
  background:rgba(6,16,26,.96);border:1px solid #2a5771;border-radius:2px;
  color:#e7f2f9;font-size:13px;line-height:1.45;pointer-events:none;
  box-shadow:0 10px 26px rgba(0,0,0,.45)}
.rx-tip b{color:#fff;letter-spacing:.04em}
.rx-tip span{display:block;color:#9dbdd0;font-size:12px}
.rx-tip span.nm{color:#7fa3ba;margin-top:3px}
.rx-legend .tap::before{display:none}
.rx-legend .tap{color:var(--ink-3)}
/* the empty state is a message, not a column in a grid */
.rx-out.is-empty{display:block;background:var(--paper);border-color:var(--paper-3)}

/* ---------- range explorer: route mode ---------- */
.rx-fields{grid-template-columns:1fr 1fr 1.2fr .6fr auto}
@media(max-width:1080px){
  .rx-fields{grid-template-columns:1fr 1fr}
  .rx-fields .f:nth-child(2n){border-right:0}
  .rx-fields .f:nth-child(-n+2){border-bottom:1px solid var(--paper-3)}
  .rx-fields .go{grid-column:1/-1;padding:15px}
}
@media(max-width:560px){
  .rx-fields{grid-template-columns:1fr}
  .rx-fields .f{border-right:0;border-bottom:1px solid var(--paper-3)}
}
.rx-fields .f label .opt{font-weight:500;letter-spacing:.04em;text-transform:none;color:var(--ink-3)}
.rx-hint{margin:12px 2px 0;font-size:13.5px;line-height:1.55;color:var(--ink-3)}

.rx-actions{display:flex;align-items:center;gap:14px;margin:-12px 2px 26px}
.rx-copy{border:1px solid var(--paper-3);background:none;padding:7px 14px;border-radius:2px;
  font:inherit;font-size:12.5px;font-weight:600;letter-spacing:.04em;color:var(--ink-2);
  cursor:pointer;transition:border-color .15s ease,color .15s ease}
.rx-copy:hover{border-color:var(--blue);color:var(--blue)}
.rx-copied{font-size:12.5px;font-weight:600;color:var(--blue)}

.rx-out.is-route{display:block;background:var(--paper);border-color:var(--paper-3)}
.rx-trip{padding:0}
.rx-trip-head{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--paper-3)}
.rx-trip-head > div{background:var(--paper);padding:20px 22px}
.rx-trip-head .k{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3);font-weight:600;margin-bottom:8px}
.rx-trip-head b{display:block;font-size:22px;letter-spacing:-.02em;color:var(--ink);line-height:1.15}
.rx-trip-head .s{display:block;margin-top:5px;font-size:12.5px;color:var(--ink-3);line-height:1.4}
@media(max-width:820px){.rx-trip-head{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.rx-trip-head{grid-template-columns:1fr}}

.rx-verdict{padding:18px 22px;font-size:15px;line-height:1.6;color:var(--ink-2);
  border-top:1px solid var(--paper-3);border-left:3px solid var(--blue-hi)}
.rx-verdict b{color:var(--ink)}
.rx-verdict.warn{border-left-color:#c9a961}
.rx-verdict.no{border-left-color:#a8622f}

.rx-stopbox{padding:20px 22px;border-top:1px solid var(--paper-3);background:var(--paper-2)}
.rx-stopbox h4{margin:0 0 8px;font-size:14px;letter-spacing:-.01em;color:var(--ink)}
.rx-stopbox p{margin:0;font-size:14px;line-height:1.6;color:var(--ink-2)}
.rx-runway{margin:0;padding:16px 22px;border-top:1px solid var(--paper-3);
  font-size:13.5px;line-height:1.6;color:var(--ink-2)}
.rx-fits{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--paper-3);
  border-top:1px solid var(--paper-3)}
.rx-fits:has(> .rx-group:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}
.rx-fits:has(> .rx-group:first-child:last-child){grid-template-columns:1fr}
@media(max-width:900px){.rx-fits,.rx-fits:has(> *){grid-template-columns:1fr}}
.rx-aclist li{grid-template-columns:1fr auto}

/* route line and the suggested stop */
.rx-track{fill:none;stroke:#8fd2f2;stroke-width:2.6;stroke-linecap:round;
  stroke-dasharray:11 9;animation:jcfly 2.6s linear infinite;vector-effect:non-scaling-stroke}
.rx-track.glow{stroke:#4ea8d8;stroke-width:6;opacity:.5;animation:none;stroke-dasharray:none}
@media(prefers-reduced-motion:reduce){.rx-track{animation:none;stroke-dasharray:none}}
.rx-stop circle{fill:#ffd9a8}
.rx-stop text{font-family:inherit;font-weight:700;fill:#ffd9a8;letter-spacing:.06em}
.rx-city circle{fill:#4d7a94;opacity:.85}
.rx-city text{font-family:inherit;fill:#7fa3ba;letter-spacing:.03em;opacity:.9}

/* the handoff block under the tool */
.rx-handoff{margin-top:40px;padding:clamp(24px,3vw,34px);background:var(--black);color:#fff}
.rx-handoff h3{margin:0 0 20px;font-size:clamp(20px,2.2vw,26px);letter-spacing:-.02em;color:#fff}
.rx-handoff-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-bottom:28px}
@media(max-width:760px){.rx-handoff-grid{grid-template-columns:1fr;gap:18px}}
.rx-handoff h4{margin:0 0 8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--blue-hi);font-weight:600}
.rx-handoff p{margin:0;font-size:14.5px;line-height:1.65;color:var(--onblack-2)}
/* the hint lines use the shared on-dark modifier; nothing extra needed here,
   but the form itself sits on the dark panel so it gets a little breathing room */
.rx-handoff .jc-tripform{margin-top:4px}

/* ---------- the headline answer above the map ---------- */
.rx-alert[hidden]{display:none}
.rx-alert{display:flex;align-items:flex-start;gap:14px;margin:0 0 20px;padding:16px 20px;
  border:1px solid var(--rule-2);border-left:4px solid var(--blue-hi);background:var(--paper-2);
  font-size:15px;line-height:1.55;color:var(--ink-2)}
.rx-alert b{color:var(--ink);font-weight:700}
.rx-alert-mark{flex:none;width:12px;height:12px;margin-top:5px;border-radius:50%;background:var(--blue-hi)}
.rx-alert-text{flex:1;min-width:0}
.rx-alert-link{flex:none;border:0;background:none;padding:0;font:inherit;font-size:13.5px;
  font-weight:600;color:var(--blue);cursor:pointer;text-decoration:underline;
  text-underline-offset:3px;white-space:nowrap;margin-top:1px}
.rx-alert-link:hover{color:var(--blue-line)}
.rx-alert.warn{border-left-color:#c9a961;background:#fbf7ec}
.rx-alert.warn .rx-alert-mark{background:#c9a961}
.rx-alert.no{border-left-color:#a8622f;background:#fbf1ea}
.rx-alert.no .rx-alert-mark{background:#a8622f}
@media(max-width:620px){
  .rx-alert{flex-wrap:wrap;gap:10px}
  .rx-alert-link{width:100%;text-align:left;white-space:normal}
}

/* =================================================================
   1.95.0 — Range explorer: wide stage, aircraft panel, compare tray
   Desktop: trip strip across the top, map stage left, aircraft
   browser in a sticky column on the right.
   Mobile: the map (and its verdict) stick to the top of the screen
   while the browser and results scroll underneath, so the map is
   never hidden behind a panel and there is no toggle to hunt for.
   ================================================================= */
/* body has overflow-x:hidden, which makes it a scroll container and stops
   position:sticky working against the viewport. clip does the same job
   without creating one; browsers without it simply lose the pinned map. */
@supports (overflow-x:clip){body{overflow-x:clip}}

.rx-wide{max-width:1560px}
/* globe preview: the explorer runs the full width of the screen on desktop;
   the aircraft panel keeps its width and the map takes the rest */
@media(min-width:1021px){
  .rx-wide.rx-full{max-width:none}
}

.rx-app{margin:0 0 34px}
/* The two columns live in their own grid. A sticky grid item is held by the
   grid CONTAINER, not its own row, so with the results inside the same grid
   the panel would slide down over them as you scrolled. */
.rx-cols{display:grid;grid-template-columns:minmax(0,1fr) 352px;gap:24px;align-items:start}
.rx-stage{min-width:0}
.rx-sticky{min-width:0}
.rx-stage .rx-note{margin:16px 2px 0}
.rx-app > .rx-out{margin-top:16px}

.rx-panel{position:sticky;top:20px;display:flex;flex-direction:column;min-width:0;
  max-height:calc(100vh - 40px);background:var(--paper-2);border:1px solid var(--paper-3)}
.rx-pan-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex:none;
  padding:14px 16px;background:var(--paper);border-bottom:1px solid var(--paper-3)}
.rx-pan-head h3{margin:0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3);font-weight:700}
.rx-pan-count{font-size:12px;font-weight:600;color:var(--ink-3);white-space:nowrap}
.rx-pan-search{flex:none;padding:12px 16px 0;background:var(--paper-2)}
.rx-acq{width:100%;border:1px solid var(--paper-3);background:var(--paper);border-radius:2px;
  padding:9px 12px;font:inherit;font-size:14px;color:var(--ink)}
.rx-acq::placeholder{color:var(--ink-3)}
.rx-acq:focus{outline:none;border-color:var(--blue-hi)}
.rx-chips{flex:none;display:flex;flex-wrap:wrap;gap:6px;padding:12px 16px;background:var(--paper-2)}
.rx-chip{border:1px solid var(--paper-3);background:var(--paper);color:var(--ink-2);font:inherit;
  font-size:12px;font-weight:600;padding:5px 11px;border-radius:999px;cursor:pointer;
  transition:background .15s ease,border-color .15s ease,color .15s ease}
.rx-chips.dim .rx-chip{opacity:.5}
.rx-chip .c{margin-left:5px;font-weight:600;color:var(--ink-3)}
.rx-chip:hover{border-color:var(--blue-hi);color:var(--blue)}
.rx-chip[aria-pressed="true"] .c{color:rgba(255,255,255,.62)}
.rx-chip.fits{border-color:#bfd9e7;background:#eef5f9;color:var(--blue)}
.rx-chip.fits[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:#fff}
.rx-chip[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:#fff}

.rx-collab{flex:none;display:grid;grid-template-columns:minmax(0,1fr) 46px;
  padding:0 0 0 16px;background:var(--paper-2);border-top:1px solid var(--paper-3);
  font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.rx-collab span{padding:7px 0 6px}
.rx-collab span+span{text-align:center;border-left:1px solid var(--paper-3)}

.rx-acbrowse{list-style:none;margin:0;padding:0;flex:1 1 auto;min-height:150px;overflow:auto;
  overflow-anchor:none;
  background:var(--paper);border-top:1px solid var(--paper-3)}
.rx-acbrowse li{display:grid;grid-template-columns:minmax(0,1fr) 46px;align-items:stretch;
  border-bottom:1px solid var(--paper-3)}
.rx-acbrowse li:last-child{border-bottom:0}
.rx-acrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;width:100%;
  border:0;background:none;font:inherit;text-align:left;color:var(--ink);
  padding:10px 12px 10px 16px;cursor:pointer}
.rx-acrow:hover{background:var(--paper-2)}
.rx-acrow .n{grid-column:1;grid-row:1;align-self:baseline;font-size:14px;font-weight:600;
  line-height:1.3;letter-spacing:-.01em;overflow-wrap:anywhere}
.rx-acrow .r{grid-column:2;grid-row:1;align-self:baseline;text-align:right;font-size:13.5px;
  font-weight:700;color:var(--blue);white-space:nowrap;line-height:1.3}
.rx-acrow .r i{font-style:normal;font-size:10px;font-weight:600;color:var(--ink-3);
  letter-spacing:.08em;text-transform:uppercase}
.rx-acrow .m{grid-column:1/-1;grid-row:2;font-size:11.5px;line-height:1.4;color:var(--ink-3)}
.rx-acbrowse li.on .rx-acrow{background:#e9f2f8;box-shadow:inset 3px 0 0 var(--blue-hi)}
.rx-acbrowse li.on .rx-acrow .n{color:var(--blue)}
.rx-accmp{display:flex;align-items:center;justify-content:center;border-left:1px solid var(--paper-3);
  cursor:pointer;background:var(--paper-2)}
.rx-accmp:hover{background:#e9f2f8}
.rx-accmp input{width:15px;height:15px;margin:0;accent-color:var(--blue);cursor:pointer}
.rx-accmp input:disabled{cursor:not-allowed;opacity:.35}
.rx-accmp .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);
  clip-path:inset(50%);white-space:nowrap}
.rx-acnone{margin:0;padding:22px 16px;font-size:13.5px;color:var(--ink-3);background:var(--paper)}

.rx-tray{flex:none;padding:12px 16px;background:var(--paper-2);border-top:1px solid var(--paper-3)}
.rx-tray-empty{margin:0;font-size:11.5px;line-height:1.55;color:var(--ink-3)}
.rx-tray-empty b{color:var(--ink-2);font-weight:700}
.rx-tray-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 9px}
.rx-tray-head span{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3)}
.rx-tray-clear{border:0;background:none;padding:0;font:inherit;font-size:12px;font-weight:600;
  color:var(--blue);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.rx-tray ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.rx-tray li{display:grid;grid-template-columns:12px minmax(0,1fr) auto auto;gap:9px;align-items:center}
.rx-swatch{width:12px;height:12px;border-radius:50%}
.rx-tray .t{font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.3;overflow-wrap:anywhere}
.rx-tray .v{font-size:12px;font-weight:700;color:var(--ink-2);white-space:nowrap}
.rx-tray .v.ok{color:#2f6f4f}
.rx-tray .v.warn{color:#8a6d22}
.rx-tray .v.no{color:#a8622f}
.rx-tray .x{border:0;background:none;padding:0 1px;font:inherit;font-size:17px;line-height:1;
  color:var(--ink-3);cursor:pointer}
.rx-tray .x:hover{color:var(--ink)}

.rx-pan-foot{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  padding:12px 16px;background:var(--paper);border-top:1px solid var(--paper-3)}
.rx-pan-foot .rx-copy{font-size:12px;padding:6px 12px}

/* The legend only carries the keys the current view actually uses. On a
   phone that is the difference between two lines and five. */
.rx-map .k.trk,.rx-map .k.stp,.rx-map .k.cmp{display:none}
.rx-map[data-mode="route"] .k.lo,.rx-map[data-mode="route"] .k.hi,
.rx-map[data-mode="route"] .k.max,.rx-map[data-mode="route"] .k.dot,
.rx-map[data-mode="cmp"] .k.lo,.rx-map[data-mode="cmp"] .k.hi,
.rx-map[data-mode="cmp"] .k.max,.rx-map[data-mode="cmp"] .k.dot{display:none}
.rx-map[data-mode="route"] .k.tap,.rx-map[data-mode="cmp"] .k.tap{display:none}
.rx-map[data-mode="route"] .k.trk{display:inline-flex}
.rx-map[data-mode="route"][data-stop="1"] .k.stp{display:inline-flex}
.rx-map[data-mode="cmp"] .k.cmp{display:inline-flex}
.rx-legend .trk::before{border-top:2.6px solid #8fd2f2}
.rx-legend .stp::before{width:10px;height:10px;border:0;border-radius:50%;background:#ffd9a8}
.rx-legend .cmp::before{display:none}
.rx-legend .cmp{color:var(--ink-3)}

/* compare rings on the map */
.rx-cring{fill:none;stroke-width:2.2;opacity:.9;stroke-linecap:round;stroke-linejoin:round;
  vector-effect:non-scaling-stroke;stroke-dasharray:9 6}
.rx-clbl{font-family:inherit;font-weight:700;letter-spacing:.04em;
  paint-order:stroke;stroke:#081420;stroke-width:3.5px;stroke-linejoin:round}

@media(max-width:1180px){
  .rx-cols{grid-template-columns:minmax(0,1fr) 312px;gap:18px}
  .rx-acbrowse li,.rx-collab{grid-template-columns:minmax(0,1fr) 42px}
}

/* ---- phone and small tablet: map pinned, everything scrolls under it ---- */
@media(max-width:1020px){
  /* The map pins for exactly as long as it is useful: while you pick an
     airport and browse aircraft. display:contents on .rx-stage hands the
     sticky element .rx-cols as its containing block, which holds the map and
     the aircraft panel but NOT the results — so the map lets go and scrolls
     away once you reach the lists, instead of hanging over the rest of the
     page while everything slides underneath it. */
  .rx-cols{display:block}
  .rx-stage{display:contents}
  .rx-sticky{position:sticky;top:0;z-index:12;background:var(--paper);
    padding-bottom:7px;box-shadow:0 14px 16px -14px rgba(8,17,26,.55)}
  .rx-alert{margin:0 0 7px;padding:11px 14px;font-size:13.5px;gap:10px}
  .rx-alert-mark{width:10px;height:10px;margin-top:4px}
  .rx-alert-link{font-size:12.5px}
  .rx-stage .rx-note{margin:16px 2px 0}
  .rx-panel{position:static;max-height:none;margin-top:18px}
  .rx-acbrowse{max-height:none;overflow:visible}
  .rx-map .rx-zoom{top:8px;right:8px}
  .rx-map{margin-inline:calc(-1 * var(--g))}
  /* The legend rides along with the pinned map, so it has to stay small —
     the long caption and the tap hint are repeated in the note below. */
  .rx-legend{gap:5px 16px;margin:9px 12px 11px;font-size:11.5px;line-height:1.3}
  /* the round keys set their own width; overriding it here made ovals */
  .rx-legend .k:not(.dot):not(.stp)::before{width:16px}
  .rx-legend .tap,.rx-legend .rx-cap{display:none}
}
@media(max-width:560px){
  .rx-pan-head,.rx-pan-search,.rx-chips,.rx-tray,.rx-pan-foot{padding-left:14px;padding-right:14px}
  .rx-acrow{padding-left:14px}
}

/* =================================================================
   1.96.0 — Range explorer basemap
   The explorer draws its own cartography: world coastline, country
   borders, US state lines and ranked city labels, all projected
   azimuthal-equidistant about the departure airport. Layers switch on
   at the scale where they stop being clutter (see drawMap).
   ================================================================= */
/* Land has to read clearly against water at every zoom, so the two sit far
   apart in value: a lifted slate for land, near-black for ocean. */
.rx-land{fill:#2a4d67;stroke:#44799d;stroke-width:.8;
  stroke-linejoin:round;vector-effect:non-scaling-stroke}
/* These carry non-scaling-stroke, so stroke-width is already in screen
   pixels — scaling it by the view as well drew a country border eight
   pixels wide. A national border sits a hair above a state line and no
   more; both are orientation, not information. */
/* The land source treats lakes as land, so the water is painted back on top
   of it. Without this Michigan has no shape and the Great Lakes are dry. */
.rx-lake{fill:#0a1a26;stroke:#2f5a76;stroke-width:.6;stroke-opacity:.85;
  stroke-linejoin:round;vector-effect:non-scaling-stroke}
.rx-border{fill:none;stroke:#4a7d9b;stroke-width:.7;stroke-opacity:.7;
  stroke-linejoin:round;vector-effect:non-scaling-stroke}
.rx-state{fill:none;stroke:#35607e;stroke-width:.5;stroke-opacity:.45;
  stroke-linejoin:round;vector-effect:non-scaling-stroke}

.rx-city circle{fill:#5f8aa4;opacity:.9}
.rx-city text{font-family:inherit;fill:#93b4c8;letter-spacing:.02em;
  paint-order:stroke;stroke:#0c1c28;stroke-width:2.5px;stroke-linejoin:round}
.rx-city text.t1{fill:#d3e6f2;font-weight:600;letter-spacing:.04em}
.rx-city text.t2{fill:#b2cddd;font-weight:600}
.rx-city text.t3{fill:#92b2c6}
.rx-city text.t4{fill:#7c9cb0;opacity:.9}

/* rings are circles now, so they need no path geometry */
.rx-ring{fill:none}
.rx-cring{fill:none}

/* the geography fades in behind the answer rather than snapping */
.rx-map #rx-rings .rx-land,.rx-map #rx-rings .rx-border,
.rx-map #rx-rings .rx-state,.rx-map #rx-rings .rx-city{
  opacity:0;transition:opacity .45s ease}
.rx-map.has-base #rx-rings .rx-land,.rx-map.has-base #rx-rings .rx-border,
.rx-map.has-base #rx-rings .rx-state,.rx-map.has-base #rx-rings .rx-city{opacity:1}
@media (prefers-reduced-motion:reduce){
  .rx-map #rx-rings .rx-land,.rx-map #rx-rings .rx-border,
  .rx-map #rx-rings .rx-state,.rx-map #rx-rings .rx-city{transition:none}
}

/* The aircraft the map is drawing, named on the map itself and acting as the
   way into the browser. On a phone the panel is below the fold, so without
   this there is nothing to say the rings belong to one aircraft of 56. */
.rx-acbadge{position:absolute;top:12px;left:12px;z-index:3;display:flex;flex-direction:column;
  gap:2px;align-items:flex-start;text-align:left;padding:8px 13px 9px;cursor:pointer;
  border:1px solid #2a5771;border-radius:2px;background:rgba(10,26,38,.88);
  font:inherit;transition:background .15s ease,border-color .15s ease}
.rx-acbadge:hover{background:rgba(24,60,82,.94);border-color:#4e9cc4}
.rx-acbadge .n{font-size:13.5px;font-weight:700;letter-spacing:-.01em;color:#dceffa;line-height:1.2}
.rx-acbadge .c{font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:#7fb6d4;white-space:nowrap}
.rx-acbadge .n{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rx-acbadge:hover .c{color:#bfe6ff}
/* Below the breakpoint the trip bar sitting directly above the map already
   names the aircraft, so the badge is a second copy fighting the zoom
   buttons for the same corner. */
@media(max-width:1020px){ .rx-acbadge{display:none} }

/* Land whose outline had to break — Antarctica and anything else wrapping
   round the far side of the world — is drawn as coastline only. Filling a
   broken ring would have the browser close each fragment with a straight
   chord, which paints wedges across the ocean. */
.rx-land-fill{fill:#2a4d67;stroke:none}
.rx-land-edge{fill:none;stroke:#31607e;stroke-width:.8;stroke-opacity:.8;
  stroke-linejoin:round;vector-effect:non-scaling-stroke}

/* Country and sea names: quiet, wide-tracked, and clearly a different voice
   from the city labels so the eye can separate the two at a glance. */
.rx-areas text{font-family:inherit;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;paint-order:stroke;stroke-width:2.5px;stroke-linejoin:round}
.rx-nation{fill:#7d96a6;fill-opacity:.85;stroke:#0b1c28}
.rx-nation.a2{fill:#6b8496;fill-opacity:.7;letter-spacing:.14em}
.rx-sea{fill:#4f7d99;fill-opacity:.85;stroke:#050e17;font-style:normal}
.rx-sea.a2{fill:#48718b;fill-opacity:.75;letter-spacing:.14em}

/* Flying time beside every aircraft — the number people actually compare
   once two aircraft both make the trip. */
.rx-aclist .rx-nm{text-align:right;line-height:1.25}
.rx-aclist .rx-sub{display:block;font-size:10.5px;font-weight:600;color:var(--ink-3);
  letter-spacing:.06em}
.rx-tray .t .s{display:block;font-size:11px;font-weight:600;color:var(--ink-3);
  letter-spacing:.03em;margin-top:1px}
.rx-trip-head .s{overflow-wrap:anywhere}

/* Long result groups: a nested scrollbar is fine with a mouse and wrong on a
   touch screen, where it either steals the page scroll or leaves a row cut in
   half at the fold. Below the breakpoint the list runs at full length and is
   clipped to twelve rows with a button. */
.rx-more{display:none}
@media(max-width:1020px){
  .rx-list{max-height:none;overflow:visible}
  .rx-group:not(.is-open) .rx-list > li:nth-child(n+13){display:none}
  .rx-more{display:block;width:100%;margin:0;padding:13px 22px;border:0;border-top:1px solid var(--paper-3);
    background:var(--paper-2);font:inherit;font-size:13px;font-weight:700;letter-spacing:.02em;
    color:var(--blue);text-align:left;cursor:pointer}
  .rx-more span{font-weight:600;color:var(--ink-3)}
  .rx-more:hover{background:#e9f2f8}
  .rx-group{padding-bottom:0}
  .rx-group:has(.rx-more){padding-bottom:0}
}

/* =================================================================
   1.97.0 — The explorer becomes a tool on mobile, not a document
   Measured on a 402x874 phone, the old layout put the map 1.7 screens
   down and ran 5.5 screens end to end. Below 1020px the tool is now a
   compact trip bar, a map, and a switcher for the lower half, so
   nothing has to be scrolled past to reach anything else.
   ================================================================= */
.rx-tripbar{display:none}
.rx-tabs{display:none}

@media(max-width:1020px){
  /* order is set here rather than in the markup so the desktop layout,
     which reads left to right, keeps its own source order */
  .rx-app{display:flex;flex-direction:column;gap:0}
  .rx-cols,.rx-stage{display:contents}
  .rx-sticky{order:1}
  .rx-tabs{order:2}
  .rx-panel{order:3}
  .rx-stage .rx-note{order:4}
  .rx-app > .rx-out{order:5}

  /* ---- the trip ----
     Departure and destination keep real boxes, because they are the question
     the tool exists to ask and a summary line pretending they were filled in
     invites nobody. Aircraft and passengers refine the answer, so they fold
     behind one line that says what they currently are. */
  .rx-form{margin:0 0 18px}
  .rx-tripbar{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;
    padding:12px 20px;border:0;border-bottom:1px solid var(--paper-3);background:var(--paper-2);
    font:inherit;text-align:left;cursor:pointer;min-height:56px}
  .rx-tripbar:hover{background:#eaf2f7}
  .rx-tripbar .r{min-width:0}
  .rx-tripbar b{display:block;font-size:14px;font-weight:700;letter-spacing:-.01em;color:var(--ink);
    line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .rx-tripbar .r > span{display:block;margin-top:1px;font-size:12px;color:var(--ink-3);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .rx-tripbar .e{flex:none;font-size:11px;font-weight:700;letter-spacing:.12em;
    text-transform:uppercase;color:var(--blue)}
  .rx-form:not(.is-open) .rx-fields > .f:nth-child(4),
  .rx-form:not(.is-open) .rx-fields > .f:nth-child(5),
  .rx-form:not(.is-open) .rx-hint{display:none}

  /* ---- the switcher ---- */
  /* The small control stays put and the big content scrolls, rather than the
     other way round. */
  .rx-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:10px 0 0;
    background:var(--paper-3);border:1px solid var(--paper-3);
    position:sticky;top:0;z-index:11;box-shadow:0 10px 14px -12px rgba(8,17,26,.45)}
  .rx-tabs button{border:0;background:var(--paper);font:inherit;font-size:13px;font-weight:600;
    letter-spacing:.01em;color:var(--ink-2);padding:12px 6px;cursor:pointer;min-height:44px}
  .rx-tabs button[aria-selected="true"]{background:var(--blue);color:#fff}

  /* ---- what each view shows ---- */
  .rx-app[data-tab="map"] .rx-panel,
  .rx-app[data-tab="map"] > .rx-out,
  .rx-app[data-tab="aircraft"] > .rx-out,
  .rx-app[data-tab="aircraft"] .rx-stage .rx-note,
  .rx-app[data-tab="results"] .rx-panel{display:none}
  .rx-panel{margin-top:14px}
  .rx-app > .rx-out{margin-top:14px}
  .rx-stage .rx-note{margin:14px 2px 0}

  /* Nothing pins the map any more. With a switcher there is no reason to
     scroll past it to reach anything, and a half-screen map floating over
     content that slides underneath reads as broken however useful it is. */
  .rx-sticky{position:static;box-shadow:none;padding-bottom:0}

  /* The full key belongs in the Map view. Everywhere else the two marker
     colours are all that is being read, and that fits on one line. */
  .rx-app:not([data-tab="map"]) .rx-legend .k:not(.dot):not(.stp):not(.trk){display:none}
  .rx-app:not([data-tab="map"]) .rx-legend{margin:8px 12px 10px}
}

/* The plotted aircraft leads every comparison and cannot be removed from it,
   so its row says so and its tick is fixed. */
.rx-accmp.is-plotted{background:#e3eef6}
.rx-tray li.is-plotted .t{font-weight:700}

/* ---------- /private-jet-cost (1.99.5) ---------- */
.jc-cost-kind{display:block;margin-top:3px;font-size:12.5px;font-weight:500;letter-spacing:0;
  text-transform:none;color:var(--ink-3)}
.jc-cost-trips td:first-child a{color:var(--ink);font-weight:600;text-decoration:none;
  border-bottom:1px solid var(--rule-2)}
.jc-cost-trips td:first-child a:hover{color:var(--blue);border-bottom-color:var(--blue)}
.jc-cost-rates td:first-child,.jc-cost-trips td:first-child{font-weight:600;color:var(--ink)}
.jc-price-col p a{color:var(--blue-hi);border-bottom:1px solid var(--blue-line);text-decoration:none}
.jc-s.dark .jc-price-note a,.jc-price-note a{color:inherit;border-bottom:1px solid currentColor;text-decoration:none}
@media(max-width:700px){
  .jc-cost-kind{display:inline;margin:0 0 0 8px}
}

/* ---------- trip card (since 1.100.0) ----------
   Shows the trip worked out before anything is asked for. Reuses the send
   chooser's overlay and panel, a little wider, and scrolls on short phones. */
.jc-trip{align-items:center;overflow-y:auto}
.jc-trip-panel{max-width:540px;max-height:calc(100vh - 32px);overflow-y:auto;padding:30px 32px 24px}
.jc-trip-kicker{margin:0 0 6px;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--blue)}
.jc-trip-route{font-size:26px !important;margin:0 0 4px !important;letter-spacing:-.03em}
.jc-trip-meta{margin:0 0 18px;font-size:14px;color:var(--ink-2)}
.jc-trip-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:0 0 10px;
  background:var(--rule);border:1px solid var(--rule)}
.jc-trip-stats div{background:var(--paper-2);padding:11px 14px}
.jc-trip-stats dt{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin:0 0 2px}
.jc-trip-stats dd{margin:0;font-size:16px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.jc-trip-note{margin:0 0 18px;font-size:13px;line-height:1.55;color:var(--ink-2)}
.jc-trip-note a{color:var(--blue);text-decoration:underline;text-underline-offset:2px}
.jc-trip-act .jc-send-btn{text-align:center;font-size:15.5px;padding:14px 16px}
.jc-trip-small{margin:7px 0 0;font-size:12.5px;color:var(--ink-3);text-align:center}
.jc-tlead{margin:18px 0 0;padding:16px 0 0;border-top:1px solid var(--rule)}
.jc-tlead-h{margin:0 0 10px;font-size:14px;font-weight:600;color:var(--ink)}
.jc-tlead-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 8px}
.jc-tlead input{width:100%;min-width:0;font:inherit;font-size:15px;padding:11px 12px;border:1px solid var(--rule-2);
  background:#fff;color:var(--ink);border-radius:0}
.jc-tlead input:focus{outline:none;border-color:var(--blue)}
.jc-tlead .jc-send-btn{text-align:center}
.jc-tlead .jc-send-btn[disabled]{opacity:.6;cursor:default}
.jc-hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;opacity:0}
.jc-tlead-msg{margin:8px 0 0;font-size:13px;color:var(--ink-2);min-height:0}
.jc-tlead-msg:empty{display:none}
.jc-tlead-msg.err{color:#a33a2a}
.jc-tlead-done{margin:0;padding:12px 14px;background:var(--paper-2);border:1px solid var(--rule);font-size:14.5px;color:var(--ink)}
.jc-trip-foot{margin:16px 0 0;font-size:12.5px;color:var(--ink-3);line-height:1.5}
.jc-linkbtn{border:0;background:none;padding:0;font:inherit;color:var(--blue);text-decoration:underline;
  text-underline-offset:2px;cursor:pointer}
@media(max-width:520px){
  .jc-trip{padding:12px}
  .jc-trip-panel{padding:26px 20px 20px;max-height:calc(100vh - 24px)}
  .jc-trip-route{font-size:22px !important}
  .jc-tlead-row{grid-template-columns:1fr}
}

/* firm vs deal choice (since 1.100.1): the prices are the options */
.jc-trip-pick{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 10px}
.jc-trip-pick button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;
  padding:11px 13px 12px;border:1px solid var(--rule-2);background:#fff;cursor:pointer;font:inherit;color:var(--ink);
  transition:border-color .15s ease,box-shadow .15s ease}
.jc-trip-pick button:hover{border-color:var(--blue)}
.jc-trip-pick button.on{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue);background:#f4f8fa}
.jc-trip-pick .k{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--ink-3)}
.jc-trip-pick button.on .k{color:var(--blue)}
.jc-trip-pick .v{font-size:16.5px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink);line-height:1.3}
.jc-trip-pick .s{font-size:12px;color:var(--ink-3);line-height:1.35}
.jc-trip-notes .jc-trip-note{margin:0 0 16px}
.jc-trip.desk .jc-tlead{margin-top:4px;padding-top:0;border-top:0}
.jc-trip-alt{margin:12px 0 0;padding-top:12px;border-top:1px solid var(--rule);font-size:13.5px;color:var(--ink-2)}
.jc-trip-alt a{font-weight:700;color:var(--ink);white-space:nowrap}
@media(max-width:520px){
  .jc-trip-stats dd{font-size:14.5px}
  .jc-trip-stats div{padding:9px 10px}
  .jc-trip-pick .v{font-size:15px}
}

/* aircraft size floor (since 1.100.3) */
.jc-trip-size{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:6px 12px;margin:0 0 12px}
.jc-trip-size span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--ink-3)}
.jc-trip-size select{width:100%;min-width:0;font:inherit;font-size:15px;font-weight:600;color:var(--ink);padding:9px 34px 9px 12px;
  border:1px solid var(--rule-2);border-radius:0;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231c4e66' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 12px center;
  -webkit-appearance:none;appearance:none;cursor:pointer}
.jc-trip-size select:focus{outline:none;border-color:var(--blue)}
.jc-trip-size em{grid-column:1 / -1;font-style:normal;font-size:12.5px;color:var(--ink-3);line-height:1.45}
@media(max-width:520px){ .jc-trip-size{grid-template-columns:1fr} }
.jc-trip-stats.two{grid-template-columns:repeat(2,1fr)}
.jc-trip-size em a,.jc-trip-bags a{color:var(--blue);text-decoration:underline;text-underline-offset:2px}
.jc-trip-bags{margin:0 0 12px;font-size:12.5px;color:var(--ink-3);line-height:1.45}

/* ---------- globe (preview 1.101.x, public since 1.102.0) ----------
   The MapLibre canvas sits exactly over the SVG chart, which keeps its box
   (and keeps rendering) underneath as the fallback. */
.rx-map .rx-globe,.rx-map .rx-globe.maplibregl-map{position:absolute;z-index:1;overflow:hidden;
  background:radial-gradient(ellipse at 50% 45%,#0b1c2a 0%,#050d15 55%,#02070c 100%)}
.rx-globe[hidden]{display:none}
.rx-map:not(.is-globe):not(.is-globe-loading) .rx-globe{display:none}
.rx-map.is-globe-loading #rx-svg{visibility:hidden}
.rx-map.is-globe-pending #rx-svg{visibility:hidden}
.rx-map.is-globe #rx-svg{visibility:hidden}
.rx-globe .maplibregl-canvas{outline:none}
.rx-view{display:flex;border:1px solid #2a5771;background:rgba(8,20,32,.86);margin-right:4px}
.rx-zoom .rx-view button{min-width:0;height:32px;padding:0 11px;border:0;border-radius:0;background:none;color:#8fb3c9;
  font-family:inherit;font-size:11px;font-weight:600;line-height:1;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.rx-zoom .rx-view button[aria-pressed="true"]{background:#1c4e66;color:#fff}
.rx-zoom .rx-view button:hover{color:#fff;background:rgba(30,72,98,.6)}
.rx-zoom .rx-view button[aria-pressed="true"]:hover{background:#1c4e66}
.rx-globe-hint{position:absolute;z-index:3;transform:translate(-50%,-100%);
  max-width:calc(100% - 24px);padding:7px 12px;background:rgba(8,20,32,.9);border:1px solid #2a5771;
  color:#bcd3e2;font-size:12px;line-height:1.35;text-align:center}
.rx-globe-hint[hidden]{display:none}
/* the credit: OpenFreeMap, OpenMapTiles and OpenStreetMap, per their terms */
.rx-map .rx-globe .maplibregl-ctrl.maplibregl-ctrl-attrib,
.rx-map .rx-globe .maplibregl-ctrl-attrib .maplibregl-ctrl-attrib-inner{background:rgba(5,13,21,.82);color:#8fb3c9;font-size:10.5px}
.rx-map .rx-globe .maplibregl-ctrl-attrib-inner{background:none}
.rx-map .rx-globe .maplibregl-ctrl-attrib a{color:#b9d3e4}
.rx-globe .maplibregl-ctrl-attrib-button{filter:invert(1) hue-rotate(180deg);opacity:.75}
.rx-globe .maplibregl-ctrl-attrib.maplibregl-compact{background:rgba(5,13,21,.78)}
.rx-globe .maplibregl-cooperative-gesture-screen{background:rgba(2,7,12,.62);color:#e9eef2;font-family:inherit;font-size:14px;font-weight:600}
@media(max-width:620px){ .rx-zoom .rx-view button{height:30px;padding:0 9px;font-size:10.5px} }
/* phone on its side: the map is short, so the controls take less of it */
@media(max-height:500px) and (orientation:landscape){
  .rx-map .rx-zoom{top:8px;right:8px;gap:5px}
  .rx-zoom button{min-width:30px;height:30px;padding:0 8px}
  .rx-zoom button:last-child{font-size:11px}
  .rx-zoom .rx-view button{height:28px;padding:0 9px;font-size:10.5px}
}

/* globe loading overlay: a jet on a great-circle arc over a turning globe */
.rx-globe-load{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:6px;pointer-events:none;
  background:radial-gradient(ellipse at 50% 45%,#0b1c2a 0%,#050d15 60%,#02070c 100%);
  transition:opacity .6s ease}
.rx-globe-load.done{opacity:0}
.rx-globe-load svg{width:min(400px,72%);height:auto;overflow:visible}
.rx-globe-load .arc{stroke:#2a6a8a;stroke-width:1.2;stroke-dasharray:3 5;opacity:.7}
.rx-globe-load .trail{stroke:#8fd2f2;stroke-width:2;stroke-linecap:round;stroke-dasharray:300;
  stroke-dashoffset:300;animation:rxtrail 2.4s cubic-bezier(.45,.05,.55,.95) infinite;
  filter:drop-shadow(0 0 4px rgba(78,168,216,.8))}
.rx-globe-load .pt{fill:#bfe6ff}
.rx-globe-load .jet path{fill:#e9f6ff;filter:drop-shadow(0 0 6px rgba(143,210,242,.9))}
.rx-globe-load .m{transform-origin:160px 112px;animation:rxturn 3.6s linear infinite}
.rx-globe-load .m2{animation-delay:-1.8s}
.rx-globe-load p{margin:0;font-size:11.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:#8fb3c9}
@keyframes rxtrail{0%{stroke-dashoffset:300;opacity:1}80%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes rxturn{0%{transform:scaleX(1)}50%{transform:scaleX(-1)}100%{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){
  .rx-globe-load .trail{animation:none;stroke-dashoffset:0}
  .rx-globe-load .m{animation:none}
}

/* =================================================================
   /private-jet-vs-commercial — door-to-door calculator (since yaj 1.0.6)
   Phases: driving is sand, airport time is brass, flying is the blue.
   ================================================================= */
.pvc-hero h1{max-width:22ch}
.pvc-hero .lede{margin-bottom:28px}
.pvc-hero-cta{padding-bottom:clamp(56px,7vw,92px)}

.pvc{--pvc-drive:#cfc6b2;--pvc-ground:#b08a3e;--pvc-air:var(--blue)}

.pvc-scn{display:flex;flex-wrap:wrap;gap:8px}
.pvc-scn button{font-family:inherit;font-size:14px;font-weight:500;color:var(--ink-2);background:var(--paper);
  border:1px solid var(--rule-2);padding:10px 16px;cursor:pointer;transition:all .18s ease}
.pvc-scn button:hover{border-color:var(--blue);color:var(--blue)}
.pvc-scn button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}
.pvc-desc{margin:14px 0 18px;font-size:14.5px;line-height:1.55;color:var(--ink-2);max-width:78ch}

.pvc-opts{display:flex;flex-wrap:wrap;gap:8px}
.pvc-opts .jc-check{border-width:1px;border-color:var(--rule-2)}
.pvc-opts .jc-check:has(input:checked){border-color:var(--blue);font-weight:600}

.pvc-adv{margin-top:16px}
.pvc-adv summary{display:inline-block;cursor:pointer;font-size:14px;font-weight:600;color:var(--blue);
  list-style:none;padding:6px 0;border-bottom:1px solid var(--rule-2)}
.pvc-adv summary::-webkit-details-marker{display:none}
.pvc-adv summary::after{content:" +";font-weight:700}
.pvc-adv[open] summary::after{content:" \2212"}
.pvc-sliders{display:grid;grid-template-columns:1fr 1fr;gap:16px 40px;margin-top:18px;padding:22px 24px;
  background:var(--paper-2);border:1px solid var(--rule)}
.pvc-sl{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:baseline}
.pvc-sl label{font-size:14px;color:var(--ink-2)}
.pvc-sl output{font-size:14px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.pvc-sl input{grid-column:1/-1;width:100%;margin:4px 0 0;accent-color:var(--blue)}
.pvc-sl.is-off{display:none}

.pvc-result{margin-top:clamp(26px,3vw,36px);padding-top:clamp(22px,2.6vw,30px);border-top:2px solid var(--ink)}
.pvc-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pvc-tot span{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);
  font-weight:600;margin-bottom:6px}
.pvc-tot b{display:block;font-size:clamp(32px,4.2vw,48px);line-height:1;font-weight:600;letter-spacing:-.035em;
  color:var(--ink);font-variant-numeric:tabular-nums}
.pvc-tot.is-save b{color:var(--blue)}
.pvc-tot em{display:block;font-style:normal;margin-top:8px;font-size:13.5px;color:var(--ink-2)}

.pvc-bars{margin-top:clamp(24px,3vw,32px)}
.pvc-row{display:grid;grid-template-columns:70px 1fr;gap:14px;align-items:center;margin-bottom:10px}
.pvc-row .lab{font-size:13.5px;font-weight:600;color:var(--ink)}
.pvc-bar{display:flex;height:30px;background:var(--paper-2);overflow:hidden}
.pvc-bar i{display:block;height:100%;flex:none;border-right:2px solid var(--paper);transition:width .25s ease}
.pvc-bar i:last-child{border-right:0}
.pvc-bar i.drive,.pvc-legend i.drive{background:var(--pvc-drive)}
.pvc-bar i.ground,.pvc-legend i.ground{background:var(--pvc-ground)}
.pvc-bar i.air,.pvc-legend i.air{background:var(--pvc-air)}
.pvc-axis{margin-bottom:0}
.pvc-ticks{position:relative;height:22px;border-top:1px solid var(--rule-2)}
.pvc-ticks span{position:absolute;top:5px;transform:translateX(-50%);font-size:11.5px;color:var(--ink-3);
  font-variant-numeric:tabular-nums}
.pvc-ticks span:first-child{transform:none}
.pvc-ticks span:last-child{transform:translateX(-100%)}
.pvc-legend{display:flex;flex-wrap:wrap;gap:8px 22px;margin:12px 0 0 84px;font-size:13px;color:var(--ink-2)}
.pvc-legend i{display:inline-block;width:12px;height:12px;margin-right:7px;vertical-align:-1px}

.pvc-steps{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px);margin-top:clamp(34px,4vw,48px)}
.pvc-col h3{margin:0;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);font-weight:700;
  padding-bottom:12px;border-bottom:2px solid var(--ink)}
.pvc-col ol{list-style:none;margin:0;padding:0}
.pvc-col li{position:relative;display:grid;grid-template-columns:1fr auto;gap:2px 14px;
  padding:12px 0 12px 16px;border-bottom:1px solid var(--rule)}
.pvc-col li::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:4px}
.pvc-col li.ph-drive::before{background:var(--pvc-drive)}
.pvc-col li.ph-ground::before{background:var(--pvc-ground)}
.pvc-col li.ph-air::before{background:var(--pvc-air)}
.pvc-col li.is-off{display:none}
.pvc-col .l{font-size:15.5px;font-weight:600;letter-spacing:-.01em;color:var(--ink);line-height:1.35}
.pvc-col .m{font-size:15.5px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.pvc-col li p{grid-column:1/-1;margin:0;font-size:13.5px;line-height:1.5;color:var(--ink-2);max-width:56ch}
.pvc-col li.pvc-sum{border-bottom:0;border-top:2px solid var(--ink);margin-top:-1px;padding-top:14px}
.pvc-col li.pvc-sum .l,.pvc-col li.pvc-sum .m{font-size:18px}
.pvc-note{max-width:86ch;margin:clamp(22px,2.6vw,30px) 0 0}
.pvc-note b{color:var(--ink)}

.pvc-fc td:first-child{font-weight:600;color:var(--ink)}
.pvc-fc td{vertical-align:top}

@media(max-width:760px){
  .pvc-sliders{grid-template-columns:1fr;padding:18px}
  .pvc-totals{grid-template-columns:1fr 1fr;gap:18px 14px}
  .pvc-tot.is-save{grid-column:1/-1;padding-top:16px;border-top:1px solid var(--rule)}
  .pvc-row{grid-template-columns:56px 1fr;gap:10px}
  .pvc-legend{margin-left:0}
  .pvc-ticks span.o{display:none}
  .pvc-steps{grid-template-columns:1fr}
  /* first-class table: label above the value, so long values wrap */
  .pvc-fc td{display:block;padding:4px 0 8px}
  .pvc-fc td::before{display:block;margin-bottom:1px}
}

/* in-text links (since yaj 1.0.6): links inside answers, grid cards and
   the sources box inherited body text colour with no underline, so they
   could not be seen. They now read as links, light and dark. */
.jc-faq-a a,.jc-why-pt p a,.jc-incl-item p a,.jc-disc a,.jc-prose a{color:var(--blue);
  border-bottom:1px solid var(--rule-2);transition:border-color .18s ease,color .18s ease}
.jc-faq-a a:hover,.jc-why-pt p a:hover,.jc-incl-item p a:hover,.jc-disc a:hover,.jc-prose a:hover{border-bottom-color:var(--blue)}
.jc-s.dark .jc-faq-a a,.jc-faq-dark .jc-faq-a a,.jc-s.dark .jc-why-pt p a,.jc-s.dark .jc-incl-item p a,.jc-s.dark .jc-prose a{
  color:var(--blue-hi);border-bottom-color:var(--blue-line)}
.jc-s.dark .jc-faq-a a:hover,.jc-faq-dark .jc-faq-a a:hover,.jc-s.dark .jc-why-pt p a:hover,.jc-s.dark .jc-incl-item p a:hover,.jc-s.dark .jc-prose a:hover{
  border-bottom-color:var(--blue-hi)}
