:root {
  --executive-navy: #0a0f1c;
  --charcoal: #1b1d21;
  --signature-gold: #d4af7c;
  --dark-gold: #b58b54;
  --champagne: #eadcc8;
  --stone: #a7a29a;
  --pearl: #f8f7f4;
  --signature-burgundy: #4a0f14;
  --emerald-shadow: #0e2a24;
  --font-display: "Cormorant Garamond", Georgia, serif;
  --font-body: "Manrope", Arial, sans-serif;
  --container: 1400px;
  --gutter: clamp(1.25rem, 4vw, 4rem);
  --section-space: clamp(4.5rem, 10vw, 8.75rem);
  --focus-ring: 0 0 0 3px var(--executive-navy), 0 0 0 5px var(--signature-gold);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--executive-navy); color: var(--pearl); font: 400 1rem/1.7 var(--font-body); -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--signature-gold); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
:focus-visible { border-radius: 2px; outline: none; box-shadow: var(--focus-ring); }

.container { width: min(100% - (var(--gutter) * 2), var(--container)); margin-inline: auto; }
.skip-link { position: fixed; z-index: 100; top: .75rem; left: .75rem; padding: .7rem 1rem; color: var(--executive-navy); background: var(--signature-gold); transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.site-header { position: sticky; z-index: 20; top: 0; border-bottom: 1px solid transparent; transition: background-color .25s ease, border-color .25s ease; }
.site-header--scrolled { background: rgb(10 15 28 / .96); border-color: rgb(212 175 124 / .25); }
.header__inner { min-height: 5.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.brand { width: clamp(10rem, 19vw, 14rem); }
.brand img { width: 100%; height: auto; }
.site-nav { display: flex; align-items: center; gap: clamp(.75rem, 1.8vw, 1.75rem); color: var(--pearl); font-size: .77rem; font-weight: 500; letter-spacing: .07em; text-transform: uppercase; }
.site-nav > a:not(.button) { white-space: nowrap; }
.menu-toggle { display: none; padding: .75rem; border: 1px solid rgb(212 175 124 / .6); color: var(--pearl); background: transparent; }
.menu-toggle span:not(.sr-only) { display: block; width: 1.25rem; height: 1px; margin: .28rem; background: currentColor; }

.button { display: inline-flex; align-items: center; justify-content: center; min-height: 3.2rem; padding: .9rem 1.45rem; border: 1px solid var(--signature-gold); border-radius: 2px 4px; color: var(--executive-navy); background: var(--signature-gold); font-size: .75rem; font-weight: 600; letter-spacing: .08em; line-height: 1; text-transform: uppercase; transition: color .2s ease, background-color .2s ease, transform .2s ease; }
.button:hover { color: var(--pearl); background: var(--dark-gold); transform: translateY(-1px); }
.button--secondary { color: var(--pearl); background: transparent; }
.button--secondary:hover { color: var(--executive-navy); background: var(--signature-gold); }
.button--small { min-height: 2.6rem; padding: .7rem .9rem; font-size: .68rem; }
.button-group { display: flex; flex-wrap: wrap; gap: .75rem; }

.foundation-hero, .interior-hero { display: grid; min-height: min(48rem, calc(100svh - 5.5rem)); align-items: center; position: relative; overflow: hidden; background: linear-gradient(120deg, #070b13 0%, var(--executive-navy) 52%, #17202b 100%); }
.foundation-hero { isolation: isolate; background: #070b13; }
.page-hero { display: grid; min-height: min(39rem, calc(82svh - 5.5rem)); align-items: end; position: relative; overflow: hidden; background: linear-gradient(135deg, #080d17 0%, var(--executive-navy) 53%, #18202a 100%); }
.page-hero::after { position: absolute; right: 7vw; bottom: -20rem; width: min(48vw, 40rem); aspect-ratio: 1; border: 1px solid rgb(212 175 124 / .25); border-radius: 50%; content: ""; }
.foundation-hero__media { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; animation: hero-drift 22s ease-in-out infinite alternate; }
.foundation-hero::before { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgb(5 9 16 / .94) 0%, rgb(7 11 19 / .78) 38%, rgb(7 11 19 / .26) 68%, rgb(7 11 19 / .08) 100%), linear-gradient(0deg, rgb(5 9 16 / .46), transparent 42%); content: ""; }
.foundation-hero::after { position: absolute; z-index: 2; right: -11vw; bottom: -22vw; width: min(65vw, 58rem); aspect-ratio: 1; border: 1px solid rgb(212 175 124 / .35); border-radius: 50%; content: ""; animation: hero-orbit 14s ease-in-out infinite alternate; }
.foundation-hero__content, .interior-hero .container, .page-hero__content { position: relative; z-index: 1; max-width: 50rem; padding-block: var(--section-space); }
.foundation-hero__content { z-index: 3; animation: hero-content-in .9s cubic-bezier(.22, 1, .36, 1) both; }
.foundation-hero__signal { display: block; width: 3.5rem; height: 1px; margin-bottom: 1.5rem; background: var(--signature-gold); transform-origin: left; animation: hero-signal 1.2s .3s cubic-bezier(.22, 1, .36, 1) both; }
.eyebrow { margin: 0 0 1.25rem; color: var(--signature-gold); font-size: .75rem; font-weight: 500; letter-spacing: .24em; line-height: 1.4; text-transform: uppercase; }
.eyebrow--dark { color: var(--dark-gold); }
h1, h2, h3 { margin: 0; font-family: var(--font-display); font-weight: 500; line-height: 1.08; }
h1 { max-width: 12ch; font-size: clamp(3.6rem, 8vw, 7rem); }
h2 { max-width: 14ch; font-size: clamp(2.6rem, 5vw, 4rem); }
.lead { max-width: 39rem; margin: 1.5rem 0 2.25rem; color: var(--champagne); font-size: clamp(1rem, 1.4vw, 1.16rem); }

@keyframes hero-drift { from { transform: scale(1.015) translate3d(-.4%, 0, 0); } to { transform: scale(1.07) translate3d(.55%, -.5%, 0); } }
@keyframes hero-orbit { from { transform: translate3d(0, 0, 0); opacity: .65; } to { transform: translate3d(-1.2rem, -1rem, 0); opacity: 1; } }
@keyframes hero-content-in { from { opacity: 0; transform: translate3d(0, 1.25rem, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
@keyframes hero-signal { from { transform: scaleX(0); opacity: 0; } to { transform: scaleX(1); opacity: 1; } }

.section { padding-block: var(--section-space); }
.section--pearl { color: var(--charcoal); background: var(--pearl); }
.grid-two { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1fr); gap: clamp(2.5rem, 8vw, 10rem); align-items: start; }
.prose p { margin: 0 0 1.2rem; max-width: 42rem; font-size: 1.05rem; }
.feature-grid, .service-grid, .region-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: clamp(2.5rem, 5vw, 4.5rem); }
.feature-card, .service-card, .region-grid article { padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid rgb(212 175 124 / .3); }
.feature-card h3, .service-card h3, .region-grid h3 { margin-bottom: .85rem; font-size: clamp(1.75rem, 3vw, 2.25rem); }
.feature-card p, .service-card p, .region-grid p { margin: 0; color: var(--champagne); font-size: .92rem; }
.section--pearl .service-card, .section--pearl .feature-card { border-color: rgb(27 29 33 / .18); }
.section--pearl .service-card p, .section--pearl .feature-card p { color: #505156; }
.service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.service-card { min-height: 14rem; display: flex; flex-direction: column; justify-content: end; }
.service-card span { margin-bottom: auto; color: var(--dark-gold); font-size: .75rem; letter-spacing: .18em; }
.section-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .7fr); gap: 2rem; align-items: end; }
.section-intro > p:last-child { max-width: 34rem; margin: 0; color: #505156; }
.section--charcoal { color: var(--pearl); background: var(--charcoal); }
.centered-copy { max-width: 48rem; text-align: center; }
.centered-copy .eyebrow { margin-inline: auto; }
.centered-copy h2 { max-width: none; }
.centered-copy > p:not(.eyebrow) { max-width: 37rem; margin: 1.25rem auto 2rem; color: var(--champagne); }
.text-link { display: inline-block; margin-top: .5rem; border-bottom: 1px solid var(--signature-gold); padding-bottom: .3rem; color: var(--charcoal); font-size: .82rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.text-link:hover { color: var(--dark-gold); }
.contact-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(20rem, .85fr); gap: clamp(2.5rem, 8vw, 9rem); align-items: center; }
.contact-card { padding: clamp(1.75rem, 4vw, 3rem); border-top: 2px solid var(--signature-gold); color: var(--pearl); background: var(--executive-navy); }
.contact-card__email { display: block; overflow-wrap: anywhere; margin-bottom: 1.25rem; color: var(--pearl); font-family: var(--font-display); font-size: clamp(1.25rem, 2vw, 1.75rem); line-height: 1.15; white-space: nowrap; }
.contact-card__email:hover { color: var(--signature-gold); }
.contact-card > p:not(.eyebrow) { margin: 0 0 1.75rem; color: var(--champagne); font-size: .9rem; }
.contact-card__address { padding-top: 1rem; border-top: 1px solid rgb(234 220 200 / .2); }
.form-shell { max-width: 1020px; }
.form-shell__heading { max-width: 38rem; margin-bottom: 2.5rem; }
.form-shell__heading > p:last-child { color: var(--stone); }
.inquiry-form { padding: clamp(1.25rem, 4vw, 3rem); border: 1px solid rgb(212 175 124 / .3); background: rgb(27 29 33 / .45); }
.inquiry-form--light { border-color: rgb(27 29 33 / .18); background: #fffdfa; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.field { display: grid; gap: .45rem; }
.field--full { grid-column: 1 / -1; }
.field label, .journey-type legend { color: var(--pearl); font-size: .78rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.inquiry-form--light .field label, .inquiry-form--light .journey-type legend { color: var(--charcoal); }
.field input, .field select, .field textarea { width: 100%; border: 1px solid rgb(234 220 200 / .34); border-radius: 2px; padding: .85rem .9rem; color: var(--pearl); background: rgb(10 15 28 / .55); }
.inquiry-form--light .field input, .inquiry-form--light .field select, .inquiry-form--light .field textarea { border-color: rgb(27 29 33 / .25); color: var(--charcoal); background: var(--pearl); }
.field textarea { min-height: 8rem; resize: vertical; }
.time-picker { position: relative; }
.time-picker__trigger { display: flex; align-items: center; width: 100%; min-height: 3.1rem; border: 1px solid rgb(27 29 33 / .25); border-radius: 2px; padding: .85rem .9rem; color: var(--charcoal); background: var(--pearl); font: 400 1rem/1.2 var(--font-body); text-align: left; }
.time-picker__trigger::after { margin-left: auto; color: var(--dark-gold); content: '◷'; font-size: 1.15rem; }
.time-picker__trigger:hover { border-color: var(--dark-gold); }
.time-picker__panel { position: absolute; z-index: 8; top: calc(100% + .3rem); right: 0; left: 0; max-height: 22rem; overflow-y: auto; border: 1px solid rgb(27 29 33 / .2); box-shadow: 0 1rem 2.5rem rgb(0 0 0 / .2); padding: 1rem; background: var(--pearl); }
.time-picker__panel p { margin: 0 0 .55rem; color: var(--charcoal); font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.time-picker__panel p + .time-picker__minutes { margin-bottom: 1rem; }
.time-picker__hours, .time-picker__minutes { display: grid; grid-template-columns: repeat(6, 1fr); gap: .35rem; }
.time-picker__choice { min-height: 2.1rem; border: 1px solid rgb(27 29 33 / .16); border-radius: 2px; color: var(--charcoal); background: transparent; font: 500 .76rem/1 var(--font-body); }
.time-picker__choice:hover, .time-picker__choice--active { color: var(--executive-navy); border-color: var(--signature-gold); background: var(--signature-gold); }
.field input::placeholder, .field textarea::placeholder { color: var(--stone); }
.field-meta { display: flex; justify-content: space-between; gap: .75rem; color: var(--stone); }
.field-error { color: #f1adb1; font-size: .78rem; }
.field-hint { min-height: 1.15rem; color: var(--stone); font-size: .75rem; }
.inquiry-form--light .field-error { color: var(--signature-burgundy); }
.phone-group { display: grid; grid-template-columns: minmax(9rem, 1.25fr) minmax(0, 1fr); gap: .5rem; }
.country-picker { position: relative; min-width: 0; }
.country-picker__native { position: absolute; width: 1px !important; height: 1px; opacity: 0; pointer-events: none; }
.country-picker__button { display: flex; align-items: center; width: 100%; gap: .6rem; border: 1px solid rgb(27 29 33 / .25); border-radius: 2px; padding: .85rem .9rem; color: var(--charcoal); background: var(--pearl); font: 400 1rem/1.7 var(--font-body); text-align: left; }
.country-picker__button::after { margin-left: auto; content: '⌄'; }
.country-picker__button img, .country-picker__option img { flex: 0 0 auto; object-fit: cover; }
.country-picker__list { position: absolute; z-index: 10; top: calc(100% + .25rem); right: 0; left: 0; max-height: 16rem; overflow-y: auto; border: 1px solid rgb(27 29 33 / .2); box-shadow: 0 1rem 2.5rem rgb(0 0 0 / .2); background: var(--pearl); }
.country-picker__option { display: flex; align-items: center; width: 100%; gap: .65rem; border: 0; border-bottom: 1px solid rgb(27 29 33 / .09); padding: .65rem .8rem; color: var(--charcoal); background: var(--pearl); font: 400 .85rem/1.3 var(--font-body); text-align: left; }
.country-picker__option:hover, .country-picker__option:focus-visible { color: var(--executive-navy); background: var(--champagne); }
.inquiry-form:not(.inquiry-form--light) .country-picker__button { border-color: rgb(234 220 200 / .34); color: var(--pearl); background: rgb(10 15 28 / .55); }
.inquiry-form:not(.inquiry-form--light) .country-picker__list { border-color: rgb(234 220 200 / .34); background: var(--executive-navy); }
.inquiry-form:not(.inquiry-form--light) .country-picker__option { border-color: rgb(234 220 200 / .16); color: var(--pearl); background: var(--executive-navy); }
.inquiry-form:not(.inquiry-form--light) .country-picker__option:hover, .inquiry-form:not(.inquiry-form--light) .country-picker__option:focus-visible { color: var(--executive-navy); background: var(--champagne); }
.journey-type { display: flex; flex-wrap: wrap; gap: 1.25rem; margin: 0 0 1.5rem; padding: 0; border: 0; }
.journey-type legend { width: 100%; margin-bottom: .25rem; }
.journey-type label { color: var(--pearl); font-size: .92rem; }
.inquiry-form--light .journey-type label { color: var(--charcoal); }
.journey-type input { accent-color: var(--signature-gold); }
.field--disabled { opacity: .48; }
.field--disabled input { cursor: not-allowed; }
.airport-field { position: relative; }
.airport-results { position: absolute; z-index: 5; top: calc(100% - 1.15rem); right: 0; left: 0; max-height: 15rem; overflow-y: auto; border: 1px solid rgb(212 175 124 / .5); box-shadow: 0 1rem 2.5rem rgb(0 0 0 / .2); background: var(--executive-navy); }
.airport-option { display: block; width: 100%; border: 0; border-bottom: 1px solid rgb(234 220 200 / .16); padding: .8rem .9rem; color: var(--pearl); background: transparent; font: 400 .82rem/1.4 var(--font-body); text-align: left; }
.airport-option:hover, .airport-option--active { color: var(--executive-navy); background: var(--champagne); }
.passenger-field { gap: .7rem; }
.field-label { color: var(--charcoal); font-size: .78rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.passenger-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.passenger-grid label { display: grid; gap: .3rem; color: var(--charcoal); font-size: .83rem; font-weight: 500; letter-spacing: normal; text-transform: none; }
.passenger-grid label small { color: #696a6e; font-size: .72rem; font-weight: 400; }
.form-submit { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgb(212 175 124 / .24); }
.form-submit p { max-width: 42rem; margin: 0; color: var(--champagne); font-size: .78rem; }
.inquiry-form--light .form-submit p { color: #505156; }
.form-notice { margin: 0 0 1.25rem; padding: 1rem 1.2rem; border-left: 2px solid var(--signature-gold); color: var(--champagne); background: rgb(212 175 124 / .12); }
.form-notice--error { border-color: #f1adb1; color: #ffd8da; background: rgb(74 15 20 / .55); }
.honeypot { position: absolute; overflow: hidden; width: 1px; height: 1px; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.optional { color: var(--stone); font-size: .7rem; font-weight: 400; text-transform: none; }
.site-footer { border-top: 1px solid rgb(212 175 124 / .25); color: var(--champagne); background: #070b13; }
.footer__inner { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 2rem; padding-block: 4rem; }
.footer__brand { display: inline-block; color: var(--pearl); font-family: var(--font-display); font-size: 1.9rem; }
.footer__inner p { margin: .3rem 0 0; font-size: .88rem; }
.footer__links { display: grid; align-content: start; gap: .5rem; font-size: .88rem; }
.footer__bottom { display: flex; justify-content: space-between; gap: 1rem; padding-block: 1.25rem; border-top: 1px solid rgb(248 247 244 / .12); color: var(--stone); font-size: .74rem; }

@media (max-width: 980px) {
  .menu-toggle { display: block; }
  .site-nav { display: none; position: absolute; top: 100%; right: 0; left: 0; padding: 1.5rem var(--gutter) 2rem; border-bottom: 1px solid rgb(212 175 124 / .25); background: var(--executive-navy); align-items: stretch; flex-direction: column; }
  .site-nav--open { display: flex; }
  .site-nav .button { margin-top: .5rem; }
}
@media (max-width: 700px) {
  .foundation-hero, .interior-hero { min-height: 39rem; }
  .foundation-hero__media { object-position: 62% center; }
  .foundation-hero::before { background: linear-gradient(90deg, rgb(5 9 16 / .92), rgb(5 9 16 / .64)), linear-gradient(0deg, rgb(5 9 16 / .5), transparent 45%); }
  .page-hero { min-height: 32rem; }
  .grid-two, .footer__inner, .section-intro, .feature-grid, .service-grid, .region-grid, .contact-layout, .form-grid { grid-template-columns: 1fr; }
  .field--full { grid-column: auto; }
  .phone-group { grid-template-columns: 1fr; }
  .passenger-grid { grid-template-columns: 1fr; }
  .contact-card__email { white-space: normal; }
  .footer__bottom { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }
