:root {
  --black: #0b0b0b;
  --ink: #191917;
  --muted: #6d6b65;
  --paper: #f3f2ee;
  --white: #fff;
  --line: rgba(25, 25, 23, .17);
  --sans: "Avenir Next", "Helvetica Neue", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.skip-link {
  position: absolute;
  top: -4rem;
  left: 1rem;
  z-index: 100;
  padding: .75rem 1rem;
  color: var(--black);
  background: var(--white);
}
.skip-link:focus { top: 1rem; }

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
  display: flex;
  width: 100%;
  height: 96px;
  align-items: center;
  justify-content: space-between;
  padding: 0 7.2%;
  color: var(--white);
  border-bottom: 1px solid rgba(255,255,255,.2);
  transition: height .28s ease, background-color .28s ease, border-color .28s ease, backdrop-filter .28s ease;
}
.site-header.is-scrolled {
  height: 76px;
  background: rgba(11,11,11,.94);
  border-color: rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
}
.brand {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  color: var(--white);
  line-height: 1;
}
.brand-name {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 23px;
  letter-spacing: .13em;
}
.brand-subtitle {
  margin-top: 5px;
  padding-left: .56em;
  font-size: 8px;
  letter-spacing: .56em;
}
.primary-navigation {
  display: flex;
  align-items: center;
  gap: 38px;
  font-size: 11px;
  letter-spacing: .06em;
}
.primary-navigation a,
.footer-contact,
.legal-navigation a { transition: opacity .2s ease; }
.primary-navigation a:hover,
.footer-contact:hover,
.legal-navigation a:hover,
.footer-social:hover { opacity: .68; }
.primary-navigation .nav-contact {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  padding: 0 21px;
  border: 1px solid rgba(255,255,255,.6);
  border-radius: 999px;
}
.nav-contact span { margin-left: 12px; font-size: 14px; }
.menu-toggle { display: none; }

