/* Aeroinis Jet — "Quiet Luxury" page-owned stylesheet.
   Every rule is scoped under .jetp; this page carries its own chrome and does
   not load the site shell, so nothing here can leak into the rest of the
   site and nothing global can shout into this room. */
.jetp {
  --night: #0B0F1E;
  --night-soft: #131A30;
  --ivory: #F6F3EE;
  --ivory-deep: #EDE8DF;
  --champagne: #C8A96A;          /* brand gold — the one the whole site wears */
  --champagne-dim: #A98B60;
  --t-dark: #E9E6DF;
  --t-dark-mut: rgba(233, 230, 223, .55);
  --t-light: #14181F;
  --t-light-mut: rgba(20, 24, 31, .55);
  --hair-dark: rgba(200, 169, 106, .25);
  --hair-light: rgba(20, 24, 31, .12);
  --serif: "Newsreader", Georgia, serif;
  --sans: "Inter", system-ui, sans-serif;
  --ease-lux: cubic-bezier(.16, 1, .3, 1);
  margin: 0;
  background: var(--night);
  color: var(--t-dark);
  font: 400 1.0625rem/1.7 var(--sans);
  -webkit-font-smoothing: antialiased;
}
.jetp *, .jetp *::before, .jetp *::after { box-sizing: border-box; }
.jetp :focus-visible { outline: 1px solid var(--champagne); outline-offset: 3px; }
.jetp ::selection { background: var(--champagne); color: var(--night); }

.jetp .jp-wrap { max-width: 1280px; margin-inline: auto; padding-inline: clamp(20px, 4vw, 48px); }
.jetp .jp-label { font: 700 .75rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--champagne); }
.jetp .jp-label--mut { color: var(--t-dark-mut); }
.jetp em { font-style: italic; color: var(--champagne); }

/* ── nav ── */
.jetp .jp-nav { position: fixed; inset: 0 0 auto; z-index: 60; height: 88px; display: flex; align-items: center; transition: background .4s, backdrop-filter .4s; }
.jetp .jp-nav.is-solid { background: rgba(11, 15, 30, .82); backdrop-filter: blur(14px); border-bottom: 1px solid var(--hair-dark); }
.jetp .jp-nav .jp-wrap { width: 100%; display: flex; align-items: center; gap: 34px; }
.jetp .jp-mark { display: flex; align-items: center; gap: 12px; font: 700 .8rem/1 var(--sans); letter-spacing: .3em; color: var(--t-dark); text-decoration: none; }
.jetp .jp-mark img { width: 26px; height: 26px; }
.jetp .jp-nav nav { display: flex; gap: 26px; margin-inline: auto; }
.jetp .jp-nav nav a { position: relative; font: 600 .75rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--t-dark-mut); text-decoration: none; padding: 6px 0; }
.jetp .jp-nav nav a::after { content: ""; position: absolute; left: 0; bottom: 0; height: 1px; width: 0; background: var(--champagne); transition: width 250ms var(--ease-lux); }
.jetp .jp-nav nav a:hover { color: var(--t-dark); }
.jetp .jp-nav nav a:hover::after { width: 100%; }
.jetp .jp-ghost { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 22px; border: 1px solid var(--champagne); border-radius: 2px; background: transparent; color: var(--champagne); font: 700 .75rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; text-decoration: none; transition: background 250ms var(--ease-lux), color 250ms; cursor: pointer; }
.jetp .jp-ghost:hover { background: var(--champagne); color: var(--night); }

/* ── hero ── */
/* One line, one sentence, one way in. With a single call to action the old
   bottom-left column read as a paragraph that had lost its neighbours, so the
   hero is centred: the eye lands on the headline, drops to the button, and
   there is nothing else to weigh. */
.jetp .jp-hero { position: relative; min-height: 100vh; display: flex; align-items: center; justify-content: center; overflow: hidden; isolation: isolate; text-align: center; }
.jetp .jp-hero__media { position: absolute; inset: 0; z-index: -2; background: var(--night-soft) center 38% / cover no-repeat; }
.jetp .jp-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11, 15, 30, .25) 0%, rgba(11, 15, 30, .05) 38%, var(--night) 100%); }
.jetp .jp-grain { position: absolute; inset: 0; z-index: -1; opacity: .04; mix-blend-mode: soft-light; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E"); }
.jetp .jp-hero__inner { padding-block: 132px; max-width: 820px; margin-inline: auto; }
.jetp .jp-hero h1 { margin: 18px 0 20px; font: 340 clamp(3.2rem, 8vw, 6.2rem)/1.05 var(--serif); letter-spacing: -.03em; color: var(--t-dark); }
.jetp .jp-hero h1 .jp-line { display: block; overflow: hidden; }
.jetp .jp-hero h1 .jp-line > span { display: block; transform: translateY(110%); }
.jetp.is-ready .jp-hero h1 .jp-line > span { animation: jpReveal 700ms var(--ease-lux) forwards; }
.jetp.is-ready .jp-hero h1 .jp-line:nth-child(2) > span { animation-delay: 120ms; }
@keyframes jpReveal { to { transform: translateY(0); } }
.jetp .jp-hero p { max-width: 52ch; margin-inline: auto; color: var(--t-dark-mut); }
.jetp .jp-hero .jp-label { display: block; }
.jetp .jp-hero__cta { display: flex; flex-wrap: wrap; gap: 22px; align-items: center; justify-content: center; margin-top: 40px; }
/* alone in the middle, the ghost button carries the whole hero — give it the
   room and the weight to look deliberate rather than left over */
.jetp .jp-hero__cta .jp-ghost { padding: 17px 42px; letter-spacing: .2em; }
.jetp .jp-textlink { position: relative; font: 600 .8rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--t-dark); text-decoration: none; padding-bottom: 6px; }
.jetp .jp-textlink::after { content: ""; position: absolute; left: 0; bottom: 0; height: 1px; width: 0; background: var(--champagne); transition: width 250ms var(--ease-lux); }
.jetp .jp-textlink:hover::after { width: 100%; }
.jetp .jp-scroll { position: absolute; right: clamp(20px, 4vw, 48px); bottom: 40px; display: flex; flex-direction: column; align-items: center; gap: 12px; color: var(--t-dark-mut); font: 700 .62rem/1 var(--sans); letter-spacing: .3em; writing-mode: vertical-rl; }
.jetp .jp-scroll i { width: 1px; height: 56px; background: var(--hair-dark); position: relative; overflow: hidden; }
.jetp .jp-scroll i::after { content: ""; position: absolute; inset: 0; background: var(--champagne); transform: translateY(-100%); animation: jpScroll 2.4s var(--ease-lux) infinite; }
@keyframes jpScroll { 60% { transform: translateY(100%); } 100% { transform: translateY(100%); } }

/* ── search panel (Faz 2 organı buraya bağlanır) ── */
.jetp .jp-search { position: relative; z-index: 5; margin-top: -74px; }
.jetp .jp-search__panel { background: var(--night-soft); border: 1px solid var(--hair-dark); border-radius: 2px; padding: clamp(22px, 3vw, 34px); box-shadow: 0 30px 80px -30px rgba(4, 7, 16, .5); }
.jetp .jp-search__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; gap: 22px; align-items: end; }
.jetp .jp-search label { display: grid; gap: 9px; font: 700 .68rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--t-dark-mut); }
.jetp .jp-search input { width: 100%; background: transparent; border: 0; border-bottom: 1px solid var(--hair-dark); border-radius: 0; padding: 10px 2px; color: var(--t-dark); font: 400 1rem/1.3 var(--sans); transition: border-color 200ms, border-width 200ms; }
.jetp .jp-search input::placeholder { color: rgba(233, 230, 223, .3); }
.jetp .jp-search input:focus { outline: none; border-bottom: 2px solid var(--champagne); }
.jetp .jp-solid { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 30px; background: var(--champagne); color: var(--night); border: 0; border-radius: 2px; font: 700 .75rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; cursor: pointer; transition: background 250ms; }
.jetp .jp-solid:hover { background: var(--champagne-dim); }
.jetp .jp-search__note { margin: 14px 2px 0; font-size: .74rem; color: var(--t-dark-mut); }

