/* ============================================================
   Guthrie Aviation — Making the Difference…!
   Design system  ·  brand yellow #FFD523 on dark
   ============================================================ */
:root{
  --gold:#FFD523;
  --gold-deep:#E9BE00;
  --ink:#0d0f12;          /* near-black */
  --ink-2:#14171c;
  --ink-3:#1c2027;
  --line:rgba(255,255,255,.10);
  --paper:#ffffff;
  --paper-2:#f5f6f8;
  --paper-3:#eceef1;
  --text:#1a1d22;
  --text-soft:#525862;
  --text-invert:#f4f5f7;
  --text-invert-soft:#a9b0bb;
  --radius:14px;
  --radius-lg:22px;
  --shadow-sm:0 2px 10px rgba(13,15,18,.08);
  --shadow:0 18px 45px -20px rgba(13,15,18,.35);
  --shadow-lg:0 40px 80px -30px rgba(13,15,18,.55);
  --maxw:1200px;
  --head:'Montserrat',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --body:'Source Sans 3','Source Sans Pro',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden}
body{overflow-x:clip}
body{
  margin:0;font-family:var(--body);color:var(--text);background:var(--paper);
  font-size:clamp(16px,1.05vw,17.5px);line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,h5{font-family:var(--head);font-weight:800;line-height:1.08;margin:0 0 .4em;letter-spacing:-.02em}
h1{font-size:clamp(2.3rem,5.2vw,4.2rem)}
h2{font-size:clamp(1.9rem,3.6vw,2.9rem)}
h3{font-size:clamp(1.25rem,1.8vw,1.6rem)}
p{margin:0 0 1rem}
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(18px,4vw,36px)}
.container-wide{max-width:1380px}
.eyebrow{font-family:var(--head);text-transform:uppercase;letter-spacing:.28em;font-weight:700;
  font-size:.74rem;color:var(--gold-deep);display:inline-block;margin-bottom:.9rem}
.section{padding:clamp(64px,8vw,120px) 0}
.section--dark{background:var(--ink);color:var(--text-invert)}
.section--dark .eyebrow{color:var(--gold)}
.section--tint{background:var(--paper-2)}
.lead{font-size:clamp(1.08rem,1.5vw,1.3rem);color:var(--text-soft);max-width:60ch}
.section--dark .lead{color:var(--text-invert-soft)}
.center{text-align:center}
.center .lead{margin-inline:auto}
.text-gold{color:var(--gold-deep)}
.section--dark .text-gold{color:var(--gold)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.6em;font-family:var(--head);font-weight:700;white-space:nowrap;
  font-size:.95rem;letter-spacing:.02em;padding:.85em 1.6em;border-radius:999px;cursor:pointer;
  border:1.5px solid transparent;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s,color .25s}
.btn:hover{transform:translateY(-2px)}
.btn--gold{background:var(--gold);color:#1a1500;box-shadow:0 14px 30px -12px rgba(255,213,35,.7)}
.btn--gold:hover{background:var(--gold-deep)}
.btn--ghost{border-color:currentColor;color:inherit}
.btn--ghost:hover{background:currentColor}
.btn--ghost:hover span{color:var(--ink)}
.btn--dark{background:var(--ink);color:#fff}
.btn--dark:hover{background:var(--ink-3)}

/* ---------- top strip ---------- */
.topbar{background:#000;color:var(--text-invert-soft);font-size:.82rem}
.topbar .container{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;align-items:center;
  padding-block:.5rem}
.topbar a{color:var(--text-invert-soft);transition:color .2s}
.topbar a:hover{color:var(--gold)}
.topbar .spacer{margin-left:auto}
.topbar .ti{display:inline-flex;align-items:center;gap:.45em}
.topbar svg{width:14px;height:14px;fill:var(--gold);flex:none}

/* ---------- header / nav ---------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(13,15,18,.86);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transition:background .3s}
.nav{display:flex;align-items:center;gap:1.5rem;padding-block:.7rem}
.brand{display:flex;align-items:center;flex:none}
.brand img{height:54px;width:auto}
.nav__menu{display:flex;align-items:center;gap:.35rem;margin-left:auto;list-style:none;padding:0;margin-block:0}
.nav__menu > li{position:relative}
.nav__menu > li > a{display:flex;align-items:center;gap:.35em;color:var(--text-invert);
  font-family:var(--head);font-weight:600;font-size:.92rem;padding:.6rem .8rem;border-radius:9px;
  transition:color .2s,background .2s}
.nav__menu > li > a:hover,.nav__menu > li.is-open > a{color:var(--gold);background:rgba(255,255,255,.05)}
.nav__menu .caret{width:9px;height:9px;fill:none;stroke:currentColor;stroke-width:2.4;transition:transform .25s}
.nav__menu li.is-open .caret{transform:rotate(180deg)}
.nav__cta{margin-left:.4rem}
/* dropdowns */
.submenu{position:absolute;top:calc(100% + 10px);left:0;min-width:250px;background:#fff;color:var(--text);
  border-radius:14px;box-shadow:var(--shadow-lg);padding:.6rem;list-style:none;margin:0;
  opacity:0;visibility:hidden;transform:translateY(8px);transition:.22s var(--ease);border:1px solid var(--paper-3)}
.submenu.right{left:auto;right:0}
/* invisible bridge across the 10px gap so hover doesn't drop between parent and menu */
.nav__menu > li.has-sub > .submenu::before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px}
/* reveal: mobile toggles .is-open (JS); desktop reveals on hover / keyboard focus */
.nav__menu li.is-open > .submenu{opacity:1;visibility:visible;transform:translateY(0)}
.nav__menu > li.has-sub:focus-within > .submenu{opacity:1;visibility:visible;transform:translateY(0)}
@media (hover:hover){
  .nav__menu > li.has-sub:hover > .submenu{opacity:1;visibility:visible;transform:translateY(0)}
  .nav__menu > li.has-sub:hover > a{color:var(--gold);background:rgba(255,255,255,.05)}
}
.submenu a{display:block;padding:.6rem .85rem;border-radius:9px;font-weight:600;font-size:.9rem;
  color:var(--text);transition:.18s}
.submenu a:hover{background:var(--paper-2);color:var(--gold-deep);padding-left:1.1rem}
.submenu .sub-label{font-family:var(--head);text-transform:uppercase;letter-spacing:.18em;
  font-size:.66rem;color:var(--text-soft);padding:.7rem .85rem .25rem}
.submenu a .ext{opacity:.4;font-size:.8em}
/* burger */
.burger{display:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:.5rem;flex-direction:column;gap:5px}
.burger span{width:26px;height:2.5px;background:var(--gold);border-radius:2px;transition:.3s}
.nav-open .burger span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.nav-open .burger span:nth-child(2){opacity:0}
.nav-open .burger span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{position:relative;min-height:min(88vh,760px);display:flex;align-items:center;
  color:#fff;overflow:hidden;background:var(--ink)}
.hero__media{position:absolute;inset:0;z-index:0}
.hero__media img,.hero__media video{width:100%;height:100%;object-fit:cover}
.hero__media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(9,10,12,.92) 0%,rgba(9,10,12,.74) 42%,rgba(9,10,12,.35) 100%)}
.hero__inner{position:relative;z-index:1;padding-block:clamp(60px,9vw,120px)}
.hero h1{max-width:16ch;text-shadow:0 4px 30px rgba(0,0,0,.4)}
.hero h1 em{font-style:normal;color:var(--gold);display:block}
.hero__sub{font-size:clamp(1.1rem,1.7vw,1.4rem);color:#e8eaee;max-width:44ch;margin:1.2rem 0 2rem}
.hero__actions{display:flex;flex-wrap:wrap;gap:1rem}
.hero__scroll{position:absolute;bottom:1.4rem;left:50%;transform:translateX(-50%);z-index:1;
  color:#fff;opacity:.6;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;
  display:flex;flex-direction:column;align-items:center;gap:.4rem;animation:bob 2.4s var(--ease) infinite}
@keyframes bob{50%{transform:translate(-50%,8px)}}

/* ---------- promise / generic split ---------- */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);align-items:center}
.split--rev .split__media{order:-1}
.media-frame{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);position:relative}
.media-frame img{width:100%;aspect-ratio:4/3;object-fit:cover}
.media-frame--tall img{aspect-ratio:3/4}
.check-list{list-style:none;padding:0;margin:1.4rem 0;display:grid;gap:.75rem}
.check-list li{display:flex;gap:.75rem;align-items:flex-start;font-weight:600}
.check-list svg{width:22px;height:22px;flex:none;margin-top:2px;fill:var(--gold-deep)}
.section--dark .check-list svg{fill:var(--gold)}

/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,40px);text-align:center}
.stat__num{font-family:var(--head);font-weight:800;font-size:clamp(2.6rem,5vw,3.8rem);
  color:var(--gold);line-height:1;letter-spacing:-.03em}
