:root {
  --booking-blue: #0066ff;
  --booking-black: #070a0f;
  --booking-panel: #0c1119;
  --booking-paper: #edf0f2;
  --booking-ink: #0a0e14;
  --booking-line: rgb(255 255 255 / .15);
  --booking-shell: min(1400px, calc(100vw - 80px));
}

* { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; background: var(--booking-black); }
body { margin: 0; overflow-x: hidden; background: var(--booking-black); color: #f3f5f7; font-family: Manrope, sans-serif; }
button, input { font: inherit; }
button, a { color: inherit; }
button { border: 0; }
a { text-decoration: none; }
.booking-shell { width: var(--booking-shell); margin-inline: auto; }
.booking-kicker { margin: 0; color: var(--booking-blue); font: 500 9px/1.4 "DM Mono", monospace; letter-spacing: .17em; text-transform: uppercase; }
.booking-button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: 0 23px; background: var(--booking-blue); color: white; font: 500 9px/1 "DM Mono", monospace; letter-spacing: .13em; text-transform: uppercase; clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 12px 100%, 0 calc(100% - 12px)); }
.booking-button:active, .booking-reserve:active:not(:disabled) { transform: translateY(1px); }

.booking-head { position: fixed; z-index: 30; inset: 0 0 auto; height: 74px; display: flex; align-items: center; justify-content: space-between; padding: 0 36px; border-bottom: 1px solid transparent; transition: background .25s, border-color .25s; }
.booking-head.is-scrolled { border-color: var(--booking-line); background: rgb(5 8 13 / .92); backdrop-filter: blur(16px); }
.booking-brand { width: 133px; }
.booking-brand img { display: block; width: 100%; height: auto; }
.booking-head nav { display: flex; align-items: center; gap: 34px; font-size: 12px; }
.booking-head nav a:not(.booking-head__cta) { color: rgb(255 255 255 / .74); }
.booking-head__cta { display: inline-flex; min-height: 46px; align-items: center; padding: 0 20px; border: 1px solid rgb(255 255 255 / .7); font: 500 9px "DM Mono", monospace; letter-spacing: .12em; text-transform: uppercase; }
.booking-head a:focus-visible, .booking-calendar button:focus-visible, .booking-button:focus-visible, .booking-hotel a:focus-visible, summary:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.booking-hotel a:focus-visible { outline-color: var(--booking-blue); }