/* ── trust strip ── */
.jetp .jp-trust { border-block: 1px solid var(--hair-dark); }
.jetp .jp-trust .jp-wrap { display: flex; flex-wrap: wrap; gap: 18px 64px; padding-block: 30px; justify-content: space-between; }
.jetp .jp-trust b { display: block; font: 400 2rem/1 var(--serif); color: var(--t-dark); font-variant-numeric: tabular-nums; }
.jetp .jp-trust span { font: 700 .68rem/1.6 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--t-dark-mut); }

/* ── light sections ── */
.jetp .jp-light { background: var(--ivory); color: var(--t-light); }
.jetp .jp-light .jp-label--mut { color: var(--t-light-mut); }
.jetp section { padding-block: clamp(72px, 11vw, 156px); }
.jetp .jp-manifesto p { margin: 0; max-width: 30ch; font: 300 clamp(1.7rem, 3vw, 2.3rem)/1.4 var(--serif); letter-spacing: -.01em; color: var(--t-light); }

/* ── ambient bands ──
   Two places on this page earn motion: the manifesto (the line we want read
   slowly) and the quote desk (the moment of decision). The video is decor —
   it is muted, loops, carries no information, and the text sits on a scrim
   heavy enough to keep contrast if the file never loads at all. */
.jetp .jp-amb { position: relative; isolation: isolate; overflow: hidden; }
.jetp .jp-amb__media { position: absolute; inset: 0; z-index: -2; background: var(--night-soft) center / cover no-repeat; }
.jetp .jp-amb__media video { width: 100%; height: 100%; object-fit: cover; }
.jetp .jp-amb::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  /* light hand: enough to hold the serif, not enough to hide the flight */
  background: linear-gradient(180deg, rgba(11,15,30,.46) 0%, rgba(11,15,30,.3) 52%, rgba(11,15,30,.66) 100%);
}
.jetp .jp-amb .jp-wrap { text-shadow: 0 1px 16px rgba(4,7,16,.75); }
/* the manifesto band flips to the dark palette while it wears the video */
.jetp .jp-manifesto.jp-amb { background: var(--night); }
.jetp .jp-manifesto.jp-amb p { color: var(--t-dark); }
.jetp .jp-manifesto.jp-amb .jp-label--mut { color: var(--t-dark-mut); }
@media (prefers-reduced-motion: reduce) { .jetp .jp-amb__media video { display: none; } }

/* routes — editorial list */
.jetp .jp-routes h2, .jetp .jp-h2 { margin: 14px 0 40px; font: 400 clamp(2rem, 4vw, 3.2rem)/1.1 var(--serif); letter-spacing: -.025em; }
.jetp .jp-route-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--hair-light); }
.jetp .jp-route { position: relative; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; gap: 18px; align-items: baseline; padding: 22px 10px; border-bottom: 1px solid var(--hair-light); text-decoration: none; color: inherit; transition: background 250ms var(--ease-lux); }
.jetp .jp-route::before { content: ""; position: absolute; top: -1px; left: 0; height: 1px; width: 0; background: var(--champagne); transition: width 250ms var(--ease-lux); }
.jetp .jp-route:hover { background: var(--ivory-deep); }
.jetp .jp-route:hover::before { width: 100%; }
.jetp .jp-route b { font: 400 clamp(1.3rem, 2.4vw, 1.9rem)/1 var(--serif); letter-spacing: .02em; }
.jetp .jp-route span { color: var(--t-light-mut); font-size: .92rem; }
.jetp .jp-route i { font: 700 .72rem/1 var(--sans); font-style: normal; letter-spacing: .18em; text-transform: uppercase; color: var(--champagne-dim); }

/* segments */
.jetp .jp-segs { display: grid; grid-template-columns: repeat(3, 1fr); }
.jetp .jp-seg { padding: 10px 34px; border-inline-start: 1px solid var(--hair-dark); }
.jetp .jp-seg:first-child { border-inline-start: 0; padding-inline-start: 0; }
.jetp .jp-seg svg { width: 34px; height: 34px; stroke: var(--champagne); stroke-width: 1.5; fill: none; opacity: .55; transition: opacity 250ms; }
.jetp .jp-seg h3 { margin: 16px 0 10px; font: 400 1.375rem/1.2 var(--serif); color: var(--t-dark-mut); transition: color 250ms; }
.jetp .jp-seg p { margin: 0 0 16px; font-size: .92rem; color: var(--t-dark-mut); }
.jetp .jp-seg:hover svg { opacity: 1; }
.jetp .jp-seg:hover h3 { color: var(--t-dark); }
.jetp .jp-seg .jp-textlink { color: var(--champagne); }

/* cinematic band */
.jetp .jp-band { position: relative; min-height: 62vh; display: flex; align-items: flex-end; overflow: hidden; padding: 0; }
.jetp .jp-band__media { position: absolute; inset: -10% 0; background: var(--night-soft) center/cover no-repeat; will-change: transform; }
.jetp .jp-band__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, rgba(11, 15, 30, .8)); }
.jetp .jp-band figure { position: relative; margin: 0; padding: 56px clamp(20px, 4vw, 48px); max-width: 640px; }
.jetp .jp-band blockquote { margin: 0 0 14px; font: italic 300 clamp(1.3rem, 2.4vw, 1.8rem)/1.45 var(--serif); }

/* steps */
.jetp .jp-steps__line { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; margin-top: 64px; }
.jetp .jp-steps__line::before { content: ""; position: absolute; top: 5px; left: 2%; right: 2%; height: 1px; background: var(--hair-light); }
.jetp .jp-step { position: relative; opacity: 0; transform: translateY(14px); transition: opacity 600ms var(--ease-lux), transform 600ms var(--ease-lux); }
.jetp .jp-step.is-in { opacity: 1; transform: none; }
.jetp .jp-step::before { content: ""; display: block; width: 11px; height: 11px; margin-bottom: 20px; border-radius: 50%; background: var(--champagne); }
.jetp .jp-step b { display: block; font: 700 .72rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--t-light); margin-bottom: 8px; }
.jetp .jp-step span { font-size: .88rem; color: var(--t-light-mut); }

/* form */
.jetp .jp-form { max-width: 720px; margin-inline: auto; background: var(--night-soft); border: 1px solid var(--hair-dark); border-radius: 2px; padding: clamp(28px, 4vw, 48px); box-shadow: 0 30px 80px -30px rgba(4, 7, 16, .5); }
.jetp .jp-form h2 { margin: 8px 0 26px; }
.jetp .jp-form form { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.jetp .jp-form label { display: grid; gap: 9px; font: 700 .68rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--t-dark-mut); }
.jetp .jp-form input, .jetp .jp-form textarea { background: transparent; border: 0; border-bottom: 1px solid var(--hair-dark); border-radius: 0; padding: 10px 2px; color: var(--t-dark); font: 400 1rem/1.4 var(--sans); }
.jetp .jp-form input:focus, .jetp .jp-form textarea:focus { outline: none; border-bottom: 2px solid var(--champagne); }
.jetp .jp-form .jp-full { grid-column: 1 / -1; }
.jetp .jp-form .jp-solid { grid-column: 1 / -1; justify-self: start; }
.jetp .jp-form .jp-note { grid-column: 1 / -1; margin: 0; font-size: .74rem; color: var(--t-dark-mut); }

/* footer */
.jetp .jp-footer { border-top: 1px solid var(--hair-dark); padding-block: 64px 40px; }
.jetp .jp-footer .jp-wrap { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; }
.jetp .jp-footer h4 { margin: 0 0 16px; font: 700 .68rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--t-dark-mut); }
.jetp .jp-footer ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.jetp .jp-footer a { color: var(--t-dark); text-decoration: none; font-size: .9rem; }
.jetp .jp-footer a:hover { color: var(--champagne); }
.jetp .jp-footer__bottom { margin-top: 54px; padding-top: 22px; border-top: 1px solid var(--hair-dark); display: flex; flex-wrap: wrap; gap: 20px; justify-content: space-between; font: 600 .68rem/1.6 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--t-dark-mut); }