.stat__num .plus{color:#fff;opacity:.5}
.stat__label{margin-top:.5rem;font-family:var(--head);text-transform:uppercase;
  letter-spacing:.14em;font-size:.8rem;color:var(--text-invert-soft);font-weight:600}

/* ---------- cards / grids ---------- */
.grid{display:grid;gap:clamp(20px,2.6vw,32px)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.card{background:#fff;border:1px solid var(--paper-3);border-radius:var(--radius);
  padding:1.8rem;box-shadow:var(--shadow-sm);transition:transform .3s var(--ease),box-shadow .3s}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.card__icon{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;
  background:linear-gradient(140deg,var(--gold),var(--gold-deep));margin-bottom:1.1rem}
.card__icon svg{width:28px;height:28px;fill:#1a1500}
.card h3{margin-bottom:.35rem}
.card p{color:var(--text-soft);margin-bottom:1rem;font-size:.96rem}
.card__link{font-family:var(--head);font-weight:700;font-size:.85rem;letter-spacing:.05em;
  text-transform:uppercase;color:var(--gold-deep);display:inline-flex;gap:.4em;align-items:center}
.card__link svg{width:16px;height:16px;transition:transform .25s}
.card__link:hover svg{transform:translateX(4px)}

/* ---------- presenters / staff (prestige) ---------- */
.staff-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.2vw,28px)}
.presenter{position:relative;border-radius:18px;overflow:hidden;background:var(--ink-2);
  box-shadow:var(--shadow);aspect-ratio:3/4;isolation:isolate}
.presenter img{width:100%;height:100%;object-fit:cover;filter:grayscale(.15) contrast(1.02);
  transition:transform .6s var(--ease),filter .5s}
.presenter:hover img{transform:scale(1.06);filter:grayscale(0)}
.presenter::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(8,9,11,.94) 4%,rgba(8,9,11,.55) 34%,rgba(8,9,11,0) 62%)}
.presenter__body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1.3rem 1.3rem 1.4rem;color:#fff;
  transform:translateY(6px);transition:transform .4s var(--ease)}
.presenter:hover .presenter__body{transform:translateY(0)}
.presenter__role{font-family:var(--head);text-transform:uppercase;letter-spacing:.16em;
  font-size:.68rem;font-weight:700;color:var(--gold);margin-bottom:.25rem}
.presenter__name{font-family:var(--head);font-weight:800;font-size:1.18rem;line-height:1.1}
.presenter__rule{width:34px;height:3px;background:var(--gold);border-radius:2px;margin-top:.7rem;
  opacity:0;transform:scaleX(0);transform-origin:left;transition:.4s var(--ease) .05s}
.presenter:hover .presenter__rule{opacity:1;transform:scaleX(1)}

/* ---------- testimonials ---------- */
.tcarousel{position:relative}
.tviewport{overflow:hidden}
.ttrack{display:flex;transition:transform .6s var(--ease)}
.tslide{flex:0 0 33.3333%;padding:0 12px;box-sizing:border-box}
.tcard{background:#fff;border:1px solid var(--paper-3);border-radius:var(--radius);
  padding:1.8rem;height:100%;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}
.tcard__stars{color:var(--gold-deep);letter-spacing:2px;margin-bottom:.7rem;font-size:1.05rem}
.tcard__quote{font-size:.98rem;color:var(--text);flex:1;margin-bottom:1.1rem}
.tcard__by{font-family:var(--head);font-weight:800}
.tcard__meta{color:var(--text-soft);font-size:.85rem}
.tnav{display:flex;justify-content:center;gap:.8rem;margin-top:2rem}
.tnav button{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--paper-3);background:#fff;
  cursor:pointer;display:grid;place-items:center;transition:.25s;color:var(--ink)}
.tnav button:hover{background:var(--gold);border-color:var(--gold)}
.tnav svg{width:18px;height:18px;fill:currentColor}
.section--dark .tcard{background:var(--ink-2);border-color:var(--line);color:var(--text-invert)}
.section--dark .tcard__quote{color:var(--text-invert-soft)}
.section--dark .tnav button{background:var(--ink-2);border-color:var(--line);color:#fff}
.section--dark .tnav button:hover{background:var(--gold);color:var(--ink)}

/* ---------- photo wall / gallery ---------- */
.wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
/* Every wall photo on file is landscape (~4:3, from the original mirror
   scrape) — a 3:4 portrait box was cropping ~44% off each photo's width
   (object-fit:cover keeps only target/source = 0.75/1.33 ≈ 56% of the width),
   which pushed off-center students out of frame entirely on some photos.
   1:1 keeps ~75% of the width instead, comfortably centering people who
   aren't dead-center in the original shot. */
.wall figure{margin:0;position:relative;border-radius:14px;overflow:hidden;aspect-ratio:1/1;
  box-shadow:var(--shadow-sm);background:var(--ink-3)}
.wall img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);
  -webkit-user-drag:none;-webkit-touch-callout:none;user-select:none}
.wall figure:hover img{transform:scale(1.05)}
.wall figcaption{position:absolute;inset:auto 0 0 0;padding:1.4rem .95rem .8rem;color:#fff;
  background:linear-gradient(to top,rgba(8,9,11,.9),transparent);opacity:0;transition:.3s}
.wall figure:hover figcaption{opacity:1}
.wall .w-name{font-family:var(--head);font-weight:800;font-size:1rem;line-height:1.1}
.wall .w-meta{font-size:.8rem;color:var(--gold)}

/* ---------- graduates table ---------- */
.grad-toolbar{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:1.8rem}
.grad-search{flex:1;min-width:220px;position:relative}
.grad-search input{width:100%;padding:.85rem 1rem .85rem 2.8rem;border:1.5px solid var(--paper-3);
  border-radius:999px;font:inherit;background:#fff}
.grad-search input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(255,213,35,.2)}
.grad-search svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:18px;height:18px;fill:var(--text-soft)}
.year-tabs{display:flex;flex-wrap:wrap;gap:.4rem}
.year-tabs button{border:1.5px solid var(--paper-3);background:#fff;color:var(--text-soft);
  font-family:var(--head);font-weight:700;font-size:.82rem;padding:.5rem .9rem;border-radius:999px;cursor:pointer;transition:.2s}
.year-tabs button:hover{border-color:var(--gold-deep);color:var(--text)}
.year-tabs button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.grad-table-wrap{border:1px solid var(--paper-3);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
table.grad{width:100%;border-collapse:collapse;font-size:.95rem}
table.grad th{background:var(--ink);color:#fff;font-family:var(--head);text-align:left;
  padding:1rem 1.2rem;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}
table.grad td{padding:.9rem 1.2rem;border-top:1px solid var(--paper-3)}
table.grad tbody tr{transition:background .15s}
table.grad tbody tr:hover{background:var(--paper-2)}
table.grad .g-year{font-family:var(--head);font-weight:800;color:var(--gold-deep)}
table.grad .g-rating{color:var(--text-soft)}
.grad-empty{padding:2.5rem;text-align:center;color:var(--text-soft)}
.grad-count{font-size:.85rem;color:var(--text-soft);margin-top:1rem}

/* ---------- fleet ---------- */
.fleet-card{display:grid;grid-template-columns:1.1fr 1fr;gap:0;background:#fff;border:1px solid var(--paper-3);
  border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.fleet-card:nth-child(even){grid-template-columns:1fr 1.1fr}
.fleet-card:nth-child(even) .fleet-card__media{order:2}
.fleet-card__media img{width:100%;height:100%;min-height:280px;object-fit:cover}
.fleet-card__body{padding:clamp(1.6rem,3vw,2.6rem)}
.fleet-card__body h3{font-size:1.7rem}
.spec{display:flex;gap:1rem;padding:.6rem 0;border-top:1px solid var(--paper-3);font-size:.94rem}
.spec dt{font-weight:700;min-width:110px;color:var(--text-soft)}
.spec dd{margin:0}

/* ---------- info / prose ---------- */
.prose{max-width:78ch}
.prose h2{margin-top:2.2rem}
.prose h3{margin-top:1.6rem;color:var(--gold-deep)}
.prose ul{padding-left:1.2rem}
.prose li{margin-bottom:.4rem}
.callout{background:var(--paper-2);border-left:4px solid var(--gold);border-radius:10px;
  padding:1.1rem 1.3rem;margin:1.4rem 0}
.pill{display:inline-block;background:var(--gold);color:#1a1500;font-family:var(--head);
  font-weight:700;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  padding:.3em .8em;border-radius:999px}

/* download list */
.dl-list{display:grid;gap:1rem}
.dl-item{display:flex;align-items:center;gap:1.1rem;background:#fff;border:1px solid var(--paper-3);
  border-radius:var(--radius);padding:1.1rem 1.3rem;box-shadow:var(--shadow-sm);transition:.25s var(--ease)}
.dl-item:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.dl-item__ic{width:46px;height:46px;border-radius:11px;background:var(--ink);display:grid;place-items:center;flex:none}
.dl-item__ic svg{width:22px;height:22px;fill:var(--gold)}
.dl-item__body{flex:1}
.dl-item__title{font-family:var(--head);font-weight:700}
.dl-item__meta{font-size:.82rem;color:var(--text-soft)}

/* contact */
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.5vw,28px)}
.contact-card{background:#fff;border:1px solid var(--paper-3);border-radius:var(--radius);
  padding:1.8rem;box-shadow:var(--shadow-sm)}
.contact-card svg{width:30px;height:30px;fill:var(--gold-deep);margin-bottom:.8rem}
.contact-card h3{font-size:1.15rem}
.contact-card a{color:var(--text-soft);font-weight:600}
.contact-card a:hover{color:var(--gold-deep)}
.map-frame{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--paper-3)}
.map-frame iframe{display:block;width:100%;height:420px;border:0}

