/* Light theme only */
:root{
  --bg:#F2F0E9;
  --surface:#FFFFFF;
  --surface-2:#E8E4DA;
  --text:#0A1628;
  --text-muted:#5A574E;
  --text-soft:#2A3340;
  --footer-muted:#6B6860;
  --accent:#C4892E;
  --accent-hover:#D49A3E;
  --cta-ink:#0A1628;
  --steel:#3D6F8A;
  --alert:#C1502E;
  --line:rgba(10,22,40,0.12);
  --header-bg:rgba(242,240,233,0.9);
  --header-bg-solid:rgba(255,255,255,0.98);
  --hero-scrim:linear-gradient(90deg, rgba(242,240,233,0.96) 0%, rgba(242,240,233,0.82) 38%, rgba(242,240,233,0.35) 68%, rgba(242,240,233,0.08) 100%);
  --hero-scrim-mobile:linear-gradient(180deg, rgba(242,240,233,0.92) 0%, rgba(242,240,233,0.78) 50%, rgba(242,240,233,0.9) 100%);
  --hero-fallback:linear-gradient(150deg,#E8E4DA 0%, #F2F0E9 55%, #FFFFFF 100%);
  --media-bg:#D9D4C8;
  --play-overlay:rgba(10,22,40,0.25);
  --caption:rgba(10,22,40,0.7);
  --navy-deep:var(--bg);
  --navy-panel:var(--surface);
  --navy-panel-2:var(--surface-2);
  --cloud:var(--text);
  --amber:var(--accent);
  color-scheme:light;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Source Sans 3',sans-serif;
  line-height:1.6;
  overflow-x:hidden;
}
h1,h2,h3{
  font-family:'Big Shoulders Display',sans-serif;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:0.5px;
  line-height:1.05;
}
.mono{
  font-family:'IBM Plex Mono',monospace;
  letter-spacing:1.5px;
  text-transform:uppercase;
  font-size:0.75rem;
}
a{color:inherit;text-decoration:none;}
img,video{max-width:100%;display:block;}

/* ---------- NAV ---------- */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;
  padding:18px 32px;
  background:var(--header-bg);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.logo{
  display:flex;align-items:center;
  line-height:0;
  flex-shrink:0;
}
.logo img{
  height:44px;width:auto;
  display:block;
}
.header-actions{
  display:flex;align-items:center;gap:12px;
  flex-shrink:0;
}
nav ul{display:flex;gap:28px;list-style:none;}
nav a{font-size:0.9rem;font-weight:500;transition:color 0.2s;}
nav a:hover{color:var(--accent);}
.nav-toggle{
  display:none;background:none;border:none;color:var(--text);
  font-size:1.5rem;cursor:pointer;line-height:1;
}
.nav-cta{flex-shrink:0;}

.mobile-nav{
  display:none;
  position:fixed;top:64px;left:0;right:0;z-index:99;
  background:var(--header-bg-solid);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  padding:16px 24px 24px;
}
.mobile-nav.open{display:block;}
.mobile-nav ul{list-style:none;display:flex;flex-direction:column;gap:16px;}
.mobile-nav a{font-size:1.05rem;font-weight:500;}
.cta-btn{
  display:inline-block;
  background:var(--accent);
  color:var(--cta-ink);
  font-family:'IBM Plex Mono',monospace;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:1px;
  font-size:0.8rem;
  padding:12px 24px;
  border-radius:2px;
  transition:transform 0.2s, background 0.2s;
}
.cta-btn:hover{background:var(--accent-hover);transform:translateY(-2px);}
.cta-btn.outline{
  background:transparent;
  color:var(--text);
  border:1px solid var(--text);
}
.cta-btn.outline:hover{background:var(--text);color:var(--bg);}
.cta-btn:disabled{opacity:0.6;cursor:not-allowed;transform:none;}

/* ---------- FLIGHT PROFILE TRACKER ---------- */
#flight-track{
  position:fixed;
  left:28px;top:0;bottom:0;
  width:60px;
  z-index:50;
  pointer-events:none;
  display:flex;align-items:center;
}
#flight-track svg{width:100%;height:70vh;overflow:visible;}
#flight-track path{
  fill:none;stroke:var(--line);stroke-width:2;
}
#plane-marker{
  fill:var(--accent);
  transition:offset-distance 0.15s linear, transform 0.15s linear;
}
@media (max-width:900px){ #flight-track{display:none;} }

.phase-tag{
  display:inline-block;
  font-family:'IBM Plex Mono',monospace;
  font-size:0.75rem;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--accent);
  border:1px solid var(--accent);
  padding:5px 14px;
  border-radius:2px;
  margin-bottom:20px;
}

section{
  padding:120px 8vw;
  position:relative;
}
.section-inner{max-width:1180px;margin:0 auto;}