/* concierge */
.jetp .jp-concierge { position: fixed; right: 22px; bottom: 22px; z-index: 70; display: inline-flex; align-items: center; gap: 0; height: 54px; padding: 0 15px; border: 1px solid var(--champagne); border-radius: 27px; background: rgba(11, 15, 30, .85); color: var(--champagne); text-decoration: none; backdrop-filter: blur(8px); transition: gap 250ms var(--ease-lux), color 250ms; }
.jetp .jp-concierge svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.jetp .jp-concierge b { max-width: 0; overflow: hidden; white-space: nowrap; font: 700 .72rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; transition: max-width 350ms var(--ease-lux); }
.jetp .jp-concierge:hover { gap: 10px; color: #2BB015; }
.jetp .jp-concierge:hover b { max-width: 110px; }

/* responsive */
@media (max-width: 1024px) {
  .jetp .jp-nav nav { display: none; }
  .jetp .jp-search__grid { grid-template-columns: 1fr 1fr; }
  .jetp .jp-segs { grid-template-columns: 1fr; }
  .jetp .jp-seg { border-inline-start: 0; border-top: 1px solid var(--hair-dark); padding: 26px 0; }
  .jetp .jp-seg:first-child { border-top: 0; }
  .jetp .jp-footer .jp-wrap { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .jetp .jp-search__grid { grid-template-columns: 1fr; }
  .jetp .jp-form form { grid-template-columns: 1fr; }
  .jetp .jp-steps__line { grid-template-columns: 1fr; gap: 26px; }
  .jetp .jp-steps__line::before { inset: 2% auto 2% 5px; width: 1px; height: auto; }
  .jetp .jp-route { grid-template-columns: 1fr; gap: 6px; }
  .jetp .jp-trust .jp-wrap { display: grid; grid-template-columns: 1fr 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .jetp .jp-hero h1 .jp-line > span { transform: none; animation: none !important; }
  .jetp .jp-step { opacity: 1; transform: none; transition: none; }
  .jetp .jp-scroll i::after, .jetp .jp-band__media { animation: none; transform: none !important; }
}

/* empty legs — the dark editorial board */
.jetp .jp-legs { border-top: 1px solid var(--hair-dark); }
.jetp .jp-leg-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--hair-dark); }
.jetp .jp-leg { position: relative; display: grid; grid-template-columns: auto minmax(0, 1.3fr) minmax(0, 1fr) auto auto; gap: 20px; align-items: baseline; padding: 20px 10px; border-bottom: 1px solid var(--hair-dark); text-decoration: none; color: inherit; transition: background 250ms var(--ease-lux); }
.jetp .jp-leg::before { content: ""; position: absolute; top: -1px; left: 0; height: 1px; width: 0; background: var(--champagne); transition: width 250ms var(--ease-lux); }
.jetp .jp-leg:hover { background: var(--night-soft); }
.jetp .jp-leg:hover::before { width: 100%; }
.jetp .jp-leg time { font: 700 .68rem/1.4 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--t-dark-mut); white-space: nowrap; }
.jetp .jp-leg b { font: 400 clamp(1.15rem, 2vw, 1.6rem)/1.1 var(--serif); letter-spacing: .02em; color: var(--t-dark); }
.jetp .jp-leg span { color: var(--t-dark-mut); font-size: .88rem; }
.jetp .jp-leg .jp-save { font: 700 .68rem/1 var(--sans); letter-spacing: .14em; color: var(--champagne); border: 1px solid var(--hair-dark); border-radius: 999px; padding: 7px 12px; white-space: nowrap; }
.jetp .jp-leg i { font: 700 .72rem/1 var(--sans); font-style: normal; letter-spacing: .18em; text-transform: uppercase; color: var(--champagne); }
.jetp .jp-legs__empty { padding: 34px 10px; border-bottom: 1px solid var(--hair-dark); }
.jetp .jp-legs__empty p { margin: 0 0 16px; max-width: 52ch; color: var(--t-dark-mut); }
.jetp .jp-legs__note { margin: 18px 10px 0; font-size: .78rem; color: var(--t-dark-mut); }
@media (max-width: 640px) { .jetp .jp-leg { grid-template-columns: 1fr auto; } }

/* Field kit + Aeroinis Atlas surfaces — copied verbatim from the design
   system so this standalone page styles the shared airport/date panels
   without importing the whole site chrome. Class-scoped; safe here. */
