/* ============================================
   Adventure Air Flight Training — Master Stylesheet
   Aviation-luxury editorial aesthetic
   ============================================ */

:root{
  --ink:#0a1628;
  --ink-2:#0f1e36;
  --ink-3:#152a48;
  --ink-4:#1d3a5f;
  --paper:#f4ede2;
  --paper-2:#ebe2d2;
  --gold:#c9a961;
  --gold-bright:#e3c074;
  --gold-deep:#a8893f;
  --sky:#7ba7c4;
  --sky-deep:#3d6b8c;
  --red:#a8392c;
  --line:rgba(244,237,226,0.12);
  --line-strong:rgba(244,237,226,0.24);
  --shadow-soft:0 4px 20px rgba(0,0,0,0.3);
  --shadow-deep:0 20px 60px rgba(0,0,0,0.5);
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
/* Fixed-nav offset for native anchor scrolls (JS handles the precise case).
   Targets the form card so its top heading lands just below the nav bar. */
#lead-form{scroll-margin-top:90px}
.form-wrap{scroll-margin-top:90px}
@media (max-width:1100px){
  #lead-form{scroll-margin-top:80px}
  .form-wrap{scroll-margin-top:80px}
}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  background:var(--ink);
  color:var(--paper);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
input,textarea,select{font-family:inherit;font-size:inherit}

/* ============================================
   NAVIGATION
   ============================================ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:rgba(10,22,40,0.92);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--line);
  transition:background .3s, border-color .3s;
}
.nav-inner{
  max-width:1400px;margin:0 auto;
  padding:18px 40px;
  display:flex;align-items:center;justify-content:space-between;
  gap:32px;
}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand-logo{
  height:48px;width:auto;display:block;
  transition:opacity .25s, transform .3s;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,0.25));
}
.brand:hover .brand-logo{opacity:.85}
.brand-footer .brand-logo{height:56px;margin-bottom:6px}
/* Legacy brand classes kept for backward compatibility but unused */
.brand-mark{
  width:44px;height:44px;border-radius:50%;
  border:1.5px solid var(--gold);
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);
  background:rgba(201,169,97,0.08);
  flex-shrink:0;
  transition:transform .3s, background .3s;
}
.brand:hover .brand-mark{transform:rotate(-15deg);background:rgba(201,169,97,0.18)}
.brand-mark svg{width:22px;height:22px;fill:currentColor}
.brand-text{display:flex;flex-direction:column;line-height:1}
.brand-name{
  font-family:'Fraunces',serif;
  font-size:22px;font-weight:500;
  color:var(--paper);
  letter-spacing:-.01em;
}
.brand-tag{
  font-family:'JetBrains Mono',monospace;
  font-size:9px;letter-spacing:2px;
  color:var(--gold);margin-top:3px;
}
.nav-links{
  list-style:none;
  display:flex;align-items:center;gap:8px;
}
.nav-links > li > a{
  display:inline-block;
  padding:10px 16px;
  font-size:14px;font-weight:500;
  color:rgba(244,237,226,0.75);
  letter-spacing:.01em;
  transition:color .2s;
  position:relative;
}
.nav-links > li > a:hover{color:var(--paper)}
.nav-links > li > a.active{color:var(--gold)}

/* Dropdown */
.nav-dropdown{position:relative}
.nav-dropdown-menu{
  position:absolute;top:100%;left:0;
  min-width:240px;
  background:var(--ink-2);
  border:1px solid var(--line);
  list-style:none;
  padding:8px;
  opacity:0;visibility:hidden;
  transform:translateY(-8px);
  transition:.25s;
  box-shadow:var(--shadow-deep);
}
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu{
  opacity:1;visibility:visible;transform:translateY(0);
}
.nav-dropdown-menu li a{
  display:block;padding:12px 16px;
  font-size:14px;color:rgba(244,237,226,0.8);
  border-radius:2px;transition:.2s;
}
.nav-dropdown-menu li a:hover{
  background:var(--ink-3);color:var(--gold);
}

