/* ============================================================
   site.css - shared chrome for every page of flycpjets.com
   ------------------------------------------------------------
   Palette, reset, type roles, header/nav, buttons, footer,
   newsletter band, photo tiles, airport-picker dropdown, and
   accessibility helpers. Page-specific styles stay inline on
   their page. Loaded before the inline <style>, so a page can
   override anything here.
   ============================================================ */

:root{
    --navy:#0E1B2E;        /* header, footer, deep panels */
    --navy-2:#122236;      /* raised navy panel */
    --ink:#141F30;         /* headlines on light */
    --paper:#F4F6F9;       /* page background */
    --card:#FFFFFF;        /* cards and forms */
    --steel:#9CBAD9;       /* powder blue, primary button */
    --steel-strong:#7FA6CE;
    --blue:#2B6CB0;        /* links, accents */
    --tint:#E4EEF7;        /* callout background */
    --line:#DCE4ED;        /* hairlines on light */
    --line-dark:rgba(228,238,247,0.16); /* hairlines on navy */
    --dim:#5A6B80;         /* secondary text on light */
    --dim-dark:#A9BBD0;    /* secondary text on navy */
    --max:1120px;
  }
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *,*::before,*::after{animation:none !important;transition:none !important;}
  }
body{
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter',system-ui,sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
::selection{background:var(--navy);color:#fff;}
a{color:var(--blue);}
a:hover{color:var(--steel-strong);}
img{max-width:100%;display:block;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px;}
/* ---------- type roles ---------- */
  .display{font-family:'Fraunces',Georgia,serif;font-weight:500;letter-spacing:-0.01em;}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:0.78rem;letter-spacing:0.08em;text-transform:uppercase;}
.eyebrow{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:0.72rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--blue);}
.nav{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;min-height:64px;padding-top:10px;padding-bottom:10px;}
.brand{display:flex;flex-direction:column;line-height:1.1;text-decoration:none;color:#fff;}
.brand .name{font-family:'Fraunces',Georgia,serif;font-size:1.15rem;font-weight:600;letter-spacing:0.01em;}
.brand .tag{font-family:'JetBrains Mono',monospace;font-size:0.58rem;letter-spacing:0.32em;text-transform:uppercase;color:var(--dim-dark);}
.nav-right{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:flex-end;}
.nav-link{font-family:'Inter',sans-serif;font-size:0.85rem;font-weight:500;color:#fff;opacity:0.85;text-decoration:none;}
.nav-link:hover{opacity:1;color:var(--steel);}
.nav-social{display:flex;gap:8px;align-items:center;border-left:1px solid var(--line-dark);border-right:1px solid var(--line-dark);margin:0 2px;padding:0 14px;}
.nav-social a{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;color:var(--dim-dark);}
.nav-social a:hover{color:var(--steel);}
.nav-social svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.nav-phone{font-family:'JetBrains Mono',monospace;font-size:0.8rem;letter-spacing:0.06em;color:#fff;text-decoration:none;border-bottom:1px solid transparent;}
.nav-phone:hover{border-bottom-color:var(--steel);color:#fff;}
.btn{
    display:inline-block;
    font-family:'Inter',sans-serif;font-weight:600;font-size:0.85rem;
    padding:11px 22px;border-radius:3px;
    text-decoration:none;cursor:pointer;border:1px solid transparent;
    transition:background 0.18s ease,color 0.18s ease,border-color 0.18s ease;
  }
.btn-primary{background:var(--steel);color:var(--navy);}
.btn-primary:hover{background:var(--steel-strong);color:var(--navy);}
@media(max-width:640px){ .nav-phone,.nav-social{display:none;} }
/* ---------- footer ---------- */
  footer{background:var(--navy);color:#fff;padding:56px 0 64px;}
.foot-brand .name{font-family:'Fraunces',Georgia,serif;font-size:1.2rem;font-weight:600;color:#fff;}
.foot-brand .tag{display:block;font-family:'JetBrains Mono',monospace;font-size:0.6rem;letter-spacing:0.32em;text-transform:uppercase;color:var(--dim-dark);margin:7px 0 0;}
.foot-brand .powered{display:block;font-family:'Inter',sans-serif;font-size:0.8rem;color:var(--dim-dark);margin:12px 0 18px;}
.foot-contact{display:flex;flex-direction:column;gap:8px;}
.foot-contact a{color:#fff;text-decoration:none;font-family:'JetBrains Mono',monospace;font-size:0.84rem;}
.foot-contact a:hover{color:var(--steel);}
.socials{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap;}
.socials a{display:inline-flex;width:38px;height:38px;border:1px solid var(--line-dark);border-radius:50%;align-items:center;justify-content:center;color:#fff;transition:border-color 0.18s ease,color 0.18s ease;}
.socials a:hover{border-color:var(--steel);color:var(--steel);}
.socials svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.legal{color:var(--dim-dark);font-size:0.78rem;line-height:1.7;}
.legal strong{color:#E8EEF5;}
.fine{margin-top:36px;padding-top:22px;border-top:1px solid var(--line-dark);color:var(--dim-dark);font-size:0.75rem;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;}

/* ---------- reconciled shared components ---------- */
header{
  position:sticky;top:0;z-index:100;
  background:var(--navy);
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.nav-link[aria-current="page"]{color:var(--steel);opacity:1;}
.btn:focus-visible,a:focus-visible,input:focus-visible,button:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--blue);outline-offset:2px;
}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:40px;}
.shot{border-radius:6px;width:100%;height:100%;object-fit:cover;}
.brief-copy{flex:1.1;min-width:min(300px,100%);}
.brief-copy .eyebrow{color:var(--steel);}
.brief-copy h2{font-size:clamp(1.5rem,2.6vw,2rem);margin:12px 0 10px;color:#fff;}
.brief-copy p{color:var(--dim-dark);font-size:0.95rem;}
.brief-form{flex:0.9;min-width:min(280px,100%);}
.brief-form form{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px;}
.brief-note{color:var(--dim-dark);font-size:0.82rem;}
.brief-note strong{color:#fff;}
.brief-note a{color:var(--steel);}
.brief-note a:hover{color:#fff;}
@media(max-width:640px){ .brief{padding:30px 22px;gap:28px;} }
.brief-form input[type="email"]{
    flex:1;min-width:min(200px,100%);
    background:#fff;border:1px solid var(--line);border-radius:3px;
    color:var(--ink);font-family:'Inter',sans-serif;font-size:0.93rem;
    padding:13px 14px;
  }
.ac-list{
    position:absolute;top:100%;left:0;right:0;min-width:min(280px,80vw);z-index:80;
    background:#fff;border:1px solid var(--line);border-radius:4px;
    box-shadow:0 12px 32px rgba(14,27,46,0.14);
    margin-top:4px;max-height:288px;overflow-y:auto;
  }
.ac-row{display:flex;align-items:center;gap:10px;padding:9px 13px;cursor:pointer;}
.ac-row[aria-selected="true"]{background:var(--tint);}
.ac-main{flex:1;min-width:0;}
.ac-name{font-size:0.88rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ac-sub{font-size:0.76rem;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ac-code{font-family:'JetBrains Mono',monospace;font-size:0.74rem;letter-spacing:0.06em;color:var(--blue);border:1px solid var(--line);border-radius:3px;padding:2px 6px;flex:none;}
.ac-note{padding:10px 13px;font-size:0.8rem;color:var(--dim);}
@media(max-width:640px){ .ac-list{min-width:0;} }
input::placeholder,textarea::placeholder{color:#63758C;}

.brief{
    background:var(--navy);border-radius:6px;padding:48px;
    display:flex;flex-wrap:wrap;gap:44px;align-items:center;color:#fff;
  }

/* ---------- accessibility ---------- */
.skip-link{
  position:absolute;left:0;top:-52px;z-index:200;
  background:var(--navy);color:#fff;
  font-family:'Inter',sans-serif;font-weight:600;font-size:0.85rem;
  padding:12px 20px;text-decoration:none;transition:top 0.15s ease;
}
.skip-link:focus{top:0;outline:2px solid var(--steel);outline-offset:-2px;}
header a:focus-visible,header .btn:focus-visible{outline-color:var(--steel);}