/* ---------- HERO ---------- */
#hero{
  min-height:100vh;
  display:grid;
  grid-template-columns:1fr;
  padding:0;
  position:relative;
  overflow:hidden;
}
.hero-photo{
  position:absolute;inset:0;
  background:
    var(--hero-scrim),
    url('../images/IMG_2004.jpg') center right / cover no-repeat,
    var(--hero-fallback);
}
.hero-content{
  position:relative;z-index:2;max-width:720px;
  padding:180px 8vw 100px;
}
.hero-tagline{
  font-family:'IBM Plex Mono',monospace;font-size:0.8rem;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--steel);margin-bottom:20px;
}
#hero h1{font-size:clamp(2.6rem,5.5vw,4.6rem);margin-bottom:24px;}
#hero h1 em{font-style:normal;color:var(--accent);}
#hero p{font-size:1.1rem;max-width:520px;color:var(--text-soft);margin-bottom:36px;}
#hero p .highlight{color:var(--accent);font-weight:600;}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap;}
@media (max-width:900px){
  .hero-content{padding:150px 6vw 80px;}
  .hero-photo{
    background:
      var(--hero-scrim-mobile),
      url('../images/IMG_2004.jpg') center / cover no-repeat,
      var(--hero-fallback);
  }
}

/* ---------- WHY CHOOSE US ---------- */
#why{background:var(--surface);}
.section-head{margin-bottom:56px;max-width:640px;}
.section-head h2{font-size:clamp(2rem,4vw,3rem);margin-bottom:16px;}
.section-head p{color:var(--text-muted);}
.card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:24px;
}
.card{
  background:var(--surface-2);
  border:1px solid var(--line);
  padding:32px 28px;
  border-radius:4px;
  transition:border-color 0.2s, transform 0.2s;
}
.card:hover{border-color:var(--accent);transform:translateY(-4px);}
.card h3{font-size:1.2rem;margin-bottom:10px;color:var(--text);}
.card p{color:var(--text-muted);font-size:0.95rem;}
.card-icon{
  width:36px;height:36px;margin-bottom:18px;
  border:1px solid var(--accent);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--accent);font-family:'IBM Plex Mono',monospace;font-size:0.9rem;
}

/* ---------- FLIGHT EXPERIENCE / VIDEO ---------- */
#experience{background:var(--bg);}
.video-frame{
  position:relative;
  aspect-ratio:16/9;
  border-radius:4px;
  overflow:hidden;
  border:1px solid var(--line);
  background:var(--media-bg);
}
.video-frame video{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
}
.video-frame .play-overlay{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  background:var(--play-overlay);
  cursor:pointer;
  border:none;
  transition:opacity 0.25s, background 0.25s;
}
.video-frame .play-overlay.hidden{opacity:0;pointer-events:none;}
.video-frame .play-btn{
  width:76px;height:76px;border-radius:50%;
  background:rgba(227,169,75,0.95);
  display:flex;align-items:center;justify-content:center;
  pointer-events:none;
}
.video-frame .play-btn::before{
  content:"";
  border-left:22px solid var(--cta-ink);
  border-top:13px solid transparent;
  border-bottom:13px solid transparent;
  margin-left:6px;
}
.video-frame figcaption{
  position:absolute;bottom:16px;left:20px;z-index:2;
  font-family:'IBM Plex Mono',monospace;font-size:0.7rem;
  color:var(--caption);
  pointer-events:none;
}

/* ---------- COURSES ---------- */
#courses{background:var(--surface);}
.course-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:2px;
  background:var(--line);
  border:1px solid var(--line);
}
.course-item{
  background:var(--surface);
  padding:36px 26px;
  transition:background 0.2s;
}
.course-item:hover{background:var(--surface-2);}
.course-item .mono{color:var(--steel);display:block;margin-bottom:12px;}
.course-item h3{font-size:1.15rem;}
.main-courses{background:transparent;border:none;gap:24px;}
.course-main{
  background:var(--surface-2);
  border:1px solid var(--line);
  border-radius:4px;
  padding:32px 28px;
}
.course-main:hover{border-color:var(--accent);}
.course-main h3{font-size:1.5rem;margin-bottom:10px;}
.course-sub{color:var(--text-muted);font-size:0.9rem;}
.subject-list{
  margin-top:20px;padding-top:18px;
  border-top:1px solid var(--line);
  font-size:0.85rem;color:var(--text-muted);
  line-height:1.7;
}
.subject-list-label{
  font-family:'IBM Plex Mono',monospace;
  font-size:0.68rem;letter-spacing:1px;text-transform:uppercase;
  color:var(--accent);
  display:block;margin-bottom:6px;
}
.subjects-block{margin-top:64px;}
.subjects-heading{
  font-size:1.4rem;margin-bottom:28px;
  color:var(--text);
  border-left:3px solid var(--accent);
  padding-left:16px;
}
.subject-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:20px;
}
.subject-card{
  background:var(--surface-2);
  border:1px solid var(--line);
  border-radius:4px;
  padding:24px 26px;
}
.subject-card:hover{border-color:var(--steel);}
.subject-card h4{
  font-family:'Big Shoulders Display',sans-serif;
  font-weight:800;text-transform:uppercase;
  font-size:1.1rem;letter-spacing:0.5px;
  color:var(--steel);margin-bottom:10px;
}
.subject-card p{color:var(--text-muted);font-size:0.9rem;}