.ai-field-panel{position:absolute;z-index:60;left:0;right:0;min-width:280px;background:#fff;border:1px solid rgba(11,13,15,.14);border-radius:14px;box-shadow:0 22px 48px rgba(10,20,30,.2);padding:8px;max-height:340px;overflow:auto}
.ai-field-panel[data-direction="down"]{top:calc(100% + 8px)}
.ai-field-panel[data-direction="up"]{bottom:calc(100% + 8px)}
.ai-field-panel__head{margin:4px 8px 6px;font-size:.66rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#806536}
.ai-field-panel__empty{margin:10px;font-size:.85rem;color:#6e6a60}
.ai-airport-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:0;background:transparent;padding:10px;border-radius:10px;cursor:pointer;text-align:left;font:inherit}
.ai-airport-row:hover,.ai-airport-row:focus{background:#f2ede2;outline:none}
.ai-airport-row__main{display:grid;gap:2px}
.ai-airport-row__main b{font-size:.92rem;color:#0B0D0F}
.ai-airport-row__main small{font-size:.74rem;color:#6e6a60}
.ai-airport-row__code{flex:none;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.7rem;font-weight:700;color:#806536;background:rgba(200,169,106,.14);border:1px solid rgba(200,169,106,.35);border-radius:7px;padding:4px 8px}
.ai-cal-chips{display:flex;gap:6px;flex-wrap:wrap;padding:4px 4px 10px}
.ai-cal-chips button{border:1px solid rgba(11,13,15,.16);background:#fff;border-radius:999px;padding:6px 12px;font:inherit;font-size:.74rem;font-weight:700;cursor:pointer;color:#0B0D0F}
.ai-cal-chips button:hover{background:#C8A96A;border-color:#C8A96A}
.ai-cal-head{display:flex;align-items:center;justify-content:space-between;padding:2px 6px 8px}
.ai-cal-head strong{font-size:.9rem}
.ai-cal-head button{border:1px solid rgba(11,13,15,.16);background:#fff;border-radius:8px;width:30px;height:30px;font-size:1rem;cursor:pointer}
.ai-cal-head button:disabled{opacity:.3;cursor:default}
.ai-cal-days,.ai-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:0 4px 6px}
.ai-cal-days i{font-style:normal;font-size:.62rem;font-weight:700;letter-spacing:.06em;color:#8f8a80;text-align:center;padding:4px 0}
.ai-cal-grid button,.ai-cal-grid span{height:34px;border:0;background:transparent;border-radius:9px;font:inherit;font-size:.84rem;cursor:pointer}
.ai-cal-grid button:hover{background:#f2ede2}
.ai-cal-grid button.is-today{border:1px solid #C8A96A;font-weight:700}
.ai-cal-grid button:disabled{color:#c9c4b8;cursor:default;background:transparent}
.ai-stepper{display:inline-flex;align-items:center;gap:0;border:1px solid rgba(11,13,15,.16);border-radius:10px;overflow:hidden}
.ai-stepper input{border:0!important;width:52px;text-align:center;font:inherit;padding:10px 0!important;background:transparent!important}
.ai-stepper button{border:0;background:#f2ede2;width:38px;align-self:stretch;font-size:1.1rem;font-weight:700;cursor:pointer;color:#0B0D0F}
.ai-stepper button:hover{background:#C8A96A}
.ai-field-panel{z-index:130;color:#0B0D0F}
.ai-cal-grid button{color:#0B0D0F}
.ai-cal-head strong{color:#0B0D0F}
.ai-cal-chips button{color:#0B0D0F}
.ai-airport-row--city { background: rgba(190,155,74,.07); }
.ai-airport-row--city b::before { content: '◎'; margin-right: 7px; color: var(--gold, #BE9B4A); font-size: .85em; }
.ai-airport-row--city .ai-airport-row__tag { font-family: var(--mono, ui-monospace, monospace); letter-spacing: .06em; }
.ai-airport-row--city .ai-airport-row__code { font-weight: 700; }
.ai-cal-flex { display: flex; gap: 5px; flex-wrap: wrap; padding: 0 4px 6px; }
.ai-cal-flex button:hover { border-color: #C8A96A; }
.ai-cal-flex button.is-on { background: #0B0D0F; border-color: #0B0D0F; color: #F5F4F0; }
.ai-cal-flexhint { margin: 0 0 8px; padding: 0 6px; font-size: .68rem; color: var(--ink-soft, #5B5B57); }
.ai-cal-grid button.is-in-window { background: rgba(200,169,106,.24); border-radius: 0; }
.ai-cal-grid button.is-edge { background: #0B0D0F; color: #F5F4F0; border-radius: 8px; }
.ai-cal-grid button.is-anchor { background: #C8A96A; color: #0B0D0F; border-radius: 8px; font-weight: 800; }
.ai-field-panel--calendar { right: auto; width: 384px; max-width: calc(100vw - 28px); max-height: none; padding: 16px 16px 12px; }
.ai-cal-chips { gap: 8px; padding: 0 0 14px; margin: 0 0 12px; border-bottom: 1px solid #EDE8DB; }
.ai-cal-chips button { padding: 8px 15px; font-size: .78rem; border-color: #DED9CC; transition: background .15s, border-color .15s; }
.ai-cal-flex { gap: 6px; padding: 0 0 4px; }
.ai-cal-flex button { border: 1px solid transparent; background: #F2EFE7; border-radius: 999px; padding: 7px 12px; font: inherit; font-size: .72rem; font-weight: 700; color: #3E4144; cursor: pointer; transition: background .15s; }
.ai-cal-flex button:hover { background: #E9E4D6; }
.ai-cal-flex button.is-on { background: #0B0D0F; color: #F5F4F0; }
.ai-cal-flexhint { margin: 6px 2px 10px; font-size: .72rem; color: #8B8E85; font-style: italic; }
.ai-cal-head { padding: 4px 2px 10px; }
.ai-cal-head strong { font-family: "Newsreader", Georgia, serif; font-weight: 500; font-size: 1.08rem; letter-spacing: .01em; }
.ai-cal-head button { width: 34px; height: 34px; border-radius: 50%; border-color: #DED9CC; transition: background .15s; }
.ai-cal-head button:hover:not(:disabled) { background: #F2EDE2; }
.ai-cal-days i { font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; }
.ai-cal-grid { gap: 3px 2px; }
.ai-cal-grid button, .ai-cal-grid span { height: 40px; border-radius: 50%; font-size: .86rem; transition: background .12s; }
.ai-cal-grid button:hover:not(:disabled) { background: #F2EDE2; }
.ai-cal-grid button.is-today { border: 1px solid #C8A96A; }
.ai-cal-grid button.is-in-window { background: rgba(200, 169, 106, .18); border-radius: 0; }
.ai-cal-grid button.is-edge { background: #0B0D0F; color: #F5F4F0; border-radius: 50%; }
.ai-cal-grid button.is-anchor { background: #C8A96A; color: #0B0D0F; border-radius: 50%; font-weight: 800; }
.apx-seeall:hover { background: #F7F3E9; color: #10151C; }
.apx-head { display: flex; align-items: center; gap: 14px; padding: 14px 16px; background: #10151C; color: #F5F4F0; }
.apx-head p { margin: 0; font-size: .86rem; }
.apx-x { margin-left: auto; width: 34px; height: 34px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #F5F4F0; font-size: 1.2rem; cursor: pointer; }
.apx-x:hover { background: #C8A96A; color: #10151C; }
.apx-body { display: grid; grid-template-columns: 1fr 1.15fr; gap: 0; min-height: 0; flex: 1; }
.apx-pane { display: flex; flex-direction: column; min-height: 0; padding: 14px 14px 10px; }
.apx-pane + .apx-pane { border-left: 1px solid #EDE8DB; }
.apx-pane h4 { margin: 0 0 10px; font: 700 .72rem/1 Satoshi, sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #806536; }
.apx-cwrap { display: flex; gap: 6px; min-height: 0; flex: 1; }
.apx-rail { display: flex; flex-direction: column; overflow: auto; flex: none; }
.apx-rail button { border: 0; background: transparent; padding: 1px 5px; font-size: .62rem; font-weight: 700; color: #8B8E85; cursor: pointer; }
.apx-rail button:hover { color: #10151C; }
.apx-clist, .apx-alist { overflow: auto; min-height: 0; flex: 1; scroll-behavior: auto; }
.apx-letter { margin: 8px 0 2px; padding: 6px 10px; background: #F5F2EA; border-radius: 8px; font: 700 .72rem/1 Satoshi, sans-serif; color: #8B8E85; }
.apx-country { display: flex; justify-content: space-between; align-items: center; gap: 10px; width: 100%; border: 0; background: transparent; padding: 10px 10px; border-radius: 9px; font: inherit; font-size: .86rem; color: #0B0D0F; cursor: pointer; text-align: left; }
.apx-country:hover { background: #F2EDE2; }
.apx-country.is-on { background: #C8A96A; color: #10151C; font-weight: 700; }
.apx-country small { color: inherit; opacity: .55; font-size: .72rem; }
.apx-airport { display: grid; gap: 2px; width: 100%; border: 0; background: transparent; padding: 10px 12px; border-radius: 9px; font: inherit; color: #0B0D0F; cursor: pointer; text-align: left; }
.apx-airport:hover { background: #F2EDE2; }
.apx-airport b { font-size: .9rem; }
.apx-airport small { color: #6A6C62; font-size: .76rem; }
  .apx-body { grid-template-columns: 1fr; }
  .apx-pane + .apx-pane { border-left: 0; border-top: 1px solid #EDE8DB; }
.ai-cal-grid button, .ai-cal-grid span { height: 36px; }
.ai-cal-chips button { padding: 7px 13px; }
.ai-cal-flexhint { margin: 4px 2px 8px; }
/* ── Light-first repaint ───────────────────────────────────────────────────
   The owner is a daylight man: ivory becomes the base, night survives only
   where the cinema needs it — the hero and the photo band. Appended last so
   the cascade wins without touching the rules above. */
.jetp { background: var(--ivory); color: var(--t-light); }
.jetp .jp-label--mut { color: var(--t-light-mut); }

.jetp .jp-nav.is-solid { background: rgba(246, 243, 238, .86); border-bottom: 1px solid var(--hair-light); }
.jetp .jp-nav.is-solid .jp-mark { color: var(--t-light); }
.jetp .jp-nav.is-solid nav a { color: var(--t-light-mut); }
.jetp .jp-nav.is-solid nav a:hover { color: var(--t-light); }

.jetp .jp-search__panel { background: #fff; border-color: var(--hair-light); box-shadow: 0 30px 80px -40px rgba(20, 24, 31, .25); }
.jetp .jp-search label { color: var(--t-light-mut); }
.jetp .jp-search input { color: var(--t-light); border-bottom-color: var(--hair-light); }
.jetp .jp-search input::placeholder { color: rgba(20, 24, 31, .32); }
.jetp .jp-search__note { color: var(--t-light-mut); }

.jetp .jp-trust { border-color: var(--hair-light); }
.jetp .jp-trust b { color: var(--t-light); }
.jetp .jp-trust span { color: var(--t-light-mut); }

.jetp .jp-legs { border-top: 1px solid var(--hair-light); }
.jetp .jp-leg-list { border-top-color: var(--hair-light); }
.jetp .jp-leg { border-bottom-color: var(--hair-light); }
.jetp .jp-leg:hover { background: var(--ivory-deep); }
.jetp .jp-leg time { color: var(--t-light-mut); }
.jetp .jp-leg b { color: var(--t-light); }
.jetp .jp-leg span { color: var(--t-light-mut); }
.jetp .jp-leg .jp-save { color: var(--champagne-dim); border-color: var(--hair-light); }
.jetp .jp-leg i { color: var(--champagne-dim); }
.jetp .jp-legs__empty { border-bottom-color: var(--hair-light); }
.jetp .jp-legs__empty p, .jetp .jp-legs__note { color: var(--t-light-mut); }

.jetp .jp-seg { border-color: var(--hair-light); }
.jetp .jp-seg h3 { color: var(--t-light-mut); }
.jetp .jp-seg:hover h3 { color: var(--t-light); }
.jetp .jp-seg p { color: var(--t-light-mut); }
@media (max-width: 1024px) { .jetp .jp-seg { border-top-color: var(--hair-light); } }

.jetp .jp-form { background: #fff; border-color: var(--hair-light); box-shadow: 0 30px 80px -40px rgba(20, 24, 31, .22); }
.jetp .jp-form label { color: var(--t-light-mut); }
.jetp .jp-form input, .jetp .jp-form textarea { color: var(--t-light); border-bottom-color: var(--hair-light); }
.jetp .jp-form .jp-note { color: var(--t-light-mut); }
.jetp .jp-form .jp-h2 { color: var(--t-light); }

.jetp .jp-footer { border-top-color: var(--hair-light); }
.jetp .jp-footer .jp-mark { color: var(--t-light); }
.jetp .jp-footer h4 { color: var(--t-light-mut); }
.jetp .jp-footer a { color: var(--t-light); }
.jetp .jp-footer a:hover { color: var(--champagne-dim); }
.jetp .jp-footer div > p { color: var(--t-light-mut) !important; }
.jetp .jp-footer__bottom { border-top-color: var(--hair-light); color: var(--t-light-mut); }

.jetp .jp-concierge { background: rgba(246, 243, 238, .9); color: var(--champagne-dim); }
.jetp .jp-concierge:hover { color: #1FA20F; }

/* the hero and the photo band remain the two dark, cinematic rooms */
.jetp .jp-hero, .jetp .jp-band { color: var(--t-dark); }
.jetp .jp-hero p { color: var(--t-dark-mut); }
.jetp .jp-hero .jp-textlink { color: var(--t-dark); }

/* Hero: the owner wants the picture bright, not shaded. So the scrim is only
   a soft lift from the bottom — no side-to-side darkening, no dimmed footage.
   Legibility is carried by the type itself: a heavier shadow, and the label
   and paragraph get their own. If a frame ever fights the words, the answer
   is a better frame, not a darker page. */
.jetp .jp-hero__media::after {
  background: linear-gradient(180deg, rgba(11, 15, 30, .22) 0%, rgba(11, 15, 30, 0) 26%, rgba(11, 15, 30, .55) 82%, var(--night) 100%);
}
.jetp .jp-hero h1 .jp-line { padding-bottom: .14em; margin-bottom: -.14em; }
.jetp .jp-hero h1 { text-shadow: 0 2px 24px rgba(4, 7, 16, .8), 0 1px 4px rgba(4, 7, 16, .7); }
.jetp .jp-hero p, .jetp .jp-hero .jp-label { text-shadow: 0 1px 12px rgba(4, 7, 16, .75); }
.jetp .jp-hero__inner { padding-bottom: 150px; }

/* Quote form — the AeroAffaires-grade layer: trip type, extras as quiet chips */
.jetp .jp-trip { display: flex; gap: 8px; }
.jetp .jp-trip button { flex: 1; min-height: 42px; border: 1px solid var(--hair-light); border-radius: 2px; background: none; color: var(--t-light-mut); font: 700 .72rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; transition: all 200ms var(--ease-lux); }
.jetp .jp-trip button.is-on { background: var(--champagne); border-color: var(--champagne); color: #14181F; }
.jetp .jp-extras { display: flex; flex-wrap: wrap; gap: 8px; }
.jetp .jp-extras button { min-height: 38px; padding: 0 14px; border: 1px solid var(--hair-light); border-radius: 999px; background: none; color: var(--t-light-mut); font: 600 .76rem/1 var(--sans); cursor: pointer; transition: all 200ms; }
.jetp .jp-extras button.is-on { border-color: var(--champagne-dim); color: var(--champagne-dim); background: rgba(200, 169, 106, .08); }
.jetp .jp-form select { width: 100%; background: transparent; border: 0; border-bottom: 1px solid var(--hair-light); padding: 10px 2px; color: var(--t-light); font: 400 1rem/1.3 var(--sans); }
.jetp .jp-form select:focus { outline: none; border-bottom: 2px solid var(--champagne); }

/* Cinematic band: the quote must survive bright leather — deeper local scrim */
.jetp .jp-band__media::after { background: linear-gradient(180deg, transparent 20%, rgba(11, 15, 30, .55) 68%, rgba(11, 15, 30, .88) 100%), linear-gradient(75deg, rgba(11, 15, 30, .55) 0%, rgba(11, 15, 30, .12) 45%, transparent 70%); }
.jetp .jp-band blockquote { text-shadow: 0 1px 18px rgba(4, 7, 16, .8); }
.jetp .jp-band figcaption { color: rgba(233, 230, 223, .8); text-shadow: 0 1px 10px rgba(4, 7, 16, .8); }

/* Language switch — the same EN|TR the rest of the site wears */
.jetp .jp-lang { display: inline-flex; align-items: center; gap: 8px; margin-right: 18px; font: 700 .72rem/1 var(--sans); letter-spacing: .16em; }
.jetp .jp-lang b { color: var(--t-dark); }
.jetp .jp-lang i { font-style: normal; color: var(--hair-dark); }
.jetp .jp-lang a { color: var(--t-dark-mut); text-decoration: none; }
.jetp .jp-lang a:hover { color: var(--champagne); }
.jetp .jp-nav.is-solid .jp-lang b { color: var(--t-light); }
.jetp .jp-nav.is-solid .jp-lang a { color: var(--t-light-mut); }

/* Hero film — the blue-hour loop over the still (which stays as poster/fallback) */
.jetp .jp-hero__media { overflow: hidden; }
.jetp .jp-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (prefers-reduced-motion: reduce) { .jetp .jp-hero__video { display: none; } }

/* Sample tag on indicative strip rows — gold hairline, not a discount claim */
.jetp .jp-save--sample { background: transparent; border: 1px solid rgba(200,169,106,.65); color: #8a6f3c; }
.jetp .jp-legs__empty--slim { padding: 14px 18px; }
.jetp .jp-legs__empty--slim p { max-width: 58ch; font-size: .85rem; }

/* ═══ Popular routes — photo cards with region tabs ═══════════════════ */
.jetp .jp-proutes { padding: 92px 0; }
.jetp .jp-proutes__sub { max-width: 62ch; margin: 12px auto 0; text-align: center; color: var(--t-light-mut); font-size: .95rem; line-height: 1.6; }
.jetp .jp-proutes__tabs { display: flex; justify-content: center; gap: 26px; margin: 34px 0 30px; flex-wrap: wrap; }
.jetp .jp-proutes__tabs button { position: relative; background: none; border: 0; padding: 6px 2px; cursor: pointer; font: 700 12.5px/1 var(--sans); letter-spacing: .14em; color: var(--t-light-mut); transition: color .25s var(--ease-lux); }
.jetp .jp-proutes__tabs button::after { content: ""; position: absolute; left: 0; bottom: 0; height: 1px; width: 0; background: var(--champagne); transition: width .25s var(--ease-lux); }
.jetp .jp-proutes__tabs button:hover { color: var(--t-light); }
.jetp .jp-proutes__tabs button.is-on { color: var(--t-light); }
.jetp .jp-proutes__tabs button.is-on::after { width: 100%; }

.jetp .jp-proutes__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.jetp .jp-prcard { position: relative; display: block; aspect-ratio: 3 / 4; min-height: 430px; border-radius: 2px; overflow: hidden; background: linear-gradient(160deg, #16223c 0%, #0B0F1E 70%); text-decoration: none; animation: prIn .45s var(--ease-lux) both; }
@keyframes prIn { from { opacity: 0; transform: translateY(12px); } }
.jetp .jp-prcard__media { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .6s var(--ease-lux); }
.jetp .jp-prcard::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,15,30,.55) 0%, rgba(11,15,30,.08) 34%, rgba(11,15,30,.86) 100%); }
.jetp .jp-prcard:hover .jp-prcard__media { transform: scale(1.05); }
.jetp .jp-prcard__top, .jetp .jp-prcard__foot { position: absolute; left: 0; right: 0; z-index: 2; padding: 24px; display: grid; gap: 6px; }
.jetp .jp-prcard__top { top: 0; grid-template-columns: auto 1fr auto; align-items: center; column-gap: 12px; }
.jetp .jp-prcard__top b { font: 700 12.5px/1.3 var(--sans); letter-spacing: .14em; color: var(--ivory); }
.jetp .jp-prcard__top small { grid-column: 1 / -1; font: 600 10.5px/1 var(--sans); letter-spacing: .12em; color: rgba(246,243,238,.62); }
.jetp .jp-prcard__line { position: relative; height: 1px; background: rgba(200,169,106,.75); display: block; }
.jetp .jp-prcard__line svg { position: absolute; right: -3px; top: -7px; width: 13px; height: 13px; fill: none; stroke: var(--champagne); stroke-width: 1.7; stroke-linejoin: round; }
.jetp .jp-prcard__foot { bottom: 0; }
.jetp .jp-prcard__foot em { font: 400 20px/1.2 var(--serif); font-style: normal; color: var(--ivory); }
.jetp .jp-prcard__avail { font: 700 10.5px/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--champagne); }
.jetp .jp-prcard__guide { position: absolute; top: 20px; right: 20px; z-index: 3; padding: 5px 10px; border: 1px solid rgba(246,243,238,.4); border-radius: 999px; font: 700 9.5px/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: rgba(246,243,238,.85); }
.jetp .jp-prcard::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; z-index: 3; background: var(--champagne); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--ease-lux); }
.jetp .jp-prcard:hover::before { transform: scaleX(1); }

.jetp .jp-proutes__cta { display: flex; justify-content: center; gap: 16px; margin-top: 38px; flex-wrap: wrap; }
.jetp .jp-proutes__note { margin: 18px auto 0; max-width: 60ch; text-align: center; color: var(--t-light-mut); font-size: .82rem; }

@media (max-width: 1024px) { .jetp .jp-proutes__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) {
  .jetp .jp-proutes__grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; margin-inline: -20px; padding: 0 20px 6px; }
  .jetp .jp-prcard { flex: 0 0 78vw; scroll-snap-align: center; min-height: 380px; }
  .jetp .jp-proutes__tabs { justify-content: flex-start; overflow-x: auto; gap: 20px; }
}
@media (prefers-reduced-motion: reduce) { .jetp .jp-prcard { animation: none; } .jetp .jp-prcard__media { transition: none; } }

/* the route-guide chip belongs under the header, not across the destination */
.jetp .jp-prcard__guide { top: auto; bottom: 88px; right: 24px; }
.jetp .jp-prcard__top { grid-template-columns: auto minmax(24px, 1fr) auto; padding-right: 24px; }

/* the route card quotes per seat, like the board does */
.jetp .jp-prcard__seat { font: 700 10px/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--champagne); }

/* route-card bookmark — sits above the card link, ties into the account */
.jetp .jp-prcard__wrap { position: relative; display: block; }
.jetp .jp-prcard__save { position: absolute; top: 18px; right: 18px; z-index: 4; width: 34px; height: 34px; display: grid; place-items: center; border: 0; border-radius: 999px; background: rgba(11,15,30,.4); backdrop-filter: blur(4px); cursor: pointer; transition: background .25s var(--ease-lux); }
.jetp .jp-prcard__save svg { width: 15px; height: 15px; fill: none; stroke: rgba(246,243,238,.75); stroke-width: 1.6; stroke-linejoin: round; transition: stroke .25s, fill .25s, transform .15s; }
.jetp .jp-prcard__save:hover { background: rgba(11,15,30,.62); }
.jetp .jp-prcard__save:hover svg { stroke: var(--champagne); }
.jetp .jp-prcard__save.is-on svg { stroke: var(--champagne); fill: var(--champagne); transform: scale(1.08); }
.jetp .jp-prcard__guide { right: 62px; }

/* the bookmark sits in the top-right corner, so the header row must never
   run under it — reserve the space at every width. A grid column refuses to
   shrink below its text, so a long destination used to slide under the
   bookmark; flex-wrap lets the pair break onto a second line instead. */
.jetp .jp-prcard__top {
  padding-right: 62px;
  display: flex; flex-wrap: wrap; align-items: center;
  column-gap: 12px; row-gap: 5px;
}
.jetp .jp-prcard__top b { max-width: 100%; }
.jetp .jp-prcard__line { flex: 1 1 34px; min-width: 22px; }
.jetp .jp-prcard__top small { flex: 1 0 100%; }

/* ── route card, modernised ─────────────────────────────────────────────
   Soft-cornered glass frame, a photograph that breathes on hover, the
   commercial line (price → availability → go) sitting on one calm rail.
   Everything above still applies; this section is the authority. */
.jetp .jp-prcard {
  border-radius: 18px;
  box-shadow: 0 1px 2px rgba(11,15,30,.10);
  transition: transform .5s var(--ease-lux), box-shadow .5s var(--ease-lux);
}
.jetp .jp-prcard__wrap:hover .jp-prcard { transform: translateY(-6px); box-shadow: 0 26px 54px -22px rgba(11,15,30,.55); }
.jetp .jp-prcard__media { border-radius: inherit; filter: saturate(.92) contrast(1.02); }
/* scrim + the hairline inside the frame — the detail that reads as "made" */
.jetp .jp-prcard::after {
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(11,15,30,.62) 0%, rgba(11,15,30,.06) 32%, rgba(11,15,30,.30) 58%, rgba(11,15,30,.92) 100%);
  box-shadow: inset 0 0 0 1px rgba(246,243,238,.14);
}
.jetp .jp-prcard::before { left: 18px; right: 18px; bottom: 0; }

/* ── the route header: a staircase, not a single line ──
   origin on the upper step with the rule running out to the right, the
   destination on the lower step arriving behind the jet. It reads like a
   flight plan, and the bookmark can never sit on a city name again. */
.jetp .jp-prcard__top { display: block; padding: 22px 22px 0; }
/* the upper step keeps clear of the bookmark in the corner */
.jetp .jp-prcard__r { display: flex; align-items: center; gap: 12px; }
.jetp .jp-prcard__r:first-child { padding-right: 40px; }
.jetp .jp-prcard__r--to { margin-top: 9px; justify-content: flex-end; }
.jetp .jp-prcard__rule { flex: 1 1 auto; height: 1px; background: rgba(246,243,238,.42); }
.jetp .jp-prcard__r--to .jp-prcard__rule { background: rgba(200,169,106,.75); }
.jetp .jp-prcard__top b { font: 700 13px/1.25 var(--sans); letter-spacing: .13em; color: var(--ivory); white-space: nowrap; }
.jetp .jp-prcard__top small { display: block; margin-top: 12px; }
.jetp .jp-prcard__plane { width: 17px; height: 17px; flex: none; fill: var(--champagne); }

/* ── the commercial block ── */
.jetp .jp-prcard__foot { padding: 22px; gap: 4px; }
.jetp .jp-prcard__lbl { font: 700 10px/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: rgba(246,243,238,.62); }
.jetp .jp-prcard__foot em { font: 400 38px/1.05 var(--serif); font-style: normal; letter-spacing: -.02em; color: var(--ivory); }
/* "price on request" is a sentence, not a figure — it wears a quieter size */
.jetp .jp-prcard__foot em.is-ask { font-size: 23px; }
/* the figure is a per-seat division of the operator's whole-aircraft price;
   the tag rides with the number so it can never be read as the jet price */
.jetp .jp-prcard__seat { margin-left: 9px; font: 700 10px/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--champagne); vertical-align: 5px; }
.jetp .jp-prcard__avail { margin-top: 6px; display: inline-flex; align-items: center; gap: 8px; color: rgba(246,243,238,.9); }
.jetp .jp-prcard__avail .jp-prcard__plane { width: 14px; height: 14px; fill: rgba(246,243,238,.75); }
.jetp .jp-prcard__avail.is-live { color: var(--champagne); }
.jetp .jp-prcard__avail.is-live .jp-prcard__plane { fill: var(--champagne); }
/* the jet slides forward as the card is considered */
.jetp .jp-prcard__r--to .jp-prcard__plane { transition: transform .45s var(--ease-lux); }
.jetp .jp-prcard:hover .jp-prcard__r--to .jp-prcard__plane { transform: translateX(4px); }
.jetp .jp-prcard__guide { bottom: auto; top: 96px; right: 22px; backdrop-filter: blur(6px); background: rgba(11,15,30,.32); }
.jetp .jp-prcard__save { border: 1px solid rgba(246,243,238,.22); }
@media (prefers-reduced-motion: reduce) {
  .jetp .jp-prcard__wrap:hover .jp-prcard { transform: none; }
  .jetp .jp-prcard:hover .jp-prcard__r--to .jp-prcard__plane { transform: none; }
}

/* ── the four region doors ──
   The section opens here: one photograph per region, the corridors behind
   it, and the live legs when we hold any. Clicking opens that region's
   corridors in place. */
.jetp .jp-proutes__grid--doors { grid-template-columns: repeat(4, 1fr); gap: 20px; }
.jetp .jp-prdoor {
  position: relative; display: block; width: 100%; padding: 0; border: 0; cursor: pointer;
  aspect-ratio: 3 / 4; min-height: 360px; border-radius: 18px; overflow: hidden; text-align: left;
  background: linear-gradient(158deg, #1B2745 0%, #101731 46%, #0B0F1E 100%);
  animation: prIn .45s var(--ease-lux) both;
  transition: transform .5s var(--ease-lux), box-shadow .5s var(--ease-lux);
}
.jetp .jp-proutes__grid--doors > *:nth-child(2) { background: linear-gradient(158deg, #17233f 0%, #0F1730 48%, #0B0F1E 100%); }
.jetp .jp-proutes__grid--doors > *:nth-child(3) { background: linear-gradient(158deg, #1E2237 0%, #131A30 48%, #0B0F1E 100%); }
.jetp .jp-proutes__grid--doors > *:nth-child(4) { background: linear-gradient(158deg, #14203a 0%, #0E1529 48%, #0B0F1E 100%); }
.jetp .jp-prdoor:hover { transform: translateY(-6px); box-shadow: 0 26px 54px -22px rgba(11,15,30,.55); }
.jetp .jp-prdoor__media { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .6s var(--ease-lux); }
.jetp .jp-prdoor:hover .jp-prdoor__media { transform: scale(1.05); }
.jetp .jp-prdoor::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit;
  background: linear-gradient(180deg, rgba(11,15,30,.30) 0%, rgba(11,15,30,.12) 38%, rgba(11,15,30,.90) 100%);
  box-shadow: inset 0 0 0 1px rgba(246,243,238,.14);
}
.jetp .jp-prdoor__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 22px; display: grid; gap: 7px; }
.jetp .jp-prdoor__body b { font: 400 27px/1.1 var(--serif); letter-spacing: -.01em; color: var(--ivory); }
.jetp .jp-prdoor__body small { font: 700 10.5px/1.4 var(--sans); letter-spacing: .13em; text-transform: uppercase; color: rgba(246,243,238,.66); }
.jetp .jp-prdoor__body small i { font-style: normal; color: var(--champagne); }
.jetp .jp-prdoor__go { margin-top: 4px; font: 700 10.5px/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--champagne); opacity: .85; transition: opacity .3s var(--ease-lux), transform .3s var(--ease-lux); }
.jetp .jp-prdoor:hover .jp-prdoor__go { opacity: 1; transform: translateX(3px); }
.jetp .jp-prback { color: var(--champagne) !important; }
.jetp .jp-prback::after { display: none; }
@media (max-width: 1024px) { .jetp .jp-proutes__grid--doors { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) {
  .jetp .jp-proutes__grid--doors { display: grid; grid-template-columns: repeat(2, 1fr); overflow: visible; margin-inline: 0; padding: 0; gap: 12px; }
  .jetp .jp-prdoor { min-height: 230px; border-radius: 14px; }
  .jetp .jp-prdoor__body { padding: 15px; }
  .jetp .jp-prdoor__body b { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) { .jetp .jp-prdoor { animation: none; } .jetp .jp-prdoor:hover { transform: none; } }

/* until a route photograph lands, the card wears its own night gradient —
   deliberate, never a broken frame */
.jetp .jp-prcard { background: linear-gradient(158deg, #1B2745 0%, #101731 46%, #0B0F1E 100%); }
.jetp .jp-prcard__wrap:nth-child(2) .jp-prcard { background: linear-gradient(158deg, #17233f 0%, #0F1730 48%, #0B0F1E 100%); }
.jetp .jp-prcard__wrap:nth-child(3) .jp-prcard { background: linear-gradient(158deg, #1E2237 0%, #131A30 48%, #0B0F1E 100%); }
.jetp .jp-prcard__media { background-color: transparent; }
@media (max-width: 640px) {
  .jetp .jp-prcard__wrap { flex: 0 0 78vw; scroll-snap-align: center; }
  .jetp .jp-prcard { flex: none; width: 100%; }
  .jetp .jp-prcard__top b { font-size: 11.5px; letter-spacing: .1em; }
  .jetp .jp-prcard__save { top: 14px; right: 14px; width: 30px; height: 30px; }
}

/* ═══ One site, two rooms ═══════════════════════════════════════════════
   The jet family was drawn with 2px corners while the rest of the site uses
   pills and soft cards. Moving between them felt like leaving the company.
   The palette, the serif and the champagne already agree — these are the
   remaining shapes, brought into line. The jet rooms stay dark and quiet;
   only the geometry now matches. */
.jetp .jp-ghost, .jetp .jp-solid, .jetp .jp-search .jp-solid { border-radius: 999px; }
.jetp .jp-search__panel { border-radius: 16px; }
.jetp .jp-form { border-radius: 18px; }
.jetp .jp-seg, .jetp .jp-step { border-radius: 14px; }
/* five nav items, a language switch, an account pill and a CTA on one rail:
   the labels must not wrap, and the least important two step aside first */
.jetp .jp-nav nav { gap: 20px; }
.jetp .jp-nav nav a { white-space: nowrap; }
.jetp .jp-nav .jp-ghost { flex: none; }
@media (max-width: 1180px) { .jetp .jp-nav nav a:nth-child(n+4) { display: none; } }

/* ── the jet bar on a phone ──
   Built by assets/jet-nav.mjs from the links already in the bar. Hidden on
   desktop, where the links themselves are visible. */
.jetp .jp-burger { display: none; flex-direction: column; gap: 4px; width: 40px; height: 40px; padding: 10px 8px; margin-inline-start: -8px; background: none; border: 0; cursor: pointer; }
.jetp .jp-burger i { display: block; height: 1.5px; background: var(--t-dark); border-radius: 2px; transition: transform .25s var(--ease-lux), opacity .2s; }
.jetp .jp-nav.is-solid .jp-burger i { background: var(--t-light); }
.jetp .jp-burger.is-on i:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
.jetp .jp-burger.is-on i:nth-child(2) { opacity: 0; }
.jetp .jp-burger.is-on i:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }
.jetp .jp-mobnav { position: absolute; top: 88px; left: 0; right: 0; display: grid; padding: 8px clamp(20px, 4vw, 48px) 18px; background: rgba(11,15,30,.97); backdrop-filter: blur(14px); border-bottom: 1px solid var(--hair-dark); }
.jetp .jp-nav.is-solid .jp-mobnav { background: rgba(246,243,238,.98); border-bottom-color: var(--hair-light); }
.jetp .jp-mobnav a { padding: 14px 2px; border-bottom: 1px solid rgba(246,243,238,.08); font: 600 .82rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--t-dark); text-decoration: none; }
.jetp .jp-nav.is-solid .jp-mobnav a { color: var(--t-light); border-bottom-color: rgba(20,24,31,.1); }
.jetp .jp-mobnav a:last-child { border-bottom: 0; color: var(--champagne); }
@media (max-width: 1024px) { .jetp .jp-burger { display: flex; } }
@media (min-width: 1025px) { .jetp .jp-mobnav { display: none; } }
.jetp .jp-prdoor__from { font: 400 15px/1.3 var(--serif); color: rgba(246,243,238,.9); }
.jetp .jp-prdoor__from b { font: 400 21px/1 var(--serif); color: var(--ivory); }
.jetp .jp-prdoor__from i { font-style: normal; font-size: 10px; font-family: var(--sans); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--champagne); }

/* the region view keeps six corridors in sight; the rest are one click away */
.jetp .jp-prmore { grid-column: 1 / -1; justify-self: center; margin-top: 6px; padding: 15px 34px; border-radius: 999px;
  border: 1px solid rgba(11,13,15,.18); background: transparent; cursor: pointer;
  font: 600 12.5px/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: #55584f;
  transition: border-color .3s var(--ease-lux), color .3s var(--ease-lux); }
.jetp .jp-prmore:hover { border-color: var(--champagne, #C8A96A); color: #8a6f3c; }
@media (max-width: 640px) { .jetp .jp-prmore { flex: 0 0 auto; align-self: center; white-space: nowrap; } }

/* Route watch moves to the foot: at the top it sat on the destination line
   and, on the taller cards, on the route guide badge as well. Down here it
   has its own corner and the type keeps its full width. */
.jetp .jp-prcard__save { top: auto; bottom: 20px; right: 20px; }
.jetp .jp-prcard__foot { padding-right: 70px; }
@media (max-width: 640px) {
  .jetp .jp-prcard__save { top: auto; bottom: 16px; right: 16px; }
  .jetp .jp-prcard__foot { padding-right: 62px; }
}

/* ── the mark, drawn ──────────────────────────────────────────────────
   The PNG app icon carried its own navy tile, so on a light bar it read as
   a sticker stuck onto the page. Drawn inline, the mark takes the champagne
   of the brand, sits on a hairline with the wordmark, and inherits the bar's
   colour changes instead of fighting them. */
.jetp .jp-mark { gap: 13px; }
.jetp .jp-mark__i { width: 30px; height: 30px; flex: none; color: var(--champagne, #C8A96A);
  transition: transform .6s var(--ease-lux), opacity .3s ease; }
.jetp .jp-mark:hover .jp-mark__i { transform: rotate(-8deg) scale(1.04); }
.jetp .jp-mark__w { position: relative; display: inline-flex; align-items: baseline; gap: .42em;
  padding-left: 13px; font: 700 .8rem/1 var(--sans); letter-spacing: .3em; white-space: nowrap; }
.jetp .jp-mark__w::before { content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 1px; height: 17px; background: currentColor; opacity: .22; }
.jetp .jp-mark__w i { font-style: normal; font-weight: 500; letter-spacing: .24em; color: var(--champagne, #C8A96A); }
.jetp .jp-footer .jp-mark__i { opacity: .9; }
@media (max-width: 640px) {
  .jetp .jp-mark__i { width: 26px; height: 26px; }
  .jetp .jp-mark__w { padding-left: 10px; letter-spacing: .2em; font-size: .74rem; }
  .jetp .jp-mark__w i { letter-spacing: .16em; }
}

.jetp .jp-footer .jp-mark__w::before { display: none; }

/* `display:grid` beat the hidden attribute, so on every phone the jet menu
   was permanently open under the bar and pushed the page down. */
.jetp .jp-mobnav[hidden] { display: none !important; }

/* One guard, three bugs: `hidden` loses to any author display rule, which is
   how the mobile menu stayed open, filtered rows kept showing and the leg
   editor kept offering "Sign in" to someone already signed in. */
[hidden] { display: none !important; }

/* the leg editor wears the desk's chrome, so moving between them is one place */
.adm-top__brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; }
.adm-top__brand img { display: none; }
.adm-top__mark { width: 28px; height: 28px; flex: none; color: var(--champagne, #C8A96A); }
.adm-top__w { position: relative; display: inline-flex; align-items: baseline; gap: .4em; padding-left: 11px;
  font: 700 .74rem/1 var(--sans); letter-spacing: .2em; white-space: nowrap; }
.adm-top__w::before { content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 1px; height: 15px; background: currentColor; opacity: .22; }
.adm-top__w i { font-style: normal; font-weight: 500; color: var(--champagne, #C8A96A); letter-spacing: .16em; }
.adm-top__crumb { font-size: .72rem; letter-spacing: .06em; }
@media (max-width: 700px) { .adm-top__crumb { display: none; } }
/* the picker's styles moved to assets/pax-picker.css — see that file */

/* the operator paste box in the leg editor */
.adm-paste { margin: 0 0 22px; padding: 14px 16px; border: 1px solid rgba(20,24,31,.14); border-radius: 12px; background: rgba(255,255,255,.6); }
.adm-paste > summary { cursor: pointer; font: 600 .84rem/1 var(--sans); letter-spacing: .04em; }
.adm-paste textarea { width: 100%; margin-top: 10px; padding: 10px 12px; border: 1px solid rgba(20,24,31,.16); border-radius: 8px;
  background: #fff; font: 400 .84rem/1.6 ui-monospace, SFMono-Regular, Menlo, monospace; resize: vertical; }
.adm-paste .bar { display: flex; align-items: center; gap: 12px; margin-top: 10px; }

/* the client's line sits over motion now: the poster holds the frame, the
   clip fades in when it can play, and it never loads on a metered line */
.jetp .jp-band__media { overflow: hidden; }
.jetp .jp-band__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .96; }
@media (prefers-reduced-motion: reduce) { .jetp .jp-band__video { display: none; } }

/* the leg editor opens on what decides publication; the rest folds away */
.adm-more { margin: 2px 0 0; }
.adm-more__btn { display: inline-flex; align-items: center; gap: 9px; padding: 8px 0; border: 0; background: none;
  cursor: pointer; font: 600 .8rem/1 var(--sans); color: #806536; }
.adm-more__btn i { width: 7px; height: 7px; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor;
  transform: rotate(45deg) translate(-1px,-1px); transition: transform .3s var(--ease-lux); }
.adm-more__btn.is-open i { transform: rotate(-135deg) translate(-2px,-2px); }
.adm-rest .card--rest { padding: 0; margin: 0; border: 0; background: none; box-shadow: none; }
.adm-rest__grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px 18px; }
.adm-rest__grid > .full { grid-column: 1 / -1; }
@media (max-width: 900px) { .adm-rest__grid { grid-template-columns: 1fr 1fr; } }
/* the desk's own word, on the row it belongs to */
.hold { display: flex !important; align-items: center; gap: 10px; padding: 11px 13px; border: 1px solid rgba(20,24,31,.14);
  border-radius: 10px; background: #fff; font: 500 .82rem/1.4 var(--sans) !important; cursor: pointer; }
.hold input { width: 16px !important; height: 16px !important; accent-color: #C8A96A; flex: none; }
.hold:has(input:checked) { border-color: rgba(74,124,89,.6); background: rgba(74,124,89,.06); }
.hold--miss { border-color: #B4554E; background: rgba(180,85,78,.07); }