/* CTA buttons in nav (desktop) */
.nav-cta-group{display:flex;align-items:stretch;gap:10px;margin-left:8px}
.nav-call{
  display:inline-flex;align-items:center;gap:10px;
  padding:0 18px;
  border:1px solid var(--line-strong);
  font-family:'JetBrains Mono',monospace;
  font-size:13px;font-weight:500;letter-spacing:.5px;
  color:var(--paper);
  transition:.25s;
  background:transparent;
  text-decoration:none;
  height:44px;
  box-sizing:border-box;
}
.nav-call:hover{border-color:var(--gold);color:var(--gold);background:rgba(201,169,97,0.06)}
.nav-call svg{width:14px;height:14px;fill:currentColor;flex-shrink:0}
.nav-book{
  display:inline-flex;align-items:center;justify-content:center;
  padding:0 22px;
  background:var(--gold);
  color:var(--ink)!important;
  font-family:'JetBrains Mono',monospace;
  font-size:12px;font-weight:600;letter-spacing:1.5px;
  text-transform:uppercase;
  transition:.25s;
  position:relative;overflow:hidden;
  text-decoration:none;
  height:44px;
  box-sizing:border-box;
}
.nav-book::before{
  content:'';position:absolute;inset:0;
  background:var(--gold-bright);
  transform:translateX(-100%);
  transition:transform .3s;
}
.nav-book span{position:relative;z-index:1}
.nav-book:hover::before{transform:translateX(0)}

/* Mobile CTAs — always visible, sit outside the hamburger menu */
.nav-mobile-cta{display:none;align-items:stretch;gap:8px;margin-left:auto;margin-right:4px}
.nav-mobile-call{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  height:42px;padding:0 14px;
  border:1px solid var(--gold);
  background:transparent;
  color:var(--gold);
  font-family:'JetBrains Mono',monospace;
  font-size:11px;font-weight:600;letter-spacing:1px;
  text-transform:uppercase;
  text-decoration:none;
  transition:.2s;
  box-sizing:border-box;
}
.nav-mobile-call:active,.nav-mobile-call:hover{background:rgba(201,169,97,0.12)}
.nav-mobile-call svg{width:14px;height:14px;fill:currentColor;flex-shrink:0}
.nav-mobile-book{
  display:inline-flex;align-items:center;justify-content:center;
  height:42px;padding:0 14px;
  background:var(--gold);
  color:var(--ink);
  font-family:'JetBrains Mono',monospace;
  font-size:11px;font-weight:600;letter-spacing:1px;
  text-transform:uppercase;
  text-decoration:none;
  transition:.2s;
  box-sizing:border-box;
}
.nav-mobile-book:active,.nav-mobile-book:hover{background:var(--gold-bright)}

/* Form pill styles (global - both pages use these) */
.multi-hint{
  font-family:'Inter',sans-serif;
  font-size:10px;letter-spacing:.5px;
  color:rgba(244,237,226,0.4);
  text-transform:none;font-weight:400;
  margin-left:8px;
}
.pill.active::after{content:' ✓';font-weight:600;margin-left:2px}

/* Mobile menu toggle */
.nav-toggle{
  display:none;
  width:40px;height:40px;
  flex-direction:column;justify-content:center;align-items:center;
  gap:5px;
  border:1px solid var(--line-strong);
}
.nav-toggle span{display:block;width:18px;height:1.5px;background:var(--paper);transition:.3s}
.nav-toggle.active span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-toggle.active span:nth-child(2){opacity:0}
.nav-toggle.active span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