/* ---------- footer ---------- */
.site-footer{background:#000;color:var(--text-invert-soft);padding-top:clamp(56px,7vw,88px)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:clamp(28px,4vw,56px)}
.site-footer h4{font-family:var(--head);color:#fff;font-size:.82rem;letter-spacing:.16em;
  text-transform:uppercase;margin-bottom:1.1rem}
.site-footer a{color:var(--text-invert-soft);transition:color .2s}
.site-footer a:hover{color:var(--gold)}
.footer-brand img{height:52px;margin-bottom:1rem}
.footer-list{list-style:none;padding:0;margin:0;display:grid;gap:.55rem;font-size:.92rem}
.footer-contact li{display:flex;gap:.6rem;margin-bottom:.7rem;font-size:.92rem}
.footer-contact svg{width:17px;height:17px;fill:var(--gold);flex:none;margin-top:3px}
.socials{display:flex;gap:.7rem;margin-top:1.2rem}
.socials a{width:40px;height:40px;border-radius:10px;border:1px solid var(--line);display:grid;place-items:center;transition:.25s}
.socials a:hover{background:var(--gold);border-color:var(--gold)}
.socials svg{width:18px;height:18px;fill:#fff;transition:fill .25s}
.socials a:hover svg{fill:var(--ink)}
.news-form{display:flex;gap:.5rem;margin-top:.6rem}
.news-form input{flex:1;padding:.7rem .9rem;border-radius:9px;border:1px solid var(--line);
  background:var(--ink-2);color:#fff;font:inherit}
.news-form input::placeholder{color:var(--text-invert-soft)}
.footer-bottom{border-top:1px solid var(--line);margin-top:clamp(40px,5vw,64px);padding:1.6rem 0;
  display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;align-items:center;font-size:.82rem}
.footer-bottom .spacer{margin-left:auto}
.safety-badge{display:inline-flex;align-items:center;gap:.6rem;background:var(--ink-2);
  border:1px solid var(--line);border-radius:12px;padding:.9rem 1.1rem;margin-top:.4rem}
.safety-badge svg{width:24px;height:24px;fill:var(--gold);flex:none}

/* page header (interior) */
.page-hero{background:var(--ink) url('../img/page-hero.jpg') center/cover;color:#fff;position:relative;overflow:hidden;
  padding:clamp(90px,12vw,150px) 0 clamp(48px,6vw,80px)}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(3,8,18,.92) 0%,rgba(3,8,18,.8) 45%,rgba(3,8,18,.55) 100%)}
.page-hero::before{content:"";position:absolute;inset:0;opacity:.28;z-index:1;
  background:radial-gradient(60% 120% at 85% 0,rgba(255,213,35,.4),transparent 60%)}
.page-hero__inner{position:relative;z-index:2}
.crumbs{font-size:.82rem;color:var(--text-invert-soft);margin-bottom:.9rem;font-family:var(--head);letter-spacing:.03em}
.crumbs a:hover{color:var(--gold)}
.page-hero h1{max-width:20ch}
.page-hero p{color:var(--text-invert-soft);max-width:60ch;margin-top:.6rem}

/* reveal animation */
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
[data-reveal="left"]{transform:translateX(-34px)}
[data-reveal="right"]{transform:translateX(34px)}
[data-reveal].in{transform:none}
[data-delay="1"]{transition-delay:.1s}[data-delay="2"]{transition-delay:.2s}
[data-delay="3"]{transition-delay:.3s}[data-delay="4"]{transition-delay:.4s}
@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1!important;transform:none!important}
  .hero__scroll{animation:none}html{scroll-behavior:auto}}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .grid-4,.staff-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .tslide{flex-basis:50%}
}
@media (max-width:860px){
  .burger{display:flex}
  /* full-height drawer. Height is pinned with viewport units (not bottom:0) because the
     blurred .site-header establishes a containing block for this fixed element, which would
     otherwise clip the drawer to the header's height. */
  .nav__menu{position:fixed;top:0;right:0;bottom:auto;left:auto;height:100vh;height:100dvh;
    width:min(88vw,360px);flex-direction:column;
    align-items:stretch;gap:0;background:var(--ink);padding:5rem 1.2rem 2rem;margin:0;
    transform:translateX(100%);transition:transform .35s var(--ease);overflow-y:auto;box-shadow:var(--shadow-lg)}
  .nav-open .nav__menu{transform:none}
  .nav__menu > li > a{padding:.9rem .6rem;border-bottom:1px solid var(--line);border-radius:0}
  .submenu{position:static;box-shadow:none;opacity:1;visibility:visible;transform:none;
    display:none;background:transparent;color:var(--text-invert-soft);padding:.2rem 0 .6rem .6rem;border:0}
  .nav__menu li.is-open > .submenu{display:block}
  .submenu a{color:var(--text-invert-soft)}
  .submenu a:hover{background:transparent;color:var(--gold);padding-left:.85rem}
  .submenu .sub-label{color:var(--gold)}
  .nav__cta{margin:1rem 0 0}
  .grid-3,.grid-2,.contact-grid,.stats{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr}
  .split--rev .split__media{order:0}
  .fleet-card,.fleet-card:nth-child(even){grid-template-columns:1fr}
  .fleet-card:nth-child(even) .fleet-card__media{order:0}
  .tslide{flex-basis:100%}
}
@media (max-width:520px){
  .grid-4,.staff-grid,.grid-3,.grid-2,.contact-grid{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,1fr);gap:2rem 1rem}
  .stat__num{font-size:clamp(1.9rem,10vw,2.4rem)}
  .hero h1{font-size:clamp(2rem,9vw,2.6rem)}
  .wall{grid-template-columns:repeat(2,1fr);gap:10px}
  .topbar .ti.hide-sm{display:none}
}