/* ---------- INSTRUCTORS ---------- */
#instructors{background:var(--bg);}
.instructor-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:24px;
}
.instructor-card{
  border:1px solid var(--line);
  border-radius:4px;
  background:var(--surface);
  padding:28px 26px;
  transition:border-color 0.2s;
}
.instructor-card:hover{border-color:var(--accent);}
.instructor-card h3{font-size:1.35rem;margin-bottom:8px;}
.instructor-card .role{
  color:var(--accent);
  font-family:'IBM Plex Mono',monospace;
  font-size:0.72rem;
  letter-spacing:1.5px;
  text-transform:uppercase;
  display:block;
  margin-bottom:14px;
}
.instructor-card p{color:var(--text-muted);font-size:0.95rem;}

/* ---------- TESTIMONIALS ---------- */
#testimonials{background:var(--surface);}
.testi-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:24px;
}
.testi-card{
  background:var(--surface-2);
  border-left:3px solid var(--accent);
  padding:28px;
  border-radius:0 4px 4px 0;
}
.testi-card p{color:var(--text-soft);font-style:italic;margin-bottom:16px;}
.testi-name{font-family:'IBM Plex Mono',monospace;font-size:0.8rem;color:var(--steel);}

/* ---------- GALLERY ---------- */
#gallery{background:var(--bg);}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:180px;
  gap:8px;
}
.gallery-grid a,
.gallery-grid figure{
  margin:0;
  border-radius:2px;
  overflow:hidden;
  position:relative;
  background:var(--media-bg);
}
.gallery-grid img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform 0.4s ease;
}
.gallery-grid a:hover img{transform:scale(1.04);}
.gallery-grid a:nth-child(1){grid-column:span 2;grid-row:span 2;}
.gallery-grid a:nth-child(6){grid-column:span 2;}
@media (max-width:700px){
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px;}
  .gallery-grid a:nth-child(1){grid-column:span 2;grid-row:span 1;}
}

/* ---------- FAQ ---------- */
#faq{background:var(--surface);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{
  padding:24px 0;
  display:flex;justify-content:space-between;align-items:center;
  cursor:pointer;font-size:1.05rem;font-weight:600;
  gap:16px;
}
.faq-q .icon{font-family:'IBM Plex Mono',monospace;color:var(--accent);transition:transform 0.2s;flex-shrink:0;}
.faq-item.open .icon{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height 0.3s ease;color:var(--text-muted);}
.faq-item.open .faq-a{max-height:240px;padding-bottom:20px;}

/* ---------- CONTACT ---------- */
#contact{background:var(--bg);}
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;}
.contact-info .mono{color:var(--steel);margin-bottom:6px;display:block;}
.contact-info > div{margin-bottom:28px;}
.contact-info a:hover{color:var(--accent);}
.contact-phones{display:flex;flex-direction:column;gap:6px;align-items:flex-start;}
.contact-phones .mono{margin-bottom:4px;}
.query-form{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:4px;
  padding:32px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.query-form label:nth-last-child(3),
.query-form label:has(textarea),
.query-form button,
.query-form #form-status{
  grid-column:1 / -1;
}
@media (max-width:600px){
  .query-form{grid-template-columns:1fr;}
}
.query-form label{
  display:flex;flex-direction:column;gap:8px;
  font-family:'IBM Plex Mono',monospace;font-size:0.72rem;
  letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);
}
.query-form input, .query-form select, .query-form textarea{
  font-family:'Source Sans 3',sans-serif;
  font-size:0.95rem;
  background:var(--surface-2);
  border:1px solid var(--line);
  border-radius:2px;
  color:var(--text);
  padding:12px 14px;
  resize:vertical;
}
.query-form input:focus, .query-form select:focus, .query-form textarea:focus{
  outline:none;border-color:var(--accent);
}
.query-form option{background:var(--surface);color:var(--text);}
.query-form button{border:none;cursor:pointer;}
#form-status{margin-top:4px;}
#form-status.error{color:var(--alert);}
#form-status.ok{color:var(--steel);}
@media (max-width:800px){.contact-grid{grid-template-columns:1fr;gap:32px;}}

footer{
  padding:32px 8vw;
  border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:12px;
  font-size:0.85rem;color:var(--footer-muted);
  background:var(--bg);
}

@media (max-width:900px){
  header{padding:14px 20px;}
  nav.desktop-nav{display:none;}
  .nav-toggle{display:block;}
  .nav-cta{display:none;}
  section{padding:90px 6vw;}
}