@media (max-width:1100px){
  .nav-inner{padding:14px 20px;gap:12px}
  .nav-mobile-cta{display:flex}
  .nav-links{
    position:fixed;top:73px;left:0;right:0;
    background:var(--ink-2);
    flex-direction:column;align-items:stretch;
    padding:24px;gap:4px;
    border-bottom:1px solid var(--line);
    transform:translateY(-110%);
    transition:.4s;
    box-shadow:var(--shadow-deep);
    max-height:calc(100vh - 73px);
    overflow-y:auto;
  }
  .nav-links.open{transform:translateY(0)}
  .nav-links > li{width:100%}
  .nav-links > li > a{padding:14px 16px;font-size:16px}
  .nav-dropdown-menu{
    position:static;
    opacity:1;visibility:visible;transform:none;
    background:var(--ink-3);
    box-shadow:none;
    margin:4px 0 0 16px;
  }
  /* Hide the in-menu desktop CTAs on mobile since we have the always-visible ones */
  .nav-cta-group{display:none}
  .nav-toggle{display:flex}
}

/* Mid-mobile — hide the full phone number, show just icon */
@media (max-width:520px){
  .nav-mobile-call span{display:none}
  .nav-mobile-call{padding:0 12px;gap:0}
}
/* Tiny screens — compact everything */
@media (max-width:420px){
  .nav-inner{padding:12px 14px;gap:8px}
  .nav-mobile-book{padding:0 12px;font-size:10px}
  .brand-logo{height:34px}
}

/* ============================================
   PAGE HERO (sub-pages)
   ============================================ */
.page-hero{
  padding:160px 40px 80px;
  position:relative;
  background:var(--ink);
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.page-hero::before{
  content:'';position:absolute;inset:0;
  background-image:radial-gradient(circle at 20% 30%,rgba(201,169,97,0.06),transparent 50%),radial-gradient(circle at 80% 70%,rgba(123,167,196,0.05),transparent 50%);
  pointer-events:none;
}
.page-hero-inner{max-width:1280px;margin:0 auto;position:relative}
.breadcrumb{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:2px;
  color:rgba(244,237,226,0.5);
  text-transform:uppercase;
  margin-bottom:24px;
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
}
.breadcrumb a{color:var(--gold);transition:opacity .2s}
.breadcrumb a:hover{opacity:.7}
.breadcrumb span:not(:last-child){opacity:.4}
.page-eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:3px;
  color:var(--gold);text-transform:uppercase;
  margin-bottom:24px;
}
.page-title{
  font-family:'Fraunces',serif;
  font-size:clamp(48px,7vw,84px);
  font-weight:300;line-height:.98;
  letter-spacing:-.03em;
  color:var(--paper);
  margin-bottom:24px;
}
.page-title em{font-style:italic;color:var(--gold);font-weight:400}
.page-lede{
  font-size:clamp(17px,1.5vw,21px);
  line-height:1.65;
  color:rgba(244,237,226,0.7);
  max-width:680px;
}

/* ============================================
   BUTTONS
   ============================================ */
.btn-gold{
  display:inline-block;padding:18px 36px;
  background:var(--gold);color:var(--ink);
  font-family:'JetBrains Mono',monospace;
  font-size:12px;letter-spacing:2px;font-weight:600;
  text-transform:uppercase;text-decoration:none;
  transition:.25s;
  position:relative;overflow:hidden;
}
.btn-gold::before{
  content:'';position:absolute;inset:0;
  background:var(--gold-bright);
  transform:translateX(-100%);
  transition:transform .3s;
}
.btn-gold span{position:relative;z-index:1}
.btn-gold:hover::before{transform:translateX(0)}
.btn-ghost{
  display:inline-block;padding:18px 36px;
  border:1px solid var(--line-strong);
  color:var(--paper);
  font-family:'JetBrains Mono',monospace;
  font-size:12px;letter-spacing:2px;font-weight:500;
  text-transform:uppercase;text-decoration:none;
  transition:.25s;background:transparent;
}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}

/* ============================================
   FOOTER
   ============================================ */
