/* Great Flight: layout and components. Per-section colours and type sizes are in captured.css. */
@font-face{font-family:'Open Sans';src:url(/assets/fonts/open-sans-300.woff2) format('woff2');font-weight:300;font-display:swap}
@font-face{font-family:'Open Sans';src:url(/assets/fonts/open-sans-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Open Sans';src:url(/assets/fonts/open-sans-500.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Open Sans';src:url(/assets/fonts/open-sans-600.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Open Sans';src:url(/assets/fonts/open-sans-700.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Open Sans';src:url(/assets/fonts/open-sans-800.woff2) format('woff2');font-weight:800;font-display:swap}
@font-face{font-family:Inter;src:url(/assets/fonts/inter-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url(/assets/fonts/inter-800.woff2) format('woff2');font-weight:800;font-display:swap}
@font-face{font-family:Tomorrow;src:url(/assets/fonts/tomorrow-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Tomorrow;src:url(/assets/fonts/tomorrow-600.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Poppins;src:url(/assets/fonts/poppins-500.woff2) format('woff2');font-weight:500;font-display:swap}

:root{--red:#c60016;--head:#383838;--bar:#222;--link:#2ea3f2}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:20px}
body{margin:0;background:#383838;color:#666;font:500 14px/1.7 'Open Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--link);text-decoration:none}
h1,h2,h3,h4,h5,h6{margin:0;padding-bottom:10px;font-weight:500;line-height:1}
p{margin:0;padding-bottom:1em}
p:last-child{padding-bottom:0}
hr{border:0;border-top:1px solid var(--link);margin:0}
svg{fill:currentColor}

/* Header */
.site-head{background:var(--head);position:relative;z-index:50}
.head-top{display:flex;align-items:center;justify-content:space-between;width:80%;max-width:1152px;margin:auto;height:79px}
.head-top::after{content:'';position:absolute;left:0;right:0;top:78px;border-top:1px solid #5e5e5e}
.logo img{width:200px;height:48px}
.head-btns{display:flex;gap:30px}
.hb{display:inline-flex;align-items:center;gap:4px;height:43px;padding:0 15px 0 10px;border-radius:2px;font:500 16px/1 Poppins,sans-serif}
.hb svg{width:18px;height:18px}
.hb-mail{background:#fff;color:#383838}
.hb-call{background:var(--red);color:#fff}
.head-nav{width:80%;max-width:1152px;margin:-4px auto 0;height:74px;display:flex;justify-content:flex-end}
.menu{list-style:none;display:flex;gap:22px;margin:0;padding:0}
.menu>li{position:relative}
.menu>li>a{display:flex;align-items:center;height:74px;color:#fff;font:500 16px/1 Poppins,sans-serif}
.has-sub>a::after{content:'';width:6px;height:6px;margin:0 4px 0 10px;border:solid currentColor;border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}
.menu ul{list-style:none;position:absolute;left:-11px;top:100%;width:240px;margin:0;padding:20px 0;background:var(--head);border-top:3px solid var(--red);box-shadow:0 2px 5px rgba(0,0,0,.1);opacity:0;visibility:hidden;transition:opacity .2s}
.menu li:hover>ul,.menu li:focus-within>ul{opacity:1;visibility:visible}
.menu ul a{display:block;padding:6px 20px;color:#fff;font:500 16px/1.5 Poppins,sans-serif}
.menu ul a:hover{background:rgba(255,255,255,.05)}
.burger{display:none;background:none;border:0;padding:8px;cursor:pointer;align-self:center}
.burger span{display:block;width:26px;height:3px;margin:5px 0;background:#fff}

/* Hero slider */
.hero{--s:var(--hero-s,1);position:relative;height:600px;overflow:hidden;background:#210e00}
.slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1s ease,visibility 0s 1s}
.slide.on{opacity:1;visibility:visible;transition:opacity 1s ease;z-index:1}
.slide-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.06);transition:transform 4s ease-out}
.slide.on .slide-bg{transform:scale(1)}
.stage{position:absolute;top:0;left:max(0px,calc(50% - 620px));width:1240px;height:600px;transform:scale(var(--s));transform-origin:0 50%}
.layer{position:absolute;margin:0;padding:0;line-height:1.2;max-width:calc((100vw - 48px)/var(--s));opacity:0;transform:translateY(24px)}
.slide.on .layer{opacity:1;transform:none;transition:opacity .7s ease .35s,transform .7s cubic-bezier(.2,.7,.2,1) .35s}
.hero-ctl{position:absolute;z-index:3;display:flex;gap:10px;bottom:30px;right:max(60px,calc(50% - 660px))}
.hero-ctl.single{right:max(70px,calc(50% - 650px))}
.fly{display:grid;place-items:center;width:220px;height:72px;background:var(--red);border-radius:5px;color:rgba(255,255,255,.85);font:600 18px/1 Tomorrow,sans-serif;text-transform:uppercase;transition:background .25s}
.fly:hover{background:#000;color:#fff}
.arr{width:72px;height:72px;display:grid;place-items:center;background:none;border:1px solid #000;border-radius:5px;color:#000;cursor:pointer;transition:background .25s,color .25s}
.arr:hover{background:#000;color:#fff}
.arr svg{width:20px;height:20px}

/* Sections */
.sec{position:relative}
.row{display:grid;grid-template-columns:var(--cols,1fr);gap:var(--gap,0);width:80%;max-width:1080px;margin:auto}
.col{min-width:0}
.mod{margin-bottom:0}
.prose ul,.prose ol{margin:0;padding:0 0 1em 1.6em}
.prose table{border-collapse:collapse;width:100%}
.prose td{padding:4px 6px;border:1px solid rgba(255,255,255,.2)}
.prose a{color:var(--link)}
.pic{width:100%}
.btn-wrap{padding:0}
.btn{display:inline-block;padding:.3em 1em;transition:transform .2s}
.pop:hover{transform:scale(1.06)}
.btn-line{border:2px solid #fff;color:#fff;border-radius:3px}
.video{position:relative;aspect-ratio:16/9}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Blurbs */
.blurb{display:flex;flex-direction:column;gap:16px;color:inherit}
.blurb.pic-left{flex-direction:row;align-items:center;gap:30px}
.blurb.pic-right{flex-direction:row-reverse;align-items:center;gap:30px}
.blurb-pic{flex:none}
.blurb-body{min-width:0;flex:1}
.wobble:hover{animation:wobble 1s ease-in-out}
@keyframes wobble{16%{transform:translateX(6px)}33%{transform:translateX(-4px)}50%{transform:translateX(3px)}66%{transform:translateX(-2px)}83%{transform:translateX(1px)}100%{transform:none}}
.multi{padding:0}
.mh{display:block;width:fit-content;padding-bottom:8px}
.blurb.pic-bottom{flex-direction:column-reverse}
.pre{padding:0 0 4px;color:var(--link);font-size:12px;letter-spacing:2px}

/* Flip cards */
.flip{perspective:1200px;outline-offset:4px}
.flip-in{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.4,.2,.2,1)}
.flip:hover .flip-in,.flip:focus-within .flip-in{transform:rotateY(180deg)}
.face{position:absolute;inset:0;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;color:#fff}
.face.back{transform:rotateY(180deg);overflow:auto;justify-content:flex-start;text-align:left}
.face.front img{max-height:75%;object-fit:contain;margin-bottom:14px}
.face h3{color:#fff;padding:0 12px 8px}
.face .sub{padding-bottom:6px;color:#ddd}
.face .prose{width:100%;color:#fff}

/* Spec strip */
.specs{display:flex;flex-wrap:wrap;margin:0}
.specs>div{flex:1 1 160px;padding:10px;text-align:center}
.specs dd{margin:0}

/* Accordions */
.faq{display:grid;gap:0}
.faq details{margin-bottom:16px}
.faq summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:'+';flex:none;width:20px;height:20px;border-radius:50%;background:var(--red);color:#fff;font:700 15px/20px 'Open Sans',sans-serif;text-align:center}
.faq details[open] summary::before{content:'\2212'}

/* Timeline */
.timeline{position:relative;list-style:none;margin:40px 0 0;padding:0}
.timeline::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:3px;margin-left:-1.5px;background:var(--red)}
.tl-item{position:relative;display:flex;align-items:center;width:50%;padding:0 50px 40px 0;gap:0}
.tl-item:nth-child(even){margin-left:50%;padding:0 0 40px 50px;flex-direction:row-reverse}
.tl-card{flex:1;padding:16px 20px}
.tl-date{position:absolute;top:18px;left:calc(100% + 50px);white-space:nowrap}
.tl-item:nth-child(even) .tl-date{left:auto;right:calc(100% + 50px)}
.tl-dot{position:absolute;right:-16px;top:12px;width:32px;height:32px;border-radius:50%;background:var(--red);z-index:1}
.tl-dot::after{content:'';position:absolute;left:11px;top:7px;width:8px;height:14px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}
.tl-item:nth-child(even) .tl-dot{right:auto;left:-16px}

/* Reviews */
.quotes{position:relative;padding:0 40px}
.q-view{overflow:hidden}
.q-track{display:flex;transition:transform .6s ease}
.quote{flex:0 0 33.333%;margin:0;padding:0 8px;text-align:center}
.quote blockquote{margin:0}
.stars{color:#f5c518;font-size:20px;letter-spacing:2px;padding:14px 0 6px}
.q-nav{position:absolute;top:50%;width:24px;height:24px;margin-top:-12px;background:#000;border:0;cursor:pointer}
.q-nav::after{content:'';position:absolute;left:8px;top:7px;width:9px;height:9px;border:solid #fff;border-width:0 0 2px 2px;transform:rotate(45deg)}
.q-prev{left:0}
.q-next{right:0;transform:scaleX(-1)}

/* Charter form */
.charter{padding:20px;background:#222;color:#ccc}
.charter h2{font-size:26px;color:#fff;padding-bottom:24px}
.fields{display:grid;grid-template-columns:repeat(12,1fr);gap:24px 40px}
.field{min-width:0}
.field[hidden]{display:none}
.w-quarter{grid-column:span 3}
.w-third{grid-column:span 4}
.w-half{grid-column:span 6}
.w-full{grid-column:span 12}
.f-label{display:block;margin-bottom:6px;color:#ccc;font-size:16px;font-weight:700}
.f-label em{font-size:13px;font-weight:400;color:#e23a2e}
.field input:not([type=radio]):not([type=checkbox]),.field select,.field textarea{width:100%;padding:7px 12px;background:#eee;border:0;color:#333;font:500 16px 'Open Sans',sans-serif}
.field small{display:block;margin-top:8px;font-size:12px;color:#999}
.choice{display:block;margin:6px 0;color:#ccc;font-size:16px}
.charter button{width:100%;margin-top:30px;padding:12px;background:#000;border:0;border-radius:3px;color:#fff;font:500 20px 'Open Sans',sans-serif;cursor:pointer}
.f-msg{margin-top:14px;padding:0;color:#fff}

/* Footer */
.site-foot{background:var(--head);color:#ddd}
.foot-logo{width:196px;margin:0 auto;padding-top:27px}
.foot-cols{display:grid;grid-template-columns:240px 240px 240px 240px;justify-content:space-between;width:80%;max-width:1152px;margin:auto;padding:67px 0 60px;text-align:center}
.fc h4{color:#fff;font-size:26px;font-weight:700;line-height:1.2;text-transform:uppercase;padding-bottom:20px}
.fc p{padding-bottom:14px}
.fc-red{align-self:start;background:var(--red);color:#fff;padding:40px 12px 30px;margin-top:-40px}
.fc-red address{font-style:normal;line-height:2}
.dir{display:inline-block;width:170px;margin-top:20px;padding:14px;background:#383838;color:#fff;letter-spacing:1px;text-transform:uppercase}
.fc-nav{text-align:left}
.foot-menu{list-style:none;margin:0 0 40px;padding:0 0 0 100px}
.foot-menu ul{display:none}
.foot-menu a{display:inline-flex;align-items:center;padding:8px 0;color:#fff;font-size:16px;font-weight:700;letter-spacing:2px}
.foot-menu .has-sub>a::after{color:var(--link);width:5px;height:5px;border-width:0 1px 1px 0;margin-left:12px}
.pp{display:block;margin-top:50px;text-align:right;color:#b7b7b7}
.foot-bar{display:flex;justify-content:space-between;align-items:center;min-height:80px;padding:0 max(10%,calc(50% - 490px));background:var(--bar)}
.foot-bar p{padding:0}
.social{list-style:none;display:flex;gap:8px;margin:0;padding:0}
.social a{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#ddd;color:#000}
.social svg{width:14px;height:14px}
.float-cta{position:fixed;right:24px;bottom:24px;z-index:40;padding:8px 16px;background:var(--red);border-radius:4px;color:#fff;font-size:16px;letter-spacing:1px;text-transform:uppercase;opacity:0;visibility:hidden;transition:opacity .3s}
.float-cta.show{opacity:1;visibility:visible}

/* Tablet and phone */
@media (max-width:980px){
  .row{grid-template-columns:1fr;gap:30px}
  .head-top,.head-nav{width:90%}
  .burger{display:block}
  .head-nav{height:60px;position:relative}
  .menu{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;padding:10px 20px;background:var(--head);border-top:3px solid var(--red)}
  .head-nav.open .menu{display:flex}
  .menu>li>a{height:auto;padding:12px 0}
  .menu ul{position:static;width:auto;padding:0 0 0 14px;border:0;box-shadow:none;opacity:1;visibility:visible;display:none}
  .sub-open>ul{display:block}
  .blurb.pic-left,.blurb.pic-right{flex-direction:column;align-items:flex-start}
  .foot-cols{grid-template-columns:1fr 1fr;gap:40px 20px}
  .fc-red{margin-top:0}
  .foot-menu{padding-left:0}
  .w-quarter,.w-third{grid-column:span 6}
  .quote{flex-basis:50%}
}
@media (max-width:767px){
  .hero{height:488px}
  .stage{left:24px;width:auto;right:0}
  .hero-ctl,.hero-ctl.single{right:16px;left:16px;bottom:16px;justify-content:flex-end}
  .fly{width:170px;height:56px;font-size:16px}
  .arr{width:56px;height:56px}
  .head-top{height:auto;padding:12px 0;flex-wrap:wrap;gap:10px}
  .head-top::after{display:none}
  .hb{font-size:14px;height:38px}
  .head-btns{gap:10px}
  .timeline::before{left:16px}
  .tl-item,.tl-item:nth-child(even){width:100%;margin:0;padding:0 0 30px 50px;flex-direction:column;align-items:stretch}
  .tl-dot,.tl-item:nth-child(even) .tl-dot{left:0;right:auto}
  .tl-date,.tl-item:nth-child(even) .tl-date{position:static;display:block;margin-top:6px}
  .quote{flex-basis:100%}
  .w-quarter,.w-third,.w-half{grid-column:span 12}
  .foot-cols{grid-template-columns:1fr}
  .foot-bar{flex-direction:column;gap:12px;padding:16px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .slide,.slide-bg,.layer,.flip-in,.q-track{transition:none!important}
  .wobble:hover{animation:none}
}

/* Organic image mask used on blurb photos */
.blob{border-radius:58% 42% 46% 54% / 52% 58% 42% 48%;object-fit:cover}

/* Form grid: the 12 column gaps alone are wider than a phone */
@media (max-width:980px){.fields{gap:20px 16px}}
@media (max-width:767px){.fields{grid-template-columns:1fr}.fields .field{grid-column:auto}}

/* Phone hero: slide text stacks above the buttons instead of using desktop coordinates */
@media (max-width:767px){
  .stage{inset:0;left:0;width:auto;height:auto;transform:none;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;padding:0 20px 92px}
  .layer{position:static!important;max-width:100%}
  h1.layer,h2.layer{font-size:34px!important;letter-spacing:-1px!important}
  p.layer{font-size:16px!important}
  img.layer{width:120px!important}
}
@media (max-width:767px){p.layer{letter-spacing:0!important}}
