:root{
  --navy:#0B1B2C;
  --navy2:#122437;
  --navy3:#182F45;
  --gold:#C9A227;
  --gold-soft:#E4C766;
  --ivory:#F7F4EE;
  --ivory2:#F0ECE2;
  --charcoal:#1C1E22;
  --muted:#5C6773;
  --muted-light:#8FA0AF;
  --line:#26384C;
  --line-light:#E3E0D6;
  --serif: 'Fraunces', Georgia, serif;
  --sans: 'Inter', -apple-system, 'Segoe UI', sans-serif;
  --mono: 'IBM Plex Mono', ui-monospace, 'Courier New', monospace;
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family: var(--sans);
  color: var(--charcoal);
  background: var(--ivory);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
a{ color: inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
.wrap{ max-width: 1180px; margin: 0 auto; padding: 0 32px; }
.eyebrow{
  font-family: var(--mono); font-size: 11px; letter-spacing: 3px; text-transform: uppercase;
  color: var(--gold); font-weight: 500; display:block; margin-bottom: 18px;
}
h1,h2,h3{ font-family: var(--serif); font-weight: 600; letter-spacing: -0.01em; }
section{ padding: 110px 0; }
@media (max-width: 720px){ section{ padding: 68px 0; } .wrap{ padding: 0 22px; } }

/* ---------- Nav ---------- */
header{
  position: fixed; top:0; left:0; right:0; z-index: 100;
  background: rgba(11,27,44,0.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
nav{
  max-width:1180px; margin:0 auto; padding: 16px 32px;
  display:flex; align-items:center; justify-content:space-between;
}
.brand{ font-family: var(--serif); font-weight:700; font-size:17px; color:#fff; letter-spacing:0.2px; }
.brand span{ color: var(--gold); }
.navlinks{ display:flex; gap:26px; }
.navlinks a{ font-size:12.5px; color:#C7CDD3; letter-spacing:0.3px; transition: color .2s; white-space:nowrap; }
.navlinks a:hover, .navlinks a.active{ color: var(--gold); }
.navcta{
  font-family: var(--mono); font-size:11px; letter-spacing:1.5px; color: var(--navy);
  background: var(--gold); padding: 10px 16px; border-radius:2px; text-transform:uppercase; white-space:nowrap;
}
@media (max-width: 900px){ .navlinks{ display:none; } }

/* ---------- Hero (home) ---------- */
.hero{
  background: var(--navy); min-height: 100vh; display:flex; align-items:center;
  position: relative; overflow:hidden; padding-top: 90px;
}
.hero-bg{
  position:absolute; inset:0; z-index:0; background-size: cover; background-position: center 65%; opacity: 0.22;
}
.hero::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(180deg, rgba(11,27,44,0.55), rgba(11,27,44,0.92) 55%, var(--navy) 100%),
    radial-gradient(ellipse 900px 500px at 85% 20%, rgba(201,162,39,0.10), transparent 60%);
}
.flightpath{ position:absolute; top:0; left:0; width:100%; height:100%; opacity:0.5; z-index:1; }
.flightpath path{ fill:none; stroke:#1E3348; stroke-width:1; }
.flightpath path.draw{
  stroke: var(--gold); stroke-dasharray: 1400; stroke-dashoffset: 1400;
  animation: draw 2.6s ease-out 0.3s forwards; opacity:0.55;
}
@keyframes draw{ to{ stroke-dashoffset:0; } }
.hero-inner{ position:relative; z-index:2; max-width: 820px; }
.hero h1{ font-size: clamp(38px, 5.6vw, 64px); color:#fff; line-height:1.1; margin-bottom:24px; }
.hero h1 em{ font-style:italic; color: var(--gold); }
.hero p{ font-size: 17.5px; color:#B9C2CB; max-width: 580px; margin-bottom: 38px; }
.btn-row{ display:flex; gap:16px; flex-wrap:wrap; }
.btn{
  font-family: var(--mono); font-size:12px; letter-spacing:1.5px; text-transform:uppercase;
  padding: 15px 26px; border-radius:2px; display:inline-block; transition: all .2s; cursor:pointer; border:none;
}
.btn-gold{ background: var(--gold); color: var(--navy); }
.btn-gold:hover{ background: var(--gold-soft); }
.btn-ghost{ border:1px solid #33465A; color:#fff; background:transparent; }
.btn-ghost:hover{ border-color: var(--gold); color: var(--gold); }
.hero-meta{ position:absolute; bottom: 40px; left:0; right:0; z-index:2; }
.hero-meta .wrap{ display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:16px; }
.hero-meta span{ font-family: var(--mono); font-size:11px; color:#5C6C7C; letter-spacing:1px; }

/* ---------- Sub-page banner ---------- */
.subhero{
  background: var(--navy); position:relative; overflow:hidden; padding: 168px 0 70px;
}
.subhero::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(180deg, rgba(11,27,44,0.5), rgba(11,27,44,0.94)),
    radial-gradient(ellipse 700px 400px at 90% 10%, rgba(201,162,39,0.12), transparent 60%);
}
.subhero-bg{ position:absolute; inset:0; z-index:0; background-size:cover; background-position:center; opacity:0.28; }
.subhero .wrap{ position:relative; z-index:2; }
.subhero h1{ font-size: clamp(32px, 4.6vw, 50px); color:#fff; line-height:1.15; max-width:720px; }
.subhero p{ font-size:16px; color:#B9C2CB; max-width:560px; margin-top:18px; }
.crumb{ font-family: var(--mono); font-size:11px; color:#6E7A87; letter-spacing:1.5px; margin-bottom:16px; }
.crumb a:hover{ color: var(--gold); }

/* ---------- Trust badges bar ---------- */
.badges{ background: var(--navy2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding: 26px 0; }
.badges-row{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:18px 32px; }
.badge-item{ display:flex; align-items:center; gap:10px; }
.badge-item .mark{ color: var(--gold); font-family: var(--serif); font-size:16px; }
.badge-item span{ font-family: var(--mono); font-size:11px; letter-spacing:1px; color:#C7CDD3; text-transform:uppercase; white-space:nowrap; }

/* ---------- Mission strip ---------- */
.mission{ background: var(--gold); padding: 46px 0; }
.mission .wrap{ display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.mission .m-label{ font-family: var(--mono); font-size:11px; letter-spacing:2px; color: rgba(11,27,44,0.65); text-transform:uppercase; margin-bottom:8px; }
.mission h3{ color: var(--navy); font-size: clamp(20px,2.4vw,26px); max-width:760px; line-height:1.3; }

/* ---------- Rich footer ---------- */
.site-footer{ background: var(--navy3); color:#fff; padding: 60px 0 0; }
.footer-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr; gap:40px; padding-bottom:40px; }
@media (max-width: 760px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-grid .brand{ margin-bottom:14px; }
.footer-grid p{ color:#9AA7B2; font-size:13.5px; max-width:320px; line-height:1.6; }
.footer-col h4{ font-family: var(--mono); font-size:11px; letter-spacing:2px; color: var(--gold); text-transform:uppercase; margin-bottom:18px; }
.footer-col a{ display:block; color:#C7CDD3; font-size:13.5px; padding:6px 0; transition: color .2s; }
.footer-col a:hover{ color: var(--gold); }
.footer-bottom{ border-top: 1px solid rgba(255,255,255,0.08); padding: 22px 0; }
.footer-bottom .wrap{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.footer-bottom span{ font-size:11.5px; color:#5C6C7C; }

/* ---------- Section heading helper ---------- */
.sec-head{ max-width:680px; margin-bottom:54px; }
.sec-head h2{ font-size: clamp(28px,3.4vw,40px); line-height:1.15; }
.sec-head p{ font-size:15px; color: var(--muted); margin-top:14px; }
.light .sec-head h2{ color: var(--navy); }
.dark .sec-head h2{ color:#fff; }
.dark .sec-head p{ color:#AEB8C2; }

/* ---------- About ---------- */
.about{ background: var(--ivory); }
.about-grid{ display:grid; grid-template-columns: 1.1fr 0.9fr; gap: 64px; align-items:start; }
@media (max-width: 860px){ .about-grid{ grid-template-columns:1fr; } }
.about h2{ font-size: clamp(28px,3.4vw,38px); color: var(--navy); margin-bottom:22px; line-height:1.15; }
.about p{ color:#464C53; font-size:15.5px; margin-bottom:18px; max-width: 520px; }
.infocard{ background: var(--navy); color:#fff; padding: 40px; border-radius:2px; }
.infocard .big{ font-family: var(--serif); font-size:38px; color: var(--gold); font-weight:700; }
.infocard .label{ font-family: var(--mono); font-size:10px; letter-spacing:2px; color: var(--muted-light); text-transform:uppercase; margin: 6px 0 22px; }
.infocard .row{ border-top: 1px solid var(--line); padding: 18px 0; }
.infocard .row .k{ font-family: var(--mono); font-size:10px; letter-spacing:2px; color: var(--gold); text-transform:uppercase; margin-bottom:8px; }
.infocard .row .v{ font-size:14px; color:#C7CDD3; line-height:1.5; }

/* ---------- Teasers (home page links out to subpages) ---------- */
.teasers{ background:#fff; }
.teaser-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap:20px; }
@media (max-width: 1000px){ .teaser-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .teaser-grid{ grid-template-columns:1fr; } }
.teaser-card{ position:relative; overflow:hidden; aspect-ratio: 4/5; display:block; }
.teaser-card img{ width:100%; height:100%; object-fit:cover; transition: transform .4s; }
.teaser-card:hover img{ transform: scale(1.05); }
.teaser-overlay{ position:absolute; inset:0; background: linear-gradient(180deg, transparent 35%, rgba(11,27,44,0.92) 100%); display:flex; flex-direction:column; justify-content:flex-end; padding:28px; }
.teaser-tag{ font-family: var(--mono); font-size:10.5px; color: var(--gold); letter-spacing:1.5px; margin-bottom:10px; }
.teaser-overlay h3{ color:#fff; font-size:21px; margin-bottom:10px; }
.teaser-overlay p{ color:#C7CDD3; font-size:13px; line-height:1.5; margin-bottom:16px; }
.teaser-link{ font-family: var(--mono); font-size:11px; letter-spacing:1px; color: var(--gold); text-transform:uppercase; }

/* ---------- Feature split ---------- */
.feature{ background:#fff; }
.feature-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:56px; align-items:center; }
@media (max-width: 860px){ .feature-grid{ grid-template-columns:1fr; } }
.feature-photo{ position:relative; border-radius:2px; overflow:hidden; aspect-ratio: 4/3; }
.feature-photo img{ width:100%; height:100%; object-fit:cover; }
.feature-tag{
  position:absolute; top:16px; left:16px; padding:6px 12px; background: rgba(11,27,44,0.8);
  font-family: var(--mono); font-size:10.5px; color: var(--gold); letter-spacing:1.5px;
}
.feature-text h3{ font-size: clamp(24px,2.6vw,30px); color: var(--navy); margin-bottom:18px; line-height:1.2; }
.feature-text p{ color:#464C53; font-size:15px; margin-bottom:16px; }
.feature-list{ margin-top:22px; }
.feature-list div{ display:flex; gap:12px; padding:12px 0; border-top:1px solid var(--line-light); font-size:13.5px; color:#464C53; }
.feature-list div b{ color: var(--navy); min-width:150px; display:inline-block; }
.feature-reverse .feature-grid{ direction: rtl; }
.feature-reverse .feature-grid > *{ direction: ltr; }

/* ---------- Charter ---------- */
.charter{ background: var(--ivory2); }
.charter-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:24px; }
@media (max-width: 900px){ .charter-grid{ grid-template-columns:1fr; } }
.charter-card{ background:#fff; overflow:hidden; display:flex; flex-direction:column; }
.charter-photo{ position:relative; height:190px; }
.charter-photo img{ width:100%; height:100%; object-fit:cover; }
.charter-photo::after{ content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(11,27,44,0.05), rgba(11,27,44,0.6)); }
.charter-code{
  position:absolute; bottom:14px; left:16px; z-index:2; padding:5px 10px; background: rgba(11,27,44,0.78);
  font-family: var(--mono); font-size:10.5px; font-weight:600; color: var(--gold); letter-spacing:1px;
}
.charter-body{ padding:26px; flex:1; display:flex; flex-direction:column; }
.charter-body h3{ font-size:18px; color: var(--navy); margin-bottom:10px; }
.charter-body p{ font-size:13.5px; color: var(--muted); line-height:1.55; flex:1; margin-bottom:18px; }
.charter-body a{ font-family: var(--mono); font-size:11px; letter-spacing:1px; color: var(--navy); text-transform:uppercase; border-bottom:1px solid var(--gold); align-self:flex-start; padding-bottom:2px; }
.charter-body a:hover{ color: var(--gold); }

/* ---------- Parts & MRO ---------- */
.parts{ background:#fff; }
.parts-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:24px; }
@media (max-width: 760px){ .parts-grid{ grid-template-columns:1fr; } }
.parts-card{ position:relative; overflow:hidden; aspect-ratio: 5/4; }
.parts-card img{ width:100%; height:100%; object-fit:cover; transition: transform .4s; }
.parts-card:hover img{ transform: scale(1.04); }
.parts-overlay{ position:absolute; inset:0; background: linear-gradient(180deg, transparent 40%, rgba(11,27,44,0.88) 100%); display:flex; flex-direction:column; justify-content:flex-end; padding:28px; }
.parts-overlay .tag{ font-family: var(--mono); font-size:10.5px; color: var(--gold); letter-spacing:1.5px; margin-bottom:10px; }
.parts-overlay h3{ color:#fff; font-size:20px; margin-bottom:10px; }
.parts-overlay p{ color:#C7CDD3; font-size:13px; line-height:1.5; max-width:340px; }

/* ---------- Process ---------- */
.process{ background: var(--navy); color:#fff; }
.proc-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 50px; }
@media (max-width: 800px){ .proc-grid{ grid-template-columns:1fr; gap:40px; } }
.proc-num{ font-family: var(--serif); font-size:44px; color:#1E3348; font-weight:700; margin-bottom:14px; }
.proc-rule{ width:44px; height:2px; background: var(--gold); margin-bottom:18px; }
.proc-grid h3{ font-size:18px; color:#fff; margin-bottom:14px; }
.proc-grid p{ font-size:14px; color:#AEB8C2; line-height:1.6; }

/* ---------- Why ---------- */
.why{ background: var(--ivory); }
.why-grid{ display:grid; grid-template-columns: repeat(2,1fr); gap: 44px 60px; }
@media (max-width: 760px){ .why-grid{ grid-template-columns:1fr; } }
.why-item{ display:flex; gap:16px; }
.dot{ width:9px; height:9px; border-radius:50%; background: var(--gold); margin-top:9px; flex-shrink:0; }
.why-item h3{ font-size:16.5px; color: var(--navy); margin-bottom:8px; }
.why-item p{ font-size:14px; color: var(--muted); line-height:1.6; }

/* ---------- Reach ---------- */
.reach{ background:#fff; }
.reach-grid{ display:grid; grid-template-columns: 1.1fr 0.9fr; gap:60px; align-items:start; }
@media (max-width: 860px){ .reach-grid{ grid-template-columns:1fr; } }
.reach h2{ font-size: clamp(28px,3.4vw,38px); color: var(--navy); margin-bottom:20px; }
.reach > .reach-grid > div:first-child > p{ color:#464C53; font-size:15px; margin-bottom: 36px; max-width:480px; }
.region-row{ display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--line-light); padding:18px 0; flex-wrap:wrap; }
.region-row .r{ font-weight:600; color: var(--navy); font-size:15px; }
.region-row .d{ color: var(--muted); font-size:13.5px; }

/* ---------- Engagement ---------- */
.engage{ background: var(--navy); color:#fff; }
.eng-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:22px; }
@media (max-width: 860px){ .eng-grid{ grid-template-columns:1fr; } }
.eng-card{ background: var(--navy2); padding: 36px 30px; border-radius:2px; }
.eng-card h3{ color: var(--gold); font-size:17px; margin-bottom:16px; }
.eng-card p{ color:#C7CDD3; font-size:13.5px; line-height:1.65; }

/* ---------- Quote Form ---------- */
.quote{ background: var(--ivory2); }
.quote-grid{ display:grid; grid-template-columns: 0.9fr 1.1fr; gap:56px; align-items:start; }
@media (max-width: 860px){ .quote-grid{ grid-template-columns:1fr; } }
.quote h2{ font-size: clamp(28px,3.4vw,38px); color: var(--navy); margin-bottom:18px; line-height:1.15; }
.quote > .quote-grid > div:first-child > p{ color:#464C53; font-size:15px; margin-bottom:26px; max-width:420px; }
.quote-points div{ display:flex; gap:12px; padding:14px 0; border-top:1px solid var(--line-light); font-size:13.5px; color:#464C53; align-items:flex-start; }
.quote-points .dot{ margin-top:6px; }
.quote-form{ background:#fff; padding:36px; border-radius:2px; }
.qf-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
@media (max-width: 540px){ .qf-row{ grid-template-columns:1fr; } }
.qf-group{ display:flex; flex-direction:column; gap:6px; }
.qf-group label{ font-family: var(--mono); font-size:10px; letter-spacing:1.5px; color: var(--muted); text-transform:uppercase; }
.qf-group input, .qf-group select, .qf-group textarea{
  font-family: var(--sans); font-size:14px; padding:11px 12px; border:1px solid var(--line-light);
  border-radius:2px; background: var(--ivory); color: var(--charcoal); width:100%;
}
.qf-group input:focus, .qf-group select:focus, .qf-group textarea:focus{ outline:none; border-color: var(--gold); }
.qf-full{ grid-column: 1 / -1; }
.qf-types{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:18px; }
.qf-type-opt{ display:none; }
.qf-type-label{
  font-family: var(--mono); font-size:11px; letter-spacing:1px; text-transform:uppercase; padding:10px 16px;
  border:1px solid var(--line-light); border-radius:2px; cursor:pointer; color: var(--muted); transition: all .15s;
}
.qf-type-opt:checked + .qf-type-label{ background: var(--navy); color: var(--gold); border-color: var(--navy); }
.qf-submit{ margin-top:6px; width:100%; text-align:center; }
.qf-note{ font-size:11.5px; color: var(--muted-light); margin-top:14px; }
.qf-success{ display:none; text-align:center; padding:40px 20px; }
.qf-success.show{ display:block; }
.qf-success h3{ color: var(--navy); font-size:22px; margin-bottom:10px; }
.qf-success p{ color: var(--muted); font-size:14px; }

/* ---------- Contact ---------- */
.contact{ background: var(--navy3); color:#fff; padding-bottom: 0; }
.contact-inner{ padding: 110px 0 60px; }
.contact h2{ font-size: clamp(32px,4.6vw,50px); color:#fff; line-height:1.1; margin-bottom: 8px; }
.contact h2 em{ font-style: italic; color: var(--gold); }
.contact-rule{ width:60px; height:2px; background: var(--gold); margin: 30px 0; }
.contact-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 30px; margin-top: 10px; }
@media (max-width: 760px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-grid .k{ font-family: var(--mono); font-size:10px; letter-spacing:2px; color: var(--gold); text-transform:uppercase; margin-bottom:10px; }
.contact-grid .v{ font-size:14.5px; color:#E3E7EA; line-height:1.5; }
footer{ border-top: 1px solid rgba(255,255,255,0.08); padding: 26px 0; margin-top: 64px; }
footer .wrap{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }
footer span{ font-size:11.5px; color:#5C6C7C; }

.reveal{ opacity:0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
  .flightpath path.draw{ animation:none; stroke-dashoffset:0; }
}