.booking-hero { position: relative; min-height: 100svh; display: grid; align-items: center; isolation: isolate; padding: 112px 0 68px; overflow: hidden; background: #05080c url('/assets/images/meet-flight-hero.webp') center / cover no-repeat; }
.booking-hero__shade { position: absolute; z-index: 0; inset: 0; background: linear-gradient(90deg, rgb(2 5 8 / .96) 0 43%, rgb(2 5 8 / .78) 66%, rgb(2 5 8 / .68)), linear-gradient(0deg, rgb(3 6 10 / .78), rgb(3 6 10 / .2)); }
.booking-hero::after { content: ""; position: absolute; z-index: 0; inset: 0; pointer-events: none; background-image: linear-gradient(rgb(255 255 255 / .025) 1px, transparent 1px), linear-gradient(90deg, rgb(255 255 255 / .025) 1px, transparent 1px); background-size: 56px 56px; mask-image: linear-gradient(90deg, #000, transparent 82%); }
.booking-hero__watermark { position: absolute; z-index: 1; top: -9vw; right: -14vw; width: min(760px, 66vw); opacity: .14; mix-blend-mode: screen; filter: saturate(1.35) contrast(1.1); pointer-events: none; }
.booking-hero__watermark img { display: block; width: 100%; height: auto; }
.booking-hero__grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, .9fr) minmax(560px, 1.1fr); align-items: center; gap: clamp(52px, 6vw, 94px); }
.booking-aircraft-card { position: relative; height: clamp(190px, 20vw, 280px); margin: 0 0 29px; overflow: hidden; border: 1px solid rgb(255 255 255 / .18); background: #0a0d12; }
.booking-aircraft-card img { width: 100%; height: 100%; object-fit: cover; object-position: center 62%; filter: saturate(.8) contrast(1.04); }
.booking-aircraft-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgb(2 5 9 / .88), transparent 55%); }
.booking-aircraft-card figcaption { position: absolute; z-index: 2; inset: auto 19px 17px; display: flex; flex-direction: column; gap: 5px; }
.booking-aircraft-card figcaption span { color: rgb(255 255 255 / .63); font: 500 8px "DM Mono", monospace; letter-spacing: .15em; text-transform: uppercase; }
.booking-aircraft-card figcaption strong { font: 500 21px "Space Grotesk", sans-serif; letter-spacing: -.04em; }
.booking-hero h1 { margin: 15px 0 19px; font: 500 clamp(72px, 7.8vw, 122px)/.8 "Space Grotesk", sans-serif; letter-spacing: -.08em; text-transform: uppercase; }
.booking-hero__lede { max-width: 610px; margin: 0; color: #c4ccd6; font-size: clamp(15px, 1.15vw, 18px); line-height: 1.65; }
.booking-hero__facts { margin: 30px 0 0; border-top: 1px solid var(--booking-line); }
.booking-hero__facts div { display: grid; grid-template-columns: 145px 1fr; gap: 18px; padding: 12px 0; border-bottom: 1px solid var(--booking-line); }
.booking-hero__facts dt { color: #808b99; font: 500 8px "DM Mono", monospace; letter-spacing: .12em; text-transform: uppercase; }
.booking-hero__facts dd { margin: 0; color: #eef1f4; font-size: 12px; }

.booking-calendar { position: relative; width: min(595px, 100%); justify-self: end; padding: 24px; background: rgb(246 248 249 / .98); color: var(--booking-ink); box-shadow: 0 34px 110px rgb(0 0 0 / .42); }
.booking-calendar::before, .booking-calendar::after { content: ""; position: absolute; width: 22px; height: 22px; pointer-events: none; }
.booking-calendar::before { inset: 0 auto auto 0; border-top: 3px solid var(--booking-blue); border-left: 3px solid var(--booking-blue); }
.booking-calendar::after { inset: auto 0 0 auto; border-right: 3px solid var(--booking-blue); border-bottom: 3px solid var(--booking-blue); }
.booking-calendar__head { display: flex; align-items: end; justify-content: space-between; gap: 16px; padding-bottom: 18px; border-bottom: 1px solid rgb(10 14 20 / .12); }
.booking-calendar__head p { margin: 0 0 7px; color: #5f6975; font: 500 8px "DM Mono", monospace; letter-spacing: .15em; text-transform: uppercase; }
.booking-calendar__head h2 { margin: 0; font: 600 clamp(25px, 2vw, 34px)/1 "Space Grotesk", sans-serif; letter-spacing: -.045em; text-transform: uppercase; }
.booking-calendar__controls { display: flex; gap: 7px; }
.booking-calendar__controls button { width: 36px; aspect-ratio: 1; cursor: pointer; border: 1px solid rgb(10 14 20 / .15); background: transparent; font-size: 23px; }
.booking-calendar__controls button:hover:not(:disabled) { border-color: var(--booking-blue); background: var(--booking-blue); color: white; }
.booking-calendar__controls button:disabled { cursor: not-allowed; opacity: .25; }
.booking-calendar__weekdays, .booking-calendar__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.booking-calendar__weekdays { margin: 20px 0 8px; color: #66717e; font: 500 8px "DM Mono", monospace; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.booking-calendar__day { min-height: 58px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; cursor: pointer; border: 1px solid rgb(10 14 20 / .08); background: #e9edef; color: var(--booking-ink); transition: transform .18s, border-color .18s, background .18s; }
.booking-calendar__day span { font: 600 12px "DM Mono", monospace; }
.booking-calendar__day small { font: 500 6px "DM Mono", monospace; letter-spacing: .06em; text-transform: uppercase; }
.booking-calendar__day:hover:not(:disabled) { transform: translateY(-2px); border-color: var(--booking-blue); }
.booking-calendar__day.is-selected { border-color: var(--booking-blue); background: var(--booking-blue); color: white; }
.booking-calendar__day.is-today:not(.is-selected) { border-color: rgb(0 102 255 / .58); box-shadow: inset 0 0 0 1px rgb(0 102 255 / .18); }
.booking-calendar__day:disabled { cursor: not-allowed; color: #929aa3; background: #f0f2f3; }
.booking-calendar__day.is-empty { visibility: hidden; }
.booking-calendar__more { width: 100%; margin-top: 12px; padding: 10px 12px; cursor: pointer; border: 1px solid rgb(0 102 255 / .24); background: rgb(0 102 255 / .06); color: #0758d0; font: 500 8px "DM Mono", monospace; letter-spacing: .1em; text-transform: uppercase; }
.booking-calendar__more:hover { border-color: var(--booking-blue); background: var(--booking-blue); color: white; }
.booking-calendar__key { display: flex; flex-wrap: wrap; gap: 12px 18px; margin-top: 14px; color: #67717d; font: 500 7px "DM Mono", monospace; letter-spacing: .08em; text-transform: uppercase; }
.booking-calendar__key span { display: flex; align-items: center; gap: 6px; }
.booking-calendar__key i { width: 7px; aspect-ratio: 1; background: #e0e4e6; }
.booking-calendar__key i.is-selected { background: var(--booking-blue); }
.booking-calendar__key i.is-open { border: 1px solid #68727d; background: transparent; }
.booking-calendar__key i.is-closed { opacity: .4; }
.booking-format { margin: 22px 0 0; padding: 0; border: 0; }
.booking-format legend { margin-bottom: 9px; color: #5f6975; font: 500 8px "DM Mono", monospace; letter-spacing: .12em; text-transform: uppercase; }
.booking-format > div { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.booking-format button { min-height: 44px; cursor: pointer; border: 1px solid rgb(10 14 20 / .14); background: transparent; color: var(--booking-ink); font: 500 8px "DM Mono", monospace; letter-spacing: .06em; text-transform: uppercase; }
.booking-format button.is-selected { border-color: var(--booking-blue); background: rgb(0 102 255 / .08); }
.booking-selection { min-height: 52px; margin: 18px 0 14px; color: #626d79; font-size: 11px; line-height: 1.5; }
.booking-selection strong, .booking-selection span { display: block; }
.booking-selection strong { margin-bottom: 3px; color: var(--booking-ink); font-size: 13px; }
.booking-reserve { width: 100%; min-height: 53px; cursor: pointer; background: var(--booking-blue); color: white; font: 500 9px "DM Mono", monospace; letter-spacing: .12em; text-transform: uppercase; clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 12px 100%, 0 calc(100% - 12px)); }
.booking-reserve:disabled { cursor: not-allowed; background: #c7cdd2; color: #6c7580; }
.booking-calendar__fineprint { margin: 12px 0 0; color: #6c7681; font-size: 9px; line-height: 1.55; }

.booking-section { padding: clamp(92px, 10vw, 154px) 0; }
.booking-section__intro { max-width: 900px; margin-bottom: clamp(45px, 6vw, 78px); }
.booking-section__intro h2, .booking-virtual h2, .booking-travel h2, .booking-questions h2 { margin: 16px 0 24px; font: 500 clamp(52px, 7.2vw, 110px)/.84 "Space Grotesk", sans-serif; letter-spacing: -.07em; text-transform: uppercase; text-wrap: balance; }
.booking-section__intro > p:last-child, .booking-virtual__copy > p:not(.booking-kicker, .booking-note), .booking-travel__lead > p { max-width: 700px; margin: 0 0 18px; color: #aab4c1; font-size: clamp(16px, 1.25vw, 19px); line-height: 1.68; }
.booking-visit { background: var(--booking-paper); color: var(--booking-ink); }
.booking-visit .booking-section__intro > p:last-child { color: #5e6974; }
.booking-visit__steps { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0; list-style: none; border-top: 1px solid rgb(10 14 20 / .18); border-left: 1px solid rgb(10 14 20 / .18); }
.booking-visit__steps li { min-height: 290px; display: flex; flex-direction: column; padding: 22px; border-right: 1px solid rgb(10 14 20 / .18); border-bottom: 1px solid rgb(10 14 20 / .18); }
.booking-visit__steps span { color: var(--booking-blue); font: 500 9px "DM Mono", monospace; letter-spacing: .14em; }
.booking-visit__steps h3 { margin: clamp(42px, 4vw, 58px) 0 15px; font: 500 clamp(24px, 2.1vw, 35px)/.98 "Space Grotesk", sans-serif; letter-spacing: -.05em; text-transform: uppercase; }
.booking-visit__steps p { margin: 0; color: #5e6873; font-size: 13px; line-height: 1.62; }

.booking-stay { background: #e7eaed; color: var(--booking-ink); }
.booking-stay__intro > p:last-child { color: #5e6974; }
.booking-stay__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgb(10 14 20 / .18); border: 1px solid rgb(10 14 20 / .18); }
.booking-hotel { min-width: 0; background: #f5f6f7; }
.booking-hotel > img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; filter: saturate(.75) contrast(1.04); }
.booking-hotel > div { padding: clamp(24px, 3vw, 40px); }
.booking-hotel p { margin: 0 0 17px; color: var(--booking-blue); font: 500 8px "DM Mono", monospace; letter-spacing: .15em; text-transform: uppercase; }
.booking-hotel h3 { min-height: 2em; margin: 0 0 13px; font: 500 clamp(25px, 2.5vw, 38px)/.98 "Space Grotesk", sans-serif; letter-spacing: -.05em; text-transform: uppercase; }
.booking-hotel strong { display: block; color: #56616d; font: 500 10px/1.4 "DM Mono", monospace; letter-spacing: .045em; text-transform: uppercase; }
.booking-hotel ul { min-height: 86px; margin: 24px 0 25px; padding: 0; list-style: none; border-top: 1px solid rgb(10 14 20 / .13); }
.booking-hotel li { padding: 8px 0; border-bottom: 1px solid rgb(10 14 20 / .13); color: #5c6671; font-size: 12px; }
.booking-hotel a { display: inline-flex; gap: 8px; padding-bottom: 5px; border-bottom: 1px solid var(--booking-blue); color: #0a4db3; font: 500 8px "DM Mono", monospace; letter-spacing: .12em; text-transform: uppercase; }

.booking-virtual { display: grid; grid-template-columns: .94fr 1.06fr; height: clamp(720px, 72svh, 780px); background: #080c12; }
.booking-virtual > img { width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.booking-virtual__copy { align-self: center; max-width: 770px; padding: clamp(48px, 5vw, 76px); }
.booking-virtual h2 { max-width: 8ch; }
.booking-virtual ul { display: flex; flex-wrap: wrap; gap: 12px 28px; margin: 28px 0 34px; padding: 0; list-style: none; color: #9ca7b5; font: 500 8px "DM Mono", monospace; letter-spacing: .12em; text-transform: uppercase; }
.booking-virtual li::before { content: ""; display: inline-block; width: 5px; aspect-ratio: 1; margin-right: 8px; background: var(--booking-blue); }
.booking-note { max-width: 620px; margin: 17px 0 0; color: #788391; font-size: 11px; line-height: 1.6; }

.booking-models { background: #06090e; }
.booking-models__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-bottom: 34px; background: var(--booking-line); border: 1px solid var(--booking-line); }
.booking-models__grid > article { min-height: 410px; display: flex; flex-direction: column; padding: clamp(24px, 2.6vw, 38px); background: #0d121a; }
.booking-models__grid > article.is-featured { background: #0c1b31; }
.booking-models__grid picture { display: block; width: calc(100% + 2 * clamp(24px, 2.6vw, 38px)); aspect-ratio: 16 / 9; margin: calc(-1 * clamp(24px, 2.6vw, 38px)) calc(-1 * clamp(24px, 2.6vw, 38px)) 26px; overflow: hidden; background: #e7e8e3; }
.booking-models__grid picture img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.78) contrast(1.04); }
.booking-models__grid article > p { min-height: 3em; margin: 0; color: #7f8b99; font: 500 8px/1.5 "DM Mono", monospace; letter-spacing: .1em; text-transform: uppercase; }
.booking-models__grid h3 { margin: auto 0 28px; color: #f4f6f8; font: 500 clamp(72px, 7vw, 118px)/.7 "Space Grotesk", sans-serif; letter-spacing: -.08em; }
.booking-models__grid dl { margin: 0; }
.booking-models__grid dl div { display: flex; justify-content: space-between; gap: 18px; padding: 10px 0; border-top: 1px solid var(--booking-line); }
.booking-models__grid dt { color: #7f8b99; font: 500 7px/1.4 "DM Mono", monospace; letter-spacing: .08em; text-transform: uppercase; }
.booking-models__grid dd { margin: 0; color: #f0f3f6; font-size: 11px; text-align: right; }
.booking-models__grid small { margin-top: 14px; color: #7f8b99; font-size: 9px; line-height: 1.5; }
.booking-models__pending { margin-top: auto; padding-top: 20px; border-top: 1px solid var(--booking-line); color: #9ba6b3; font-size: 12px; line-height: 1.6; }

.booking-travel { background: #0a0f17; }
.booking-travel__grid, .booking-questions__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(60px, 10vw, 160px); align-items: start; }
.booking-travel h2 { max-width: 7ch; }
.booking-travel__lead strong { color: #fff; }
.booking-travel__facts { margin: 0; border-top: 1px solid var(--booking-line); }
.booking-travel__facts div { display: grid; grid-template-columns: 1fr 1.1fr; gap: 9px 20px; padding: 23px 0; border-bottom: 1px solid var(--booking-line); }
.booking-travel__facts dt { color: #788492; font: 500 8px "DM Mono", monospace; letter-spacing: .12em; text-transform: uppercase; }
.booking-travel__facts dd { margin: 0; font: 500 clamp(22px, 2vw, 31px) "Space Grotesk", sans-serif; letter-spacing: -.04em; }
.booking-travel__facts span { grid-column: 2; color: #7c8795; font-size: 11px; }

.booking-questions { background: var(--booking-paper); color: var(--booking-ink); }
.booking-questions h2 { max-width: 7ch; font-size: clamp(48px, 6.4vw, 96px); }
.booking-questions__list { border-top: 1px solid rgb(10 14 20 / .2); }
.booking-questions details { border-bottom: 1px solid rgb(10 14 20 / .2); }
.booking-questions summary { position: relative; cursor: pointer; padding: 23px 52px 23px 0; list-style: none; font: 500 clamp(19px, 1.8vw, 26px) "Space Grotesk", sans-serif; letter-spacing: -.035em; }
.booking-questions summary::-webkit-details-marker { display: none; }
.booking-questions summary::after { content: "+"; position: absolute; right: 4px; color: var(--booking-blue); font-size: 25px; }
.booking-questions details[open] summary::after { content: "−"; }
.booking-questions details p { max-width: 720px; margin: -2px 0 24px; color: #5d6873; line-height: 1.68; }

.booking-close { position: relative; min-height: 94svh; display: grid; align-items: end; overflow: hidden; }
.booking-close > img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.booking-close::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgb(3 6 10 / .94), rgb(3 6 10 / .2) 75%), linear-gradient(0deg, rgb(3 6 10 / .75), transparent 55%); }
.booking-close > div { padding-bottom: 9vh; }
.booking-close h2 { max-width: 8ch; margin: 16px 0 22px; font: 500 clamp(66px, 10vw, 150px)/.78 "Space Grotesk", sans-serif; letter-spacing: -.08em; text-transform: uppercase; }
.booking-close p:not(.booking-kicker) { max-width: 600px; margin: 0 0 28px; color: #c2cad4; font-size: 17px; line-height: 1.62; }
.booking-footer { padding: 35px 0; border-top: 1px solid var(--booking-line); background: #06090d; }
.booking-footer > div { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.booking-footer img { width: 76px; height: auto; }
.booking-footer span { color: #737e8c; font: 500 8px "DM Mono", monospace; letter-spacing: .12em; text-transform: uppercase; }

@media (max-width: 1050px) {
  :root { --booking-shell: calc(100vw - 48px); }
  .booking-hero { padding-top: 106px; }
  .booking-hero__grid { grid-template-columns: 1fr; }
  .booking-hero__story { max-width: 760px; }
  .booking-calendar { width: min(595px, 100%); justify-self: center; }
  .booking-visit__steps { grid-template-columns: repeat(2, 1fr); }
  .booking-visit__steps li:last-child { grid-column: span 2; }
  .booking-models__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  :root { --booking-shell: calc(100vw - 36px); }
  .booking-head { height: 68px; padding: 0 18px; }
  .booking-brand { width: 112px; }
  .booking-head nav > a:not(.booking-head__cta) { display: none; }
  .booking-head__cta { min-height: 42px; padding-inline: 14px; }
  .booking-hero { padding: 91px 0 50px; background-image: url('/assets/images/meet-flight-hero-mobile.webp'); }
  .booking-hero__shade { background: linear-gradient(0deg, rgb(2 5 8 / .98) 0 58%, rgb(2 5 8 / .72)); }
  .booking-aircraft-card { height: 190px; }
  .booking-hero h1 { font-size: 20vw; }
  .booking-hero__facts div { grid-template-columns: 118px 1fr; }
  .booking-calendar { width: 100%; min-height: 0; padding: 22px 14px 24px; }
  .booking-calendar__weekdays, .booking-calendar__days { gap: 3px; }
  .booking-calendar__day { min-height: 48px; }
  .booking-calendar__day small { display: none; }
  .booking-format > div { grid-template-columns: 1fr; }
  .booking-visit__steps, .booking-stay__grid, .booking-virtual, .booking-travel__grid, .booking-questions__grid, .booking-models__grid { grid-template-columns: 1fr; }
  .booking-visit__steps li, .booking-visit__steps li:last-child { grid-column: auto; min-height: 230px; }
  .booking-hotel h3, .booking-hotel ul { min-height: 0; }
  .booking-models__grid > article { min-height: 340px; }
  .booking-virtual { height: auto; }
  .booking-virtual > img { min-height: 58svh; }
  .booking-virtual__copy { padding: 48px 18px; }
  .booking-travel__facts { margin-top: 40px; }
  .booking-travel__facts div { grid-template-columns: 1fr; }
  .booking-travel__facts span { grid-column: 1; }
  .booking-questions__grid { gap: 42px; }
  .booking-close h2 { font-size: 17vw; }
}

@media (max-width: 420px) {
  .booking-calendar__head h2 { font-size: 22px; }
  .booking-calendar__controls button { width: 36px; }
  .booking-calendar__day span { font-size: 11px; }
  .booking-calendar__key { gap: 9px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

@media (prefers-reduced-transparency: reduce) {
  .booking-head.is-scrolled { background: #05080d; backdrop-filter: none; }
  .booking-calendar { background: #f6f8f9; }
}