.footer{
  background:#070f1c;
  padding:80px 40px 0;
  border-top:1px solid var(--line);
  position:relative;
}
.footer-inner{max-width:1400px;margin:0 auto}
.footer-grid{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:60px;
  padding-bottom:60px;
}
.footer-about p{
  font-size:14px;line-height:1.7;
  color:rgba(244,237,226,0.55);
  margin:24px 0 24px;
  max-width:380px;
}
.footer-social{display:flex;gap:10px}
.footer-social a{
  width:40px;height:40px;
  border:1px solid var(--line-strong);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:rgba(244,237,226,0.6);
  transition:.25s;
}
.footer-social a:hover{
  border-color:var(--gold);color:var(--gold);
  transform:translateY(-2px);
}
.footer-social svg{width:16px;height:16px;fill:currentColor}
.footer-grid h4{
  font-family:'Fraunces',serif;font-weight:500;
  font-size:15px;color:var(--gold);
  margin-bottom:24px;letter-spacing:.02em;
}
.footer-grid ul{list-style:none}
.footer-grid ul li{margin-bottom:12px}
.footer-grid ul li a{
  font-size:14px;color:rgba(244,237,226,0.6);
  transition:color .2s;line-height:1.5;
}
.footer-grid ul li a:hover{color:var(--gold)}
.footer-map{
  margin:0 0 60px;
  border:1px solid var(--line);
  overflow:hidden;
  position:relative;
}
.footer-map iframe{
  width:100%;height:340px;
  border:0;display:block;
  filter:grayscale(.3) contrast(1.05);
}
.footer-bottom{
  padding:24px 0;
  border-top:1px solid var(--line);
  display:flex;justify-content:space-between;
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:2px;
  color:rgba(244,237,226,0.4);
  text-transform:uppercase;
  flex-wrap:wrap;gap:16px;
}
.footer-bottom a{transition:color .2s}
.footer-bottom a:hover{color:var(--gold)}

@media (max-width:900px){
  .footer{padding:60px 24px 0}
  .footer-grid{grid-template-columns:1fr;gap:40px}
  .footer-bottom{flex-direction:column;text-align:center}
}

/* ============================================
   GENERIC SECTIONS / UTILITIES
   ============================================ */
.section{padding:120px 40px}
.section-narrow{max-width:1100px;margin:0 auto}
.section-wide{max-width:1400px;margin:0 auto}

@media (max-width:768px){
  .nav-inner{padding:14px 20px}
  .page-hero{padding:130px 20px 60px}
  .section{padding:80px 20px}
  .footer{padding:60px 20px 0}
  .brand-logo{height:38px}
  .brand-footer .brand-logo{height:48px}
}

/* Reveal animations */
@keyframes fadeUp{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}
.reveal{
  opacity:0;
  animation:fadeUp .8s ease forwards;
}
.reveal:nth-child(2){animation-delay:.1s}
.reveal:nth-child(3){animation-delay:.2s}
.reveal:nth-child(4){animation-delay:.3s}

/* Skip-to-content for accessibility */
.skip-link{
  position:absolute;left:-9999px;top:0;
  background:var(--gold);color:var(--ink);
  padding:12px 20px;z-index:9999;
  font-family:'JetBrains Mono',monospace;
  font-size:12px;
}
.skip-link:focus{left:8px;top:8px}

/* Selection */
::selection{background:var(--gold);color:var(--ink)}

/* ---------- IMAGE FALLBACKS (global) ---------- */
/* If an <img data-fallback> fails to load, its data-img-wrap parent gets
   .img-failed via JS; this shows a navy gradient with a subtle gold grid
   so missing images look intentional, not broken. */
[data-img-wrap]{position:relative;background:var(--ink-2)}
[data-img-wrap].img-failed{
  background:linear-gradient(135deg, var(--ink-2) 0%, var(--ink-3) 50%, var(--ink-2) 100%) !important;
}
[data-img-wrap].img-failed::before{
  content:'';position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(201,169,97,0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,169,97,0.08) 1px, transparent 1px);
  background-size:40px 40px;
  pointer-events:none;
}