/* fleet placeholder panel (no distinct photo available) */
.plane-panel{position:relative;width:100%;height:100%;min-height:300px;display:grid;place-items:center;
  background:radial-gradient(120% 120% at 30% 20%,#1c2027,#0d0f12);overflow:hidden}
.plane-panel svg{width:70%;max-width:340px;fill:var(--gold);opacity:.9;transform:rotate(-8deg);
  filter:drop-shadow(0 18px 30px rgba(0,0,0,.5))}
.plane-panel__code{position:absolute;bottom:1rem;right:1.2rem;font-family:var(--head);font-weight:800;
  font-size:2.2rem;color:rgba(255,255,255,.10);letter-spacing:.05em}

/* ---------- intro splash (home only) ---------- */
.intro{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;
  background:var(--ink);opacity:1;transition:opacity .6s ease}
.intro.is-hiding{opacity:0}
.intro__video{width:100%;height:100%;object-fit:cover;background:var(--ink)}
.intro__skip{position:absolute;bottom:clamp(1.1rem,4vw,2.4rem);right:clamp(1.1rem,4vw,2.4rem);
  display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.15rem;border:0;cursor:pointer;
  font-family:var(--head);font-weight:700;font-size:.85rem;letter-spacing:.02em;
  color:var(--ink);background:var(--gold);border-radius:999px;
  box-shadow:0 8px 24px rgba(0,0,0,.35);transition:transform .15s ease,background .15s ease}
.intro__skip:hover{transform:translateY(-1px);background:var(--gold-deep)}
.intro__skip svg{width:.9em;height:.9em;fill:currentColor}
.intro-lock{overflow:hidden}
@media (prefers-reduced-motion:reduce){.intro{display:none}}

/* ---------- responsive video embed ---------- */
.video-embed{position:relative;width:100%;max-width:960px;margin:0 auto;aspect-ratio:16/9;
  border-radius:14px;overflow:hidden;background:var(--ink);box-shadow:0 24px 60px rgba(0,0,0,.28)}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-embed__fallback{display:block;margin:1rem auto 0;font-weight:600}

/* ======================================================================
   FAITHFUL RE-SKIN  (overrides; matches the original WordPress design)
   ====================================================================== */
:root{
  --blue:#0F52BA; --navy:#001742; --gold:#FFD523; --gold-deep:#0F52BA; --green:#81d742;
  --ink:#0c1930; --text:#4a5563; --line:rgba(255,255,255,.09);
  --head:Tahoma, Verdana, Geneva, sans-serif;
  --body:'Roboto','Helvetica Neue',Arial,sans-serif;
}
body{font-family:var(--body);color:var(--text)}
h1,h2,h3,h4,h5{font-family:var(--head);color:var(--navy);letter-spacing:0;font-weight:700}
.eyebrow{color:var(--blue);text-transform:none;letter-spacing:.2px;font-size:1.05rem;font-weight:700;margin-bottom:.35rem}
.section-title{font-size:clamp(1.9rem,3.6vw,2.7rem);margin-bottom:1rem;color:var(--navy)}
.section--dark{background:var(--navy);color:#eaf0fb}
.section--dark .eyebrow{color:var(--gold)}
.section--tint{background:#f5f7fb}
.lead{color:var(--text)}
.btn--blue{background:var(--blue);color:#fff;border-radius:6px;padding:.85rem 1.9rem}
.btn--blue:hover{background:#0b409a}
.btn--gold{border-radius:6px}

/* top bar */
.topbar{background:var(--navy);color:#cfd8e6}
.topbar svg{fill:var(--gold)}
.topbar a:hover{color:#fff}

/* header + pill nav */
.site-header{position:sticky;top:0;z-index:60;background:rgba(9,16,28,.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:1.1rem;padding:.55rem 0}
.brand{flex:none}.brand img{height:54px;width:auto}
.nav__spacer{flex:1}
.phone{display:inline-flex;align-items:center;gap:.6rem;color:#fff;font-family:var(--head);font-weight:700;font-size:1.22rem;white-space:nowrap}
.header-actions{display:flex;align-items:center;gap:.85rem}
.hdr-social{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:rgba(255,255,255,.09);transition:background .2s ease,transform .2s ease}
.hdr-social svg{width:16px;height:16px;fill:#fff}
.hdr-social:hover{transform:translateY(-1px);background:var(--gold)}
.hdr-social:hover svg{fill:var(--navy)}
.hdr-social--wa{background:#25D366}
.hdr-social--wa:hover{background:#1fb955}
.hdr-social--wa:hover svg{fill:#fff}
@media (max-width:480px){
  .header-actions{gap:.4rem}
  .hdr-social{width:29px;height:29px}
  .hdr-social svg{width:14px;height:14px}
}
@media (max-width:340px){
  .hdr-social:not(.hdr-social--wa){display:none}
}


.phone svg{width:26px;height:26px;fill:var(--gold)}
.menu{list-style:none;display:flex;align-items:center;gap:.05rem;margin:0 auto 0 0;padding:.34rem .45rem;
  background:linear-gradient(180deg,#3a3e45 0%,#212328 55%,#17181c 100%);border:1px solid rgba(255,255,255,.09);
  border-radius:999px;box-shadow:0 14px 30px -16px rgba(0,0,0,.75),inset 0 1px 0 rgba(255,255,255,.08)}
.menu>li{position:relative}
.menu>li>a{display:flex;align-items:center;gap:.4em;color:#d3d7dc;font-family:var(--head);font-weight:700;font-size:.9rem;padding:.5rem .82rem;white-space:nowrap;border-radius:999px;transition:color .2s}
.menu>li>a .caret{width:9px;height:9px;fill:none;stroke:currentColor;stroke-width:2.4;transition:transform .25s}
.menu>li.current>a{color:var(--green)}
.menu>li:hover>a{color:var(--gold)}
.menu>li:hover>a .caret{transform:rotate(180deg)}
.submenu{position:absolute;top:calc(100% + 14px);left:0;min-width:240px;background:#fff;border-radius:12px;
  box-shadow:0 40px 80px -30px rgba(9,16,28,.6);padding:.55rem;list-style:none;margin:0;opacity:0;visibility:hidden;
  transform:translateY(10px);transition:.22s var(--ease);z-index:70}
.menu>li>.submenu::before{content:"";position:absolute;top:-16px;left:0;right:0;height:16px}
.menu>li:hover>.submenu,.menu>li:focus-within>.submenu{opacity:1;visibility:visible;transform:translateY(0)}
.submenu a{display:block;padding:.55rem .8rem;border-radius:7px;font-weight:600;font-size:.9rem;color:#334;transition:.15s}
.submenu a:hover{background:#eef2f8;color:var(--blue);padding-left:1.05rem}
.submenu .ext{opacity:.4;font-size:.8em}
.submenu.mega{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(150px,1fr));gap:.15rem .9rem;min-width:560px;left:0;right:auto;padding:1rem}
.submenu.mega[style*="--cols:4"]{min-width:700px}
.submenu-soon{display:block;padding:.55rem .8rem;font-weight:600;font-size:.9rem;color:#9aa3ad;cursor:default}
.submenu.mega .col-title{font-family:var(--head);font-weight:700;color:var(--navy);font-size:.9rem;padding:.3rem .5rem .5rem;border-bottom:2px solid var(--gold);margin-bottom:.3rem}
.submenu:empty{display:none}
#portal-nav-label{background:var(--gold);color:var(--ink)!important;border-radius:999px}
#portal-nav-label:hover{background:#fff;color:var(--ink)!important}
.nav__menu{display:none}

/* hero slideshow */
.hero{position:relative;min-height:clamp(440px,56vh,600px);display:flex;align-items:center;overflow:hidden;color:#fff}
.hero__slides{position:absolute;inset:0;z-index:0}
.hero__slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.4s ease;animation:kb 8s ease forwards}
.hero__slide.active{opacity:1}
@keyframes kb{from{transform:scale(1.03)}to{transform:scale(1.14)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,8,18,.72),rgba(3,8,18,.35));z-index:1}
.hero .container{position:relative;z-index:2;padding-block:2.6rem}
.hero h1{color:#fff;font-size:clamp(2.2rem,4.6vw,3.4rem);line-height:1.26;max-width:17ch;letter-spacing:-.005em;text-shadow:0 4px 30px rgba(0,0,0,.4)}
.hero h1 em{color:var(--gold);font-style:normal}

/* customer promise */
.promise{background:#f5f7fb;text-align:center}
.pledge-list{list-style:none;padding:0;max-width:760px;margin:1.5rem auto;display:grid;gap:.6rem}
.pledge-list li{display:flex;gap:.7rem;justify-content:center;align-items:flex-start;color:#33414f;font-size:1.05rem}
.pledge-list svg{width:22px;height:22px;fill:var(--blue);flex:none;margin-top:2px}
.signoff{font-family:var(--head);font-weight:700;color:var(--blue);font-size:1.25rem;margin-top:1rem}

/* welcome / best return */
.home-split{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center}
.media-box{position:relative;border-radius:6px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(9,16,28,.5);border:6px solid var(--blue)}
.media-box img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/11}
.media-box .play{position:absolute;inset:0;display:grid;place-items:center}
.media-box .play span{width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.9);display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.media-box .play span::before{content:"";border-left:20px solid var(--blue);border-top:12px solid transparent;border-bottom:12px solid transparent;margin-left:5px}
.offer{list-style:none;padding:0;margin:1.2rem 0 1.8rem;display:grid;grid-template-columns:1fr 1fr;gap:.55rem 1.4rem}
.offer li{display:flex;gap:.6rem;align-items:center;color:#33414f}
.offer svg{width:20px;height:20px;fill:var(--blue);flex:none}

/* stats band */
.stats{position:relative;background:var(--navy) center/cover;color:#fff;text-align:center;padding:8rem 0;
  clip-path:polygon(0 60px,50% 0,100% 60px,100% calc(100% - 60px),50% 100%,0 calc(100% - 60px))}
.stats::before{content:"";position:absolute;inset:0;background:rgba(2,10,28,.72)}
.stats .container{position:relative}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.stats .stat img{height:64px;margin:0 auto .6rem;filter:drop-shadow(0 6px 14px rgba(0,0,0,.4))}
.stats .num{font-family:var(--head);font-weight:700;font-size:2.9rem;line-height:1;color:#fff}
.stats .num .plus{color:var(--gold)}
.stats .label{color:#cfd8e6;font-size:1rem;margin-top:.35rem}

/* training courses */
.courses{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;margin-top:1.4rem}
.course{border-radius:8px;overflow:hidden;box-shadow:0 24px 50px -30px rgba(9,16,28,.45);background:var(--navy);transition:.3s var(--ease)}
.course:hover{transform:translateY(-8px)}
.course__img{height:180px;background-size:cover;background-position:center}
.course__body{position:relative;padding:2.6rem 1.5rem 1.8rem;text-align:center;color:#fff}
.course__icon{position:absolute;top:-32px;left:50%;transform:translateX(-50%);width:64px;height:64px}
.course__body h3{color:#fff;font-size:1.2rem;margin-bottom:.5rem}
.course__body p{color:#b9c6db;font-size:.9rem;margin:0 0 1.1rem}
.course__more{color:var(--gold);font-family:var(--head);font-weight:700;font-size:.9rem}

/* dear student */
.letter{display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:start}
.letter p{margin:0 0 1rem;color:#4a5563}.letter ul{margin:.4rem 0 1.2rem;padding-left:1.2rem}.letter li{margin-bottom:.45rem;color:#4a5563}
.letter .quote{color:var(--blue);font-weight:600}
.collage{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:150px;gap:10px;position:sticky;top:120px}
.collage img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;border-radius:6px}
.collage img:nth-child(1),.collage img:nth-child(4){grid-row:span 2}

/* cta */
.cta{background:linear-gradient(120deg,var(--blue),var(--navy));color:#fff;text-align:center;padding:4.5rem 0}
.cta h2{color:#fff;font-size:2.1rem;max-width:24ch;margin:0 auto 1.5rem}

/* homepage testimonials */
.tst{background:#f5f7fb}
.tst-track-wrap{overflow:hidden}
.tst-track{display:flex;transition:transform .6s var(--ease)}
.tst-track .tcard{flex:0 0 calc(33.333% - 1.5rem);margin:0 .75rem;background:#fff;border-radius:10px;padding:2rem 1.6rem;box-shadow:0 24px 50px -34px rgba(9,16,28,.35);border-top:4px solid var(--gold);text-align:left}
.tst-track .who{display:flex;align-items:center;gap:.9rem;margin-bottom:.9rem}
.tst-track .who img{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none}
.tst-track .who b{display:block;font-family:var(--head);color:var(--navy)}
.tst-track .who span{font-size:.85rem;color:var(--blue)}
.tst-track .tcard p{margin:0;font-size:.95rem;color:#4a5563}
.tst-dots{display:flex;gap:.5rem;justify-content:center;margin-top:1.8rem}
.tst-dots button{width:11px;height:11px;border-radius:50%;border:0;background:#c9d3e0;cursor:pointer}
.tst-dots button.on{background:var(--blue)}

/* mobile pill -> drawer */
@media (max-width:900px){
  .home-split,.letter,.courses,.stats-grid{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr 1fr}.courses{grid-template-columns:1fr 1fr}
  .collage{position:static}.tst-track .tcard{flex-basis:calc(100% - 1.5rem)}
}
@media (max-width:1360px){
  .burger{display:flex;order:3}.phone{display:none}
  .menu{position:fixed;top:0;right:0;height:100vh;height:100dvh;width:min(86vw,340px);flex-direction:column;align-items:stretch;
    gap:0;border-radius:0;padding:5rem 1.1rem 2rem;background:var(--ink);transform:translateX(100%);transition:transform .35s var(--ease);overflow-y:auto;margin:0}
  body.nav-open .menu{transform:none}
  .menu>li>a{border-bottom:1px solid var(--line);border-radius:0;padding:.9rem .4rem}
  .submenu,.submenu.mega{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;background:transparent;display:none;min-width:0;padding:.2rem 0 .6rem .6rem;grid-template-columns:1fr}
  .menu>li.open>.submenu{display:block}
  .submenu a{color:#c3cede}.submenu.mega .col-title{color:var(--gold);border:0}
}
@media (max-width:560px){.stats-grid,.courses,.offer{grid-template-columns:1fr}}

/* contrast fixes for dark banners/sections */
.page-hero h1{color:#fff}
.page-hero .crumbs,.page-hero .crumbs a{color:rgba(255,255,255,.78)}
.section--dark h1,.section--dark h2,.section--dark h3,.section--dark h4,.section--dark h5{color:#fff}
.section--dark p,.section--dark li,.section--dark .lead{color:#c9d6ea}
.section--dark .text-gold{color:var(--gold)}

/* ---------- contact page ---------- */
.contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.contact-card{background:#fff;border:1px solid #e6ebf2;border-radius:12px;padding:1.8rem 1.6rem;box-shadow:0 24px 50px -36px rgba(9,16,28,.3)}
.contact-card .cc-icon{width:52px;height:52px;border-radius:12px;background:var(--blue);display:grid;place-items:center;margin-bottom:1rem}
.contact-card .cc-icon svg{width:24px;height:24px;fill:#fff}
.contact-card h3{color:var(--navy);font-size:1.15rem;margin-bottom:.5rem}
.contact-card p{margin:0;color:#4a5563;font-size:.95rem;line-height:1.7}
.contact-card a:hover{color:var(--blue)}
.contact-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:start}
.contact-form{margin-top:1.2rem;display:grid;gap:1rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field{display:grid;gap:.35rem}
.field>span{font-family:var(--head);font-weight:700;font-size:.82rem;color:var(--navy)}
.field input,.field textarea{width:100%;padding:.8rem .9rem;border:1px solid #d6deea;border-radius:8px;font-family:var(--body);
  font-size:.95rem;color:var(--navy);background:#fff;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px rgba(15,82,186,.15)}
.field textarea{resize:vertical;min-height:120px}
.contact-form .btn{justify-self:start;margin-top:.3rem}
.form-note{font-size:.88rem;color:#6b7684;margin:.4rem 0 0}
.contact-aside{display:grid;gap:1.2rem}
.map-frame{position:relative;border-radius:12px;overflow:hidden;box-shadow:0 24px 50px -34px rgba(9,16,28,.35);aspect-ratio:4/3}
.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.directions-btn{justify-self:start}
.aside-block{background:#f5f7fb;border-radius:12px;padding:1.4rem 1.5rem}
.aside-block h3{color:var(--navy);font-size:1.1rem;margin-bottom:.5rem}
.aside-block .flag{margin:0;font-size:.92rem;color:#4a5563}
.aside-block .flag em{color:#9a6b00;background:#fff6da;padding:.05rem .3rem;border-radius:4px;font-style:normal}
@media (max-width:900px){
  .contact-cards{grid-template-columns:1fr}
  .contact-layout{grid-template-columns:1fr;gap:2.4rem}
}
@media (max-width:560px){.form-row{grid-template-columns:1fr}}

/* ---------- downloads / flyer / calendar refinements ---------- */
.dl-item{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.dl-item__size{font-size:.82rem;color:#8a94a3;font-family:var(--head);font-weight:700;white-space:nowrap;margin-left:auto}
.dl-item .btn{white-space:nowrap}
@media (max-width:560px){.dl-item__size{margin-left:0}.dl-item .btn{width:100%;justify-content:center}}
.cal-frame{border-radius:12px;overflow:hidden;box-shadow:0 30px 60px -34px rgba(9,16,28,.4);border:1px solid #e6ebf2;background:#fff}
.cal-frame iframe{display:block;width:100%;height:620px;max-width:100%}
@media (max-width:640px){.cal-frame iframe{height:520px}}
.brochures{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
@media (max-width:820px){.brochures{grid-template-columns:1fr;max-width:460px;margin-inline:auto}}
.brochure{display:flex;flex-direction:column;background:#fff;border:1px solid #e6ebf2;border-radius:12px;overflow:hidden;
  box-shadow:0 24px 50px -36px rgba(9,16,28,.3);transition:.25s var(--ease)}
.brochure:hover{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(9,16,28,.4)}
.brochure__thumb{position:relative;height:170px;overflow:hidden;background:var(--navy)}
.brochure__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
.brochure:hover .brochure__thumb img{transform:scale(1.06)}
.brochure__thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,23,66,0) 55%,rgba(0,23,66,.55) 100%)}
.brochure__badge{position:absolute;top:10px;right:10px;background:var(--gold);color:var(--navy);font-family:var(--head);
  font-weight:700;font-size:.68rem;padding:.2rem .5rem;border-radius:5px;letter-spacing:.05em}
.brochure__body{padding:1.4rem 1.4rem 1.6rem;text-align:center}
.brochure__body h3{color:var(--navy);font-size:1.1rem;margin-bottom:.4rem}
.brochure__body p{color:#4a5563;font-size:.92rem;margin:0 0 .9rem}
.brochure__dl{color:var(--blue);font-family:var(--head);font-weight:700;font-size:.9rem}

/* ---------- counters: even spacing across the page (fix legacy .stats grid) ---------- */
/* the original .stats rule turned the band itself into a 4-col grid, squeezing
   .container into the first column and bunching the counters to the left. */
.stats{display:block;grid-template-columns:none}
.stats .container{width:100%;max-width:var(--maxw);margin-inline:auto}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;align-items:start;justify-items:center;width:100%}
.stats .stat{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%}

/* ---------- testimonials (all 33, verbatim) ---------- */
.tst-initials{width:56px;height:56px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--blue),var(--navy));color:#fff;font-family:var(--head);
  font-weight:700;font-size:1.05rem;letter-spacing:.02em}
/* homepage carousel: equal-height cards, quote clamped (full text on testimonials page) */
.tst-track{align-items:stretch}
.tst-track .tcard{display:flex;flex-direction:column}
.tst-track .tcard p{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.tst-track .who .tst-initials{width:56px;height:56px}
/* testimonials page: masonry so long and short quotes pack neatly */
.tst-masonry{columns:3;column-gap:1.6rem}
@media (max-width:1000px){.tst-masonry{columns:2}}
@media (max-width:660px){.tst-masonry{columns:1}}
.tst-masonry .tcard{break-inside:avoid;-webkit-column-break-inside:avoid;display:inline-block;width:100%;
  margin:0 0 1.6rem;background:#fff;border-radius:12px;padding:1.7rem 1.6rem;
  box-shadow:0 24px 50px -36px rgba(9,16,28,.32);border-top:4px solid var(--gold)}
.tst-masonry .tcard__stars{color:var(--gold);letter-spacing:.12em;font-size:.95rem;margin-bottom:.6rem}
.tst-masonry .tcard__quote{margin:0 0 1.1rem;padding:0;border:0;font-size:.95rem;line-height:1.7;
  color:#4a5563;font-style:normal;white-space:pre-line}
.tst-masonry .tcard__who{display:flex;align-items:center;gap:.85rem;border-top:1px solid #eef1f6;padding-top:1rem}
.tst-masonry .tcard__who img{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none}
.tst-masonry .tcard__by{display:block;font-family:var(--head);color:var(--navy);font-size:.98rem}
.tst-masonry .tcard__meta{display:block;font-size:.84rem;color:var(--blue)}

/* runway data block */
.rwy{margin:0;display:grid;gap:.4rem}
.rwy > div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px dashed #dbe2ec;padding-bottom:.35rem}
.rwy dt{font-family:var(--head);font-weight:700;color:var(--navy);font-size:.86rem;margin:0}
.rwy dd{margin:0;font-size:.86rem;color:#4a5563;text-align:right}
.rwy-note{margin:.8rem 0 0;font-size:.78rem;color:#8a94a3;font-style:italic}

/* ---------- three divisions ---------- */
.divisions-sec{background:#fff}
.divisions{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem;margin-top:2.6rem;text-align:left}
.division{background:#fff;border:1px solid #e6ebf2;border-radius:14px;overflow:hidden;
  box-shadow:0 24px 50px -34px rgba(9,16,28,.32);transition:.3s var(--ease);display:flex;flex-direction:column}
.division:hover{transform:translateY(-8px);box-shadow:0 36px 70px -32px rgba(9,16,28,.42)}
.division__img{position:relative;height:190px;background-size:cover;background-position:center}
.division__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,23,66,0) 40%,rgba(0,23,66,.55))}
.division__tag{position:absolute;top:12px;left:12px;z-index:2;background:var(--gold);color:var(--navy);
  font-family:var(--head);font-weight:700;font-size:.78rem;padding:.25rem .6rem;border-radius:6px}
.division__body{padding:1.5rem 1.5rem 1.7rem;display:flex;flex-direction:column;flex:1}
.division__body h3{color:var(--navy);font-size:1.25rem;margin-bottom:.5rem}
.division__body > p{color:#4a5563;font-size:.94rem;margin:0 0 1rem}
.division__points{list-style:none;padding:0;margin:0 0 1.2rem;display:grid;gap:.4rem}
.division__points li{display:flex;gap:.5rem;align-items:flex-start;font-size:.88rem;color:#4a5563}
.division__points svg{width:16px;height:16px;fill:var(--blue);flex:none;margin-top:3px}
.division__more{margin-top:auto;color:var(--blue);font-family:var(--head);font-weight:700;font-size:.92rem}
.division__more:hover{color:var(--navy)}
.check-list.two-col{display:grid;grid-template-columns:1fr 1fr;gap:.4rem 1.2rem}
@media (max-width:980px){.divisions{grid-template-columns:1fr;max-width:460px;margin-inline:auto}}
@media (max-width:560px){.check-list.two-col{grid-template-columns:1fr}}

/* testimonial submission */
.field select{width:100%;padding:.8rem .9rem;border:1px solid #d6deea;border-radius:8px;font-family:var(--body);
  font-size:.95rem;color:var(--navy);background:#fff}
.consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.88rem;color:#4a5563;line-height:1.5}
.consent input{margin-top:.25rem;flex:none;width:16px;height:16px;accent-color:var(--blue)}
.steps{margin:0;padding-left:1.1rem;display:grid;gap:.6rem;font-size:.92rem;color:#4a5563}
.steps strong{color:var(--navy)}

/* ---------- leadership ---------- */
.leaders{display:grid;grid-template-columns:1fr 1fr;gap:1.8rem}
.leader{display:grid;grid-template-columns:190px 1fr;gap:1.4rem;background:#fff;border:1px solid #e6ebf2;
  border-radius:14px;overflow:hidden;box-shadow:0 24px 50px -34px rgba(9,16,28,.3)}
.leader img{width:100%;height:100%;object-fit:cover;object-position:50% 15%;min-height:250px}
.leader__body{padding:1.5rem 1.5rem 1.5rem 0}
.leader__body h3{color:var(--navy);font-size:1.3rem;margin-bottom:.15rem}
.leader__role{display:block;color:var(--blue);font-family:var(--head);font-weight:700;font-size:.84rem;margin-bottom:.8rem}
.leader__body p{color:#4a5563;font-size:.93rem;margin:0 0 1.1rem}
.leader__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin:0;padding-top:1rem;border-top:1px solid #eef1f6}
.leader__stats dt{font-family:var(--head);font-weight:700;color:var(--navy);font-size:1.15rem;line-height:1.1}
.leader__stats dd{margin:0;font-size:.74rem;color:#8a94a3;line-height:1.3}
.src-note{margin:2rem auto 0;max-width:70ch;text-align:center;font-size:.9rem;color:#6b7684}
@media (max-width:1000px){.leaders{grid-template-columns:1fr}}
@media (max-width:560px){.leader{grid-template-columns:1fr}.leader img{min-height:220px;object-position:50% 12%}
  .leader__body{padding:0 1.3rem 1.4rem}}

/* trust strip */
.trust{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2rem}
.trust__item{background:#f5f7fb;border-left:3px solid var(--gold);border-radius:8px;padding:1rem 1.1rem}
.trust__item strong{display:block;font-family:var(--head);color:var(--navy);font-size:1rem;margin-bottom:.25rem}
.trust__item span{font-size:.84rem;color:#6b7684;line-height:1.5;display:block}
@media (max-width:900px){.trust{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.trust{grid-template-columns:1fr}}

/* fleet: role tag + performance tables */
.role-tag{display:inline-block;margin-left:.4rem;background:#eef2f8;color:var(--blue);font-family:var(--head);
  font-weight:700;font-size:.68rem;padding:.22rem .55rem;border-radius:5px;letter-spacing:.04em;text-transform:uppercase}
.perf{width:100%;border-collapse:collapse;margin-top:1.2rem;font-size:.82rem}
.perf caption{caption-side:top;text-align:left;font-family:var(--head);font-weight:700;color:var(--navy);
  font-size:.8rem;padding-bottom:.5rem;letter-spacing:.02em}
.perf th,.perf td{border:1px solid #e6ebf2;padding:.42rem .5rem;text-align:center}
.perf thead th{background:var(--navy);color:#fff;font-family:var(--head);font-weight:700}
.perf th[scope="row"]{background:#f5f7fb;color:var(--navy);text-align:left;white-space:nowrap;font-weight:700}
.perf tbody td{color:#4a5563}
@media (max-width:560px){.perf{font-size:.74rem}.perf th,.perf td{padding:.3rem .25rem}}

/* ---------- tighter vertical rhythm (less dead white space) ---------- */
.section{padding:clamp(20px,2.2vw,32px) 0}
.section--tight{padding:clamp(32px,3.5vw,52px) 0}
.divisions-sec{padding-top:clamp(18px,2vw,28px);padding-bottom:clamp(18px,2vw,28px)}
.stats{padding:2.4rem 0}
.cta{padding:1.8rem 0}
.hero .container{padding-bottom:96px}
.section-title{margin-bottom:.7rem}
.lead{margin-bottom:0}
.divisions{margin-top:1.3rem}
.courses{margin-top:1.1rem}

/* course card icons: original vector marks, not photos */
.course__icon{position:absolute;top:-30px;left:50%;transform:translateX(-50%);width:60px;height:60px;
  border-radius:50%;background:var(--gold);display:grid;place-items:center;
  box-shadow:0 12px 26px -10px rgba(0,0,0,.55);border:3px solid #fff}
.course__icon svg{width:28px;height:28px;fill:var(--navy)}

/* ---------- graduates table: constant column widths across year filters ----------
   Without a fixed layout the browser re-measures column widths from whatever rows
   are visible, so switching year tabs made the columns jump around. table.grad is
   also reused by three portal admin tables with different column counts (4-column
   submissions, 3-column registrations, 3-column my-submissions) — the width rules
   below are scoped to .grad--wall (the public graduates.html table) specifically,
   so they don't misapply to those. */
table.grad{width:100%}
table.grad th,table.grad td{overflow-wrap:anywhere}
table.grad--wall{table-layout:fixed}
table.grad--wall th:nth-child(1),table.grad--wall td:nth-child(1){width:18%}
table.grad--wall th:nth-child(2),table.grad--wall td:nth-child(2){width:47%}
table.grad--wall th:nth-child(3),table.grad--wall td:nth-child(3){width:35%}
@media (max-width:640px){
  table.grad--wall th:nth-child(1),table.grad--wall td:nth-child(1){width:26%}
  table.grad--wall th:nth-child(2),table.grad--wall td:nth-child(2){width:40%}
  table.grad--wall th:nth-child(3),table.grad--wall td:nth-child(3){width:34%}
}

/* admin.php "Recently approved": Date, Student, Rating, By */
table.grad--submissions{table-layout:fixed}
table.grad--submissions th:nth-child(1),table.grad--submissions td:nth-child(1){width:18%;white-space:nowrap}
table.grad--submissions th:nth-child(2),table.grad--submissions td:nth-child(2){width:28%}
table.grad--submissions th:nth-child(3),table.grad--submissions td:nth-child(3){width:26%}
table.grad--submissions th:nth-child(4),table.grad--submissions td:nth-child(4){width:28%}

/* admin_registrations.php top-IPs summary: IP, Attempts, Successes */
table.grad--registrations{table-layout:fixed}
table.grad--registrations th:nth-child(1),table.grad--registrations td:nth-child(1){width:50%}
table.grad--registrations th:nth-child(2),table.grad--registrations td:nth-child(2){width:25%}
table.grad--registrations th:nth-child(3),table.grad--registrations td:nth-child(3){width:25%}

/* submit.php "your submissions": Date, Rating, Status */
table.grad--mine{table-layout:fixed}
table.grad--mine th:nth-child(1),table.grad--mine td:nth-child(1){width:25%;white-space:nowrap}
table.grad--mine th:nth-child(2),table.grad--mine td:nth-child(2){width:45%}
table.grad--mine th:nth-child(3),table.grad--mine td:nth-child(3){width:30%}

/* ---------- grad wall: add-your-graduation button ---------- */
.grad-toolbar{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;justify-content:space-between}
.grad-add{white-space:nowrap}
@media (max-width:560px){.grad-add{width:100%;justify-content:center}}

/* ---------- portal pages ---------- */
.pa{border-radius:10px;padding:1rem 1.2rem;margin-bottom:1.2rem;font-size:.95rem;line-height:1.55}
.pa--ok{background:#eaf7ee;border:1px solid #b7e4c6;color:#1c6b39}
.pa--err{background:#fdecec;border:1px solid #f5c2c2;color:#a12626}
.pill{display:inline-block;font-family:var(--head);font-weight:700;font-size:.72rem;letter-spacing:.04em;
  padding:.2rem .6rem;border-radius:999px}
.pill--pending{background:#fff3cd;color:#8a6100}
.pill--approved{background:#e5f6ea;color:#1c6b39}
.pill--rejected{background:#fdecec;color:#a12626}
.sub-card{display:flex;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;align-items:flex-start;
  background:#fff;border:1px solid #e6ebf2;border-radius:12px;padding:1.1rem 1.3rem;margin-bottom:1rem}
.sub-card__actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.sub-card__actions input{padding:.55rem .7rem;border:1px solid #d6deea;border-radius:8px;font-size:.85rem;min-width:200px}
.sub-card__actions .btn{padding:.55rem 1rem;font-size:.85rem}

/* ---------- charter route map (original artwork) ---------- */
.routemap{max-width:820px;margin:1.6rem auto 0}
.routemap__svg{width:100%;height:auto;display:block}
.routemap__ring{fill:none;stroke:rgba(15,82,186,.14);stroke-width:1.5}
.routemap__path{stroke:var(--blue);stroke-width:2;fill:none;stroke-dasharray:6 5;animation:routeDash linear infinite}
.routemap__dot{fill:var(--navy);stroke:#fff;stroke-width:2;animation:dotPulse 2.4s ease-in-out infinite}
.routemap__label{font-family:var(--head);font-weight:700;font-size:13px;fill:var(--navy)}
.routemap__hub{font-family:var(--head);font-weight:700;font-size:13px;fill:var(--blue)}
@keyframes routeDash{to{stroke-dashoffset:-100}}
@keyframes dotPulse{0%,100%{r:7}50%{r:9.5}}
@media (prefers-reduced-motion:reduce){
  .routemap__path{animation:none}
  .routemap__dot{animation:none}
}
@media (max-width:560px){.routemap__label{font-size:15px}.routemap__hub{font-size:15px}}

/* ======================================================================
   REJUVENATION — PHASE 1  (premium homepage; scoped rj-* classes)
   ====================================================================== */
:root{
  --graphite:#151b26; --graphite-2:#1d2735; --steel:#8ea3bf; --mist:#eef2f8;
  --display:'Space Grotesk','Tahoma',sans-serif;
}
/* apply the geometric display face to headings site-wide */
h1,h2,h3,.section-title,.rj-hero h1{font-family:var(--display);letter-spacing:-.01em}

/* sticky header: subtle condense after scroll */
.site-header{transition:padding .28s var(--ease),background .28s var(--ease),box-shadow .28s var(--ease)}
body.scrolled .site-header{background:rgba(12,15,20,.92);backdrop-filter:blur(10px);box-shadow:0 10px 30px -18px rgba(0,0,0,.7)}
body.scrolled .site-header .container-wide{padding-top:.15rem;padding-bottom:.15rem}

/* ---------- hero ---------- */
.rj-hero{position:relative;min-height:clamp(560px,90vh,860px);display:flex;align-items:center;overflow:hidden;color:#fff;background:var(--ink)}
.rj-hero .hero__slides{position:absolute;inset:0;z-index:0}
.rj-hero .hero__slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.6s ease;transform:scale(1.06);animation:rjKen 9s ease forwards}
.rj-hero .hero__slide.active{opacity:1}
@keyframes rjKen{from{transform:scale(1.02)}to{transform:scale(1.12)}}
.rj-hero__scrim{position:absolute;inset:0;z-index:1;
  background:linear-gradient(105deg,rgba(3,8,18,.74) 0%,rgba(3,8,18,.46) 40%,rgba(3,8,18,.08) 72%,rgba(3,8,18,.22) 100%),
             linear-gradient(0deg,rgba(3,8,18,.62),transparent 44%)}
.rj-hero__inner{position:relative;z-index:2;max-width:680px}
.rj-loc{display:inline-flex;align-items:center;gap:.55rem;font-size:.82rem;font-weight:600;letter-spacing:.02em;
  color:#dfe8f6;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
  padding:.4rem .85rem;border-radius:999px;backdrop-filter:blur(6px)}
.rj-loc .dot{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px rgba(255,213,35,.25)}
.rj-hero h1{color:#fff;font-size:clamp(2.3rem,5.4vw,4.2rem);line-height:1.04;font-weight:700;margin:1.1rem 0 0;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.rj-hero h1 em{font-style:normal;color:var(--gold)}
.rj-hero .lead{font-size:clamp(1.02rem,1.5vw,1.22rem);color:#d5deec;max-width:33em;margin:1.1rem 0 0;line-height:1.55}
.rj-cta-row{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.7rem}
.rj-scrollcue{position:absolute;left:50%;bottom:1.4rem;transform:translateX(-50%);z-index:2;color:rgba(255,255,255,.7);
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.rj-scrollcue::after{content:"";width:1px;height:34px;background:linear-gradient(rgba(255,255,255,.7),transparent);animation:cueSlide 1.9s ease-in-out infinite}
@keyframes cueSlide{0%,100%{opacity:.3;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}
/* subtle compass motif top-right of hero */
.rj-compass{position:absolute;top:8%;right:4%;width:min(230px,26vw);z-index:1;opacity:.16;color:#fff;pointer-events:none}
@media (max-width:900px){.rj-compass{display:none}}

/* ---------- divisions ---------- */
.rj-div{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-top:2rem}
.rj-div__card{position:relative;display:flex;flex-direction:column;border-radius:16px;overflow:hidden;min-height:340px;
  color:#fff;text-decoration:none;box-shadow:var(--shadow-sm);background:var(--ink);isolation:isolate}
.rj-div__card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s var(--ease)}
.rj-div__card::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(0deg,rgba(3,8,18,.94) 8%,rgba(3,8,18,.5) 46%,rgba(3,8,18,.15) 100%)}
.rj-div__card:hover img{transform:scale(1.07)}
.rj-div__body{margin-top:auto;padding:1.2rem 1.2rem 1.3rem}
.rj-div__kicker{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700}
.rj-div__card h3{font-size:1.18rem;margin:.3rem 0 .35rem;color:#fff}
.rj-div__body p{font-size:.86rem;color:#c8d4e6;line-height:1.45;margin:0}
.rj-div__more{display:inline-flex;align-items:center;gap:.4rem;margin-top:.8rem;font-weight:700;font-size:.85rem;color:#fff}
.rj-div__card:hover .rj-div__more{color:var(--gold)}
.rj-div__card--tech .rj-div__kicker{color:var(--steel)}

/* ---------- why / trust strip ---------- */
.rj-why{background:var(--graphite);color:#fff;position:relative;overflow:hidden}
.rj-why .rj-why__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem 2.4rem;margin-top:1.8rem}
.rj-why__item{display:flex;gap:.9rem;align-items:flex-start}
.rj-why__ic{flex:none;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:var(--gold)}
.rj-why__ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7}
.rj-why__item h4{font-family:var(--display);font-size:1rem;margin:.1rem 0 .25rem;color:#fff}
.rj-why__item p{font-size:.86rem;color:#b9c5d8;line-height:1.5;margin:0}

/* ---------- feature bands ---------- */
.rj-band{padding:clamp(3rem,7vw,5.5rem) 0}
.rj-band__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(1.6rem,4vw,3.4rem);align-items:center}
.rj-band--rev .rj-band__media{order:2}
.rj-band__media{position:relative;border-radius:18px;overflow:hidden;box-shadow:0 40px 80px -40px rgba(9,16,28,.55);aspect-ratio:4/3}
.rj-band__media img{width:100%;height:100%;object-fit:cover;display:block}
.rj-band__eyebrow{font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--blue)}
.rj-band h2{font-size:clamp(1.7rem,3.4vw,2.5rem);margin:.5rem 0 .7rem;line-height:1.1}
.rj-band p{color:var(--text);line-height:1.6;max-width:38em}
.rj-band ul.rj-ticks{list-style:none;padding:0;margin:1rem 0 1.4rem;display:grid;gap:.5rem}
.rj-band ul.rj-ticks li{position:relative;padding-left:1.7rem;font-size:.95rem;color:#3a4657}
.rj-band ul.rj-ticks li::before{content:"";position:absolute;left:0;top:.35em;width:11px;height:11px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 0 4px rgba(255,213,35,.18)}
.rj-band--tech{background:var(--graphite);color:#fff}
.rj-band--tech .rj-band__eyebrow{color:var(--steel)}
.rj-band--tech h2{color:#fff}
.rj-band--tech p{color:#c1cdde}
.rj-band--tech ul.rj-ticks li{color:#cdd7e6}
.rj-band--tech .rj-band__media{box-shadow:0 40px 90px -40px rgba(0,0,0,.7)}
.rj-badge{display:inline-flex;align-items:center;gap:.5rem;font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--steel);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:.32rem .8rem;margin-bottom:.9rem}

/* ---------- full-bleed African-aviation band ---------- */
.rj-full{position:relative;min-height:clamp(360px,52vh,540px);display:flex;align-items:center;color:#fff;overflow:hidden;background:var(--ink)}
.rj-full__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.rj-full__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(3,8,18,.82),rgba(3,8,18,.35) 60%,rgba(3,8,18,.55))}
.rj-full__inner{position:relative;z-index:2;max-width:620px}
.rj-full h2{font-size:clamp(1.8rem,3.6vw,2.7rem);line-height:1.1;margin:.6rem 0 .6rem;color:#fff}
.rj-full p{color:#d8e0ee;font-size:1.05rem;line-height:1.6;max-width:34em}

/* ---------- final CTA ---------- */
.rj-final{background:radial-gradient(120% 140% at 15% 0%,var(--blue) 0%,var(--navy) 55%,#00102e 100%);color:#fff;text-align:center}
.rj-final h2{font-size:clamp(1.9rem,4vw,3rem);line-height:1.08;margin:0 auto;max-width:16em;color:#fff}
.rj-final p{color:#c9d6ea;margin:.9rem auto 0;max-width:34em}
.rj-final__row{display:flex;gap:.8rem;flex-wrap:wrap;justify-content:center;margin-top:1.8rem}

/* section rhythm helper */
.rj-sec{padding:clamp(3rem,7vw,5.5rem) 0}
.rj-eyebrow{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--blue)}
.rj-lead{font-size:1.08rem;color:var(--text);line-height:1.6;max-width:44em}

/* responsive */
@media (max-width:1040px){ .rj-div{grid-template-columns:repeat(2,1fr)} }
@media (max-width:860px){
  .rj-band__grid{grid-template-columns:1fr;gap:1.6rem}
  .rj-band--rev .rj-band__media{order:0}
  .rj-why .rj-why__grid{grid-template-columns:1fr 1fr;gap:1.3rem}
}
@media (max-width:560px){
  .rj-div{grid-template-columns:1fr}
  .rj-why .rj-why__grid{grid-template-columns:1fr}
  .rj-hero{min-height:82vh}
}
@media (prefers-reduced-motion:reduce){
  .rj-hero .hero__slide{animation:none;transform:none}
  .rj-scrollcue::after{animation:none}
  .rj-div__card img{transition:none}
}

/* ======================================================================
   REJUVENATION — PHASE 2  (interior page hero + enquiry forms)
   ====================================================================== */
.page-hero--rj{min-height:clamp(320px,44vh,460px);display:flex;align-items:flex-end;
  padding:clamp(96px,13vw,150px) 0 clamp(40px,6vw,64px)}
.page-hero--rj::after{background:linear-gradient(100deg,rgba(3,8,18,.66) 0%,rgba(3,8,18,.4) 46%,rgba(3,8,18,.1) 100%),
  linear-gradient(0deg,rgba(3,8,18,.82) 0%,rgba(3,8,18,.3) 34%,transparent 62%)}
.page-hero--rj h1{font-size:clamp(2rem,4.4vw,3.3rem);line-height:1.05;max-width:18ch}
.phero-kicker{display:inline-flex;align-items:center;gap:.5rem;font-size:.76rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:#e6edf8;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
  padding:.32rem .8rem;border-radius:999px;position:relative;z-index:2;margin-bottom:.4rem}
.phero-kicker .dot{width:6px;height:6px;border-radius:50%;background:var(--gold)}
.phero-cta{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.2rem;position:relative;z-index:2}

/* enquiry form panel (reuses .contact-form fields) */
.rj-enquiry{background:var(--mist);border-radius:18px;padding:clamp(1.4rem,3vw,2.4rem)}
.rj-enquiry--dark{background:var(--graphite-2);color:#fff}
.rj-enquiry--dark .field span{color:#c7d2e2}
.rj-enquiry--dark input,.rj-enquiry--dark textarea,.rj-enquiry--dark select{
  background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);color:#fff}
.rj-enquiry--dark input::placeholder,.rj-enquiry--dark textarea::placeholder{color:#8ea0b8}
.rj-enquiry .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.rj-enquiry .form-grid .full{grid-column:1/-1}
.rj-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.rj-privacy{font-size:.8rem;color:var(--text-soft);margin-top:.4rem}
.rj-enquiry--dark .rj-privacy{color:#93a4bd}
@media (max-width:640px){.rj-enquiry .form-grid{grid-template-columns:1fr}}

/* two-column "info + form" layout */
.rj-split2{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(1.6rem,4vw,3rem);align-items:start}
@media (max-width:900px){.rj-split2{grid-template-columns:1fr}}

/* compact fact/feature list */
.rj-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1.4rem}
.rj-facts .rj-fact{background:#fff;border:1px solid #e6ebf3;border-radius:12px;padding:1rem 1.1rem}
.rj-facts .rj-fact strong{display:block;font-family:var(--display);font-size:1.05rem;color:var(--navy)}
.rj-facts .rj-fact span{font-size:.86rem;color:var(--text-soft);line-height:1.45;display:block;margin-top:.25rem}
.rj-band--tech .rj-facts .rj-fact{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1)}
.rj-band--tech .rj-facts .rj-fact strong{color:#fff}
.rj-band--tech .rj-facts .rj-fact span{color:#b9c5d8}
@media (max-width:560px){.rj-facts{grid-template-columns:1fr}}

/* airline alumni chips (text only — no third-party logos) */
.rj-airlines{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center;margin-top:1.5rem}
.rj-airlines span{font-family:var(--display);font-weight:600;letter-spacing:.02em;color:#e6edf8;
  border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:.5rem 1.15rem;font-size:.95rem}

/* "How you'll learn" cards with illustrative SVG covers (original artwork) */
.rj-learn{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin-top:1.5rem}
.rj-learn-card{background:#fff;border:1px solid #e6ebf3;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-sm)}
.rj-learn__cover{width:100%;aspect-ratio:2/1;display:block}
.rj-learn__cover svg{width:100%;height:100%;display:block}
.rj-learn__body{padding:1.2rem 1.3rem 1.4rem}
.rj-learn__body h3{margin:.5rem 0 .4rem}
.rj-airflow{stroke-dasharray:6 9;animation:rjAir 2.4s linear infinite}
@keyframes rjAir{to{stroke-dashoffset:-60}}
@media (max-width:640px){.rj-learn{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.rj-airflow{animation:none}}

/* <picture> wrappers (WebP) must not affect layout */
picture{display:contents}

/* hero video loop — authentic still as poster/LCP, subtle motion layered over */
.rj-hero__bg{position:absolute;inset:0;z-index:0;overflow:hidden;background:var(--ink)}
.rj-hero__bg .rj-hero__poster,.rj-hero__bg .rj-hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rj-hero__bg .rj-hero__video{z-index:1;opacity:0;transition:opacity .8s ease}
.rj-hero__bg .rj-hero__video.is-ready{opacity:1}
@media (prefers-reduced-motion:reduce){ .rj-hero__bg .rj-hero__video{display:none!important} }

/* page-hero video variant: scrim above the video, content above the scrim */
.page-hero--video::after{z-index:1}
.page-hero--video .page-hero__inner{z-index:2}

/* ======================================================================
   SERIF-LUXE  (final layer)  ·  premium editorial direction
   Inspired by VistaJet / Gulfstream / Dassault: elegant serif display,
   bigger type, more air, graceful motion. Body & UI stay sans.
   ====================================================================== */
:root{
  --display:'Fraunces','Playfair Display',Georgia,serif;
  --serif:'Fraunces','Playfair Display',Georgia,serif;
  --ease-lux:cubic-bezier(.16,.68,.28,1);
}

/* Display headings → serif, easy tracking, optical sizing */
h1,h2,h3,.section-title,.rj-hero h1,.page-hero--rj h1,.rj-final h2,.rj-band h2,.rj-full h2{
  font-family:var(--display);
  font-optical-sizing:auto;
  letter-spacing:-.005em;
  font-weight:600;
}
h1,.rj-hero h1,.page-hero--rj h1{font-weight:600}
h3{font-weight:600;letter-spacing:0}

/* Bigger, more confident scale */
h1{font-size:clamp(2.6rem,6vw,5rem);line-height:1.02}
h2,.section-title{font-size:clamp(2.1rem,4vw,3.4rem);line-height:1.08}

.rj-hero h1{
  font-size:clamp(2.7rem,6.6vw,5.8rem);line-height:1.0;font-weight:600;
  letter-spacing:-.01em;margin-top:1.2rem;text-shadow:0 2px 40px rgba(0,0,0,.4)}
/* editorial italic accent on the emphasised line */
.rj-hero h1 em{font-style:italic;font-weight:500;color:var(--gold)}

.page-hero--rj{min-height:clamp(360px,50vh,520px)}
.page-hero--rj h1{font-size:clamp(2.3rem,5.4vw,4.4rem);line-height:1.02;max-width:16ch}

/* Leads a touch larger and airier */
.rj-hero .lead,.page-hero p,.page-hero--rj p{font-size:clamp(1.05rem,1.5vw,1.3rem);line-height:1.6;max-width:34em}
.lead{font-size:clamp(1.06rem,1.4vw,1.24rem);line-height:1.62}

/* Kickers / eyebrows: stay sans, refined tracking — contrast the serif */
.phero-kicker,.eyebrow,.rj-loc{font-family:var(--head);letter-spacing:.14em}

/* More breathing room */
.rj-sec{padding:clamp(3.6rem,8vw,7rem) 0}
.rj-final{padding:clamp(3.6rem,8vw,6.5rem) 0}

/* Graceful, slower motion */
[data-reveal]{transition:opacity 1s var(--ease-lux),transform 1s var(--ease-lux);transform:translateY(34px)}
[data-reveal="left"]{transform:translateX(-40px)}
[data-reveal="right"]{transform:translateX(40px)}

/* Header wordmark a hair more elegant */
.brand,.logo,.site-logo{letter-spacing:.01em}

@media (prefers-reduced-motion:reduce){[data-reveal]{transition:none}}

/* ---- Photo-wall lightbox ---- */
.wall-fig{position:relative;cursor:zoom-in}
.wall-fig__zoom{position:absolute;top:.6rem;right:.6rem;width:34px;height:34px;display:grid;place-items:center;
  border-radius:999px;background:rgba(12,25,48,.55);backdrop-filter:blur(4px);opacity:0;transform:scale(.9);
  transition:opacity .25s var(--ease-lux),transform .25s var(--ease-lux);z-index:2}
.wall-fig__zoom svg{width:18px;height:18px;fill:#fff}
.wall-fig:hover .wall-fig__zoom,.wall-fig:focus-visible .wall-fig__zoom{opacity:1;transform:scale(1)}
.wall-fig:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.lb{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;
  background:rgba(6,12,24,.92);backdrop-filter:blur(6px);opacity:0;visibility:hidden;
  transition:opacity .35s var(--ease-lux),visibility .35s;padding:clamp(1rem,4vw,3rem)}
.lb.is-open{opacity:1;visibility:visible}
.lb__inner{max-width:min(1100px,92vw);max-height:88vh;display:flex;flex-direction:column;gap:.8rem;
  transform:scale(.96);transition:transform .35s var(--ease-lux)}
.lb.is-open .lb__inner{transform:scale(1)}
.lb__img{max-width:100%;max-height:78vh;object-fit:contain;border-radius:10px;box-shadow:0 40px 120px -30px rgba(0,0,0,.8);background:#0c1930}
.lb__cap{text-align:center;color:#eaf0fb;font-family:var(--head)}
.lb__cap b{display:block;font-size:1.15rem;font-weight:800}
.lb__cap span{color:#9fb0cc;font-size:.9rem}
.lb__close{position:absolute;top:1rem;right:1.2rem;width:44px;height:44px;border:0;border-radius:999px;
  background:rgba(255,255,255,.1);color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;transition:background .2s}
.lb__close:hover{background:rgba(255,255,255,.22)}
@media (prefers-reduced-motion:reduce){.lb,.lb__inner{transition:none}}

/* ---- Header: the contact bar scrolls away, the MENU pins to the top ----
   Contact bar + menu sit in normal flow at the top; once you scroll past the
   contact bar, main.js adds body.menu-pinned and the menu becomes fixed at the
   top (reliable on every page/length — uses fixed, not sticky). Applies on all
   screen sizes, so on mobile only the menu pins (the contact bar scrolls off). */
.site-top{position:relative;z-index:60}
.site-top .site-header{position:static}
body.menu-pinned .site-header{position:fixed;top:0;left:0;right:0;z-index:60;box-shadow:0 10px 30px -18px rgba(0,0,0,.7)}
body.scrolled .site-header .container-wide{padding-top:0;padding-bottom:0} /* keep menu height constant when condensed */
@media (max-width:640px){
  .site-top .topbar .container{padding-top:.3rem;padding-bottom:.3rem}
}

/* 3-up fact rows — only above the mobile breakpoint, so the existing
   @media (max-width:560px){.rj-facts{grid-template-columns:1fr}} still wins on phones.
   (Previously set inline, which overrode the media query and produced very tall,
   ~98px-wide columns on a 375px screen.) */
@media (min-width:561px){ .rj-facts--3{grid-template-columns:repeat(3,1fr)} }

/* Slightly roomier dropdowns so longer entries (e.g. "Safety Equipment &
   Procedures (SEPT)" and the Soft Courses group label) sit on one line.
   Desktop only — the mobile drawer keeps its own min-width:0. */
@media (min-width:861px){ .submenu{min-width:275px} }