.hero {
  position: relative;
  display: flex;
  min-height: max(700px, 100svh);
  align-items: center;
  overflow: hidden;
  color: var(--white);
  background: var(--black);
}
.hero-image,
.hero-shade { position: absolute; inset: 0; }
.hero-image {
  background-image: url("assets/hero-private-aviation.jpg");
  background-position: center 53%;
  background-size: cover;
  transform: scale(1.015);
}
.hero-shade {
  background:
    linear-gradient(90deg, rgba(0,0,0,.77) 0%, rgba(0,0,0,.58) 38%, rgba(0,0,0,.04) 82%),
    linear-gradient(0deg, rgba(0,0,0,.48), transparent 48%);
}
.hero-content {
  position: relative;
  z-index: 1;
  width: min(760px, 82%);
  margin: 74px 0 0 12.1%;
}
.eyebrow {
  margin: 0 0 28px;
  color: rgba(255,255,255,.78);
  font-size: 12px;
  letter-spacing: .035em;
}
.hero h1,
h2 {
  margin: 0;
  font-family: var(--sans);
  font-weight: 400;
  letter-spacing: -.065em;
  line-height: 1.03;
}
.hero h1 { font-size: clamp(62px, 8vw, 112px); }
.hero h1 span { font-weight: 600; }
.hero-copy {
  max-width: 510px;
  margin: 26px 0 0;
  color: rgba(255,255,255,.82);
  font-size: 15px;
  line-height: 1.8;
}
.hero-actions {
  display: flex;
  align-items: center;
  gap: 29px;
  margin-top: 36px;
}
.button {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  gap: 28px;
  padding: 0 23px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .025em;
  transition: background .2s ease, color .2s ease, transform .2s ease, border-color .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button-light { color: var(--black); background: var(--white); }
.button-light:hover { background: #e7e6e1; }
.button span { font-size: 16px; font-weight: 400; }
.text-link { color: rgba(255,255,255,.87); font-size: 12px; }
.text-link span { margin-left: 7px; }
.hero-caption {
  position: absolute;
  right: 7.2%;
  bottom: 31px;
  left: 7.2%;
  display: flex;
  justify-content: space-between;
  color: rgba(255,255,255,.65);
  font-size: 10px;
  letter-spacing: .04em;
}

.section-wrap { width: min(1120px, 84%); margin: 0 auto; }
.js [data-reveal] {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .7s ease, transform .7s cubic-bezier(.2,.65,.3,1);
}
.js [data-reveal].is-visible { opacity: 1; transform: translateY(0); }
.js .service-item[data-reveal]:nth-child(2n) { transition-delay: .09s; }
.section-kicker {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  letter-spacing: .035em;
}
.intro {
  display: grid;
  grid-template-columns: .85fr 2fr auto;
  gap: 36px;
  align-items: start;
  padding-top: 112px;
  padding-bottom: 120px;
}
.intro > .section-kicker { padding-top: 10px; }
.intro-copy { max-width: 745px; }
.intro h2 { font-size: clamp(42px, 5.7vw, 72px); }
.intro-copy p {
  max-width: 670px;
  margin: 24px 0 0;
  color: #5f5d58;
  font-size: 15px;
  line-height: 1.9;
}
.round-link {
  display: grid;
  width: 49px;
  height: 49px;
  place-items: center;
  margin-top: 3px;
  border: 1px solid var(--line);
  border-radius: 50%;
  font-size: 17px;
  transition: color .2s ease, background .2s ease;
}
.round-link:hover { color: var(--white); background: var(--black); }

.services-section { padding: 108px 0 103px; background: var(--white); }
.section-heading {
  display: flex;
  justify-content: space-between;
  gap: 50px;
  align-items: end;
  margin-bottom: 54px;
}
.section-heading .section-kicker { margin-bottom: 20px; }
.section-heading h2,
.about-heading h2,
.contact-layout h2 {
  font-size: clamp(48px, 5.8vw, 76px);
}
.section-heading-copy {
  max-width: 360px;
  margin: 0 0 7px;
  color: #62605b;
  font-size: 13px;
  line-height: 1.9;
}
.service-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 72px;
  border-top: 1px solid var(--line);
}
.service-item {
  padding: 23px 0 24px;
  border-bottom: 1px solid var(--line);
}
.service-item h3 {
  margin: 0;
  font-size: 19px;
  font-weight: 500;
  letter-spacing: -.025em;
  line-height: 1.4;
}
.service-item p {
  max-width: 410px;
  margin: 6px 0 0;
  color: #6b6963;
  font-size: 12px;
  line-height: 1.75;
}
.services-note {
  margin: 21px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.7;
}

.about-section { padding: 112px 0 116px; color: var(--white); background: #151615; }
.about-layout {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 13%;
  align-items: center;
}
.about-heading .section-kicker { margin-bottom: 23px; color: rgba(255,255,255,.62); }
.about-heading h2 { max-width: 600px; }
.about-copy { max-width: 490px; }
.about-copy p {
  margin: 0 0 19px;
  color: rgba(255,255,255,.75);
  font-size: 14px;
  line-height: 1.9;
}
.about-copy p + p { margin-top: 23px; }
.button-outline {
  margin-top: 15px;
  color: var(--white);
  border-color: rgba(255,255,255,.55);
  background: transparent;
}
.button-outline:hover { color: var(--black); border-color: var(--white); background: var(--white); }

.faq-section { padding: 108px 0 112px; background: var(--white); }
.faq-layout {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 12%;
  align-items: start;
}
.faq-heading .section-kicker { margin-bottom: 20px; }
.faq-heading h2 { font-size: clamp(42px, 5vw, 65px); }
.faq-heading > p:last-child { max-width: 330px; margin: 23px 0 0; color: #66645f; font-size: 13px; line-height: 1.8; }
.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary {
  display: flex;
  min-height: 70px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 17px 0;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  list-style: none;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: "+";
  color: var(--muted);
  font-size: 20px;
  font-weight: 300;
  transition: transform .22s ease;
}
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-item > p { max-width: 610px; margin: -1px 34px 21px 0; color: #686660; font-size: 12px; line-height: 1.8; animation: faq-in .24s ease both; }
@keyframes faq-in {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

.contact-section { padding: 112px 0 118px; background: var(--paper); }
.contact-layout {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 10%;
  align-items: end;
}
.contact-layout .section-kicker { margin-bottom: 20px; }
.contact-details { padding-bottom: 5px; }
.contact-details p {
  max-width: 340px;
  margin: 0 0 24px;
  color: #5f5d58;
  font-size: 13px;
  line-height: 1.85;
}
.button-dark { color: var(--white); background: var(--black); }
.button-dark:hover { background: #30302e; }
.contact-details .button { min-width: 260px; justify-content: space-between; }
.email-link {
  display: block;
  width: fit-content;
  margin-top: 22px;
  padding-bottom: 3px;
  color: #55534e;
  font-size: 12px;
  border-bottom: 1px solid #a5a39c;
}

.site-footer { padding: 55px 7.2% 23px; color: var(--white); background: var(--black); }
.footer-main {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  align-items: start;
  padding-bottom: 48px;
}
.brand-footer { justify-self: start; }
.footer-tagline {
  margin: -3px 0 0;
  font-size: 20px;
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: 1.4;
}
.footer-contact {
  justify-self: end;
  padding: 11px 17px;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 999px;
  font-size: 11px;
}
.footer-contact span { margin-left: 8px; }
.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 25px;
  align-items: center;
  padding-top: 18px;
  color: rgba(255,255,255,.58);
  border-top: 1px solid rgba(255,255,255,.2);
  font-size: 10px;
}
.footer-socials { display: flex; align-items: center; gap: 15px; }
.footer-social { display: inline-flex; width: 26px; height: 26px; align-items: center; justify-content: center; transition: opacity .2s ease, transform .2s ease; }
.footer-social:hover { transform: translateY(-2px); }
.footer-social svg { display: block; width: 20px; height: 20px; }
.legal-navigation { display: flex; gap: 22px; }
.footer-last-line {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-top: 17px;
  color: rgba(255,255,255,.55);
  font-size: 10px;
}

.legal-page { min-height: 100vh; color: var(--ink); background: var(--paper); }
.legal-header { position: relative; height: 96px; color: var(--white); background: var(--black); }
.legal-header .brand { color: var(--white); }
.legal-header .back-link { color: var(--white); font-size: 11px; }
.legal-content { width: min(780px, 84%); min-height: 64vh; margin: 0 auto; padding: 82px 0 105px; }
.legal-kicker { margin: 0 0 16px; color: var(--muted); font-size: 12px; }
.legal-content h1 { margin: 0 0 22px; font-family: var(--sans); font-size: clamp(46px, 7vw, 72px); font-weight: 400; letter-spacing: -.065em; line-height: 1; }
.draft-notice { margin: 0 0 44px; padding: 14px 17px; color: #4f4b42; background: #e8e4d8; font-size: 12px; line-height: 1.7; }
.legal-content h2 { margin: 32px 0 10px; font-family: var(--sans); font-size: 15px; font-weight: 600; letter-spacing: -.02em; line-height: 1.4; }
.legal-content p,
.legal-content li { color: #686660; font-size: 13px; line-height: 1.9; }
.legal-content ul { padding-left: 20px; }
.legal-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; margin-top: 20px; }
.legal-field { min-height: 55px; padding: 12px 0 10px; border-bottom: 1px solid var(--line); }
.legal-field span { display: block; color: var(--muted); font-size: 10px; }
.legal-field strong { display: block; min-height: 17px; color: var(--ink); font-size: 12px; font-weight: 400; }
.legal-footer { margin-top: auto; }

@media (max-width: 900px) {
  .site-header { height: 82px; padding: 0 6%; }
  .primary-navigation { gap: 24px; }
  .hero-content { margin-left: 8%; }
  .section-wrap { width: 88%; }
  .intro { grid-template-columns: 180px 1fr auto; gap: 22px; padding-top: 92px; padding-bottom: 100px; }
  .service-list { column-gap: 42px; }
  .about-layout { gap: 8%; }
  .faq-layout { gap: 8%; }
}

@media (max-width: 640px) {
  body { font-size: 14px; }
  .site-header { height: 74px; padding: 0 6%; }
  .site-header.is-scrolled { height: 66px; }
  .brand-name { font-size: 21px; }
  .brand-subtitle { font-size: 7px; }
  .menu-toggle {
    display: flex;
    width: 44px;
    height: 44px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0;
    color: var(--white);
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 50%;
    background: transparent;
  }
  .menu-toggle span { width: 14px; height: 1px; background: currentColor; transition: transform .2s ease; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .primary-navigation {
    position: absolute;
    top: 74px;
    right: 0;
    left: 0;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 9px 6% 22px;
    background: var(--black);
    border-bottom: 1px solid rgba(255,255,255,.2);
  }
  .primary-navigation.is-open { display: flex; }
  .primary-navigation a { padding: 14px 0; }
  .primary-navigation .nav-contact { justify-content: center; margin-top: 6px; padding: 0 18px; }
  .hero { min-height: 760px; min-height: 100svh; }
  .hero-image { background-position: 64% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(0,0,0,.74), rgba(0,0,0,.2)), linear-gradient(0deg, rgba(0,0,0,.5), transparent 62%); }
  .hero-content { width: 88%; margin: 72px auto 0; }
  .eyebrow { margin-bottom: 22px; font-size: 11px; }
  .hero h1 { font-size: clamp(55px, 12.5vw, 76px); }
  .hero-copy { max-width: 360px; margin-top: 20px; font-size: 13px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 19px; margin-top: 28px; }
  .button { min-height: 49px; }
  .hero-caption { right: 6%; bottom: 22px; left: 6%; font-size: 9px; }
  .section-wrap { width: 88%; }
  .intro { grid-template-columns: 1fr auto; gap: 17px; padding-top: 73px; padding-bottom: 80px; }
  .intro > .section-kicker { grid-column: 1 / -1; padding: 0; }
  .intro h2 { font-size: 45px; }
  .intro-copy p { margin-top: 18px; font-size: 13px; }
  .round-link { width: 42px; height: 42px; margin-top: 4px; }
  .services-section { padding: 78px 0 72px; }
  .section-heading { display: block; margin-bottom: 34px; }
  .section-heading .section-kicker { margin-bottom: 16px; }
  .section-heading h2,
  .about-heading h2,
  .contact-layout h2 { font-size: 50px; }
  .section-heading-copy { max-width: 350px; margin-top: 18px; font-size: 12px; }
  .service-list { grid-template-columns: 1fr; }
  .service-item { padding: 19px 0 20px; }
  .service-item h3 { font-size: 18px; }
  .service-item p { max-width: 390px; font-size: 12px; }
  .about-section { padding: 78px 0 80px; }
  .about-layout { grid-template-columns: 1fr; gap: 25px; }
  .about-heading .section-kicker { margin-bottom: 16px; }
  .about-copy p { font-size: 13px; }
  .faq-section { padding: 78px 0 82px; }
  .faq-layout { grid-template-columns: 1fr; gap: 32px; }
  .faq-heading h2 { font-size: 48px; }
  .faq-item summary { min-height: 64px; font-size: 13px; }
  .faq-item > p { font-size: 12px; }
  .contact-section { padding: 78px 0 82px; }
  .contact-layout { grid-template-columns: 1fr; gap: 28px; }
  .contact-layout .section-kicker { margin-bottom: 16px; }
  .contact-details p { margin-bottom: 18px; }
  .site-footer { padding: 40px 6% 20px; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 28px 14px; padding-bottom: 34px; }
  .footer-tagline { justify-self: end; font-size: 18px; }
  .footer-contact { grid-column: 1 / -1; justify-self: start; }
  .footer-bottom { display: grid; grid-template-columns: 1fr auto; gap: 18px 20px; font-size: 9px; }
  .legal-navigation { grid-column: 1 / -1; justify-content: space-between; gap: 14px; }
  .footer-last-line { padding-top: 14px; font-size: 9px; }
  .legal-header { height: 78px; }
  .legal-content { width: 88%; padding: 58px 0 72px; }
  .legal-fields { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .js [data-reveal] { opacity: 1; transform: none; }
}
