/* ============================================================
   NORTHLINE TRAVEL REPRESENTATION — Brand stylesheet
   Palette: Midnight + Ivory · Type: Jost
   ============================================================ */
:root{
  --ink:#1D2530;          /* midnight */
  --panel:#26313D;
  --ink-soft:#233040;
  --paper:#F4F2EC;        /* ivory */
  --paper-pure:#FBFAF6;
  --slate:#8A94A0;
  --slate-deep:#5E6A76;
  --gold:#C9A24C;
  --gold-deep:#A9853A;
  --hairline:rgba(29,37,48,.14);
  --hairline-light:rgba(244,242,236,.16);
  --line-dark:#3A4653;
  --display:'Jost',sans-serif;
  --body:'Jost',sans-serif;
  --mono:'IBM Plex Mono',monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--body);font-weight:400;background:var(--paper);color:var(--ink);
  line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
::selection{background:var(--gold);color:#fff}

/* ---------- Wordmark ---------- */
.wm{font-family:var(--display);font-weight:300;letter-spacing:.18em}
.wm .cut{font-weight:200;display:inline-block;transform:translateY(-.02em)}

/* ---------- Nav ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;
  padding:0 clamp(20px,5vw,64px);height:76px;background:rgba(244,242,236,.9);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--hairline);transition:background .3s,color .3s,border-color .3s}
nav.on-dark{background:rgba(29,37,48,.55);border-bottom-color:var(--hairline-light);color:var(--paper)}
.brand{display:flex;flex-direction:column;line-height:1.1}
.brand .mark{font-family:var(--display);font-weight:400;font-size:29px;letter-spacing:.2em}
.brand .mark .cut{font-weight:300;color:var(--gold)}
.brand .sub{font-family:var(--mono);font-size:9.5px;letter-spacing:.36em;color:var(--slate);text-transform:uppercase;padding-left:.22em;margin-top:3px}
nav{height:84px}
nav.on-dark .brand .sub{color:var(--slate)}
.nav-links{display:flex;gap:clamp(18px,3vw,42px);font-size:12.5px;font-weight:400;letter-spacing:.14em;text-transform:uppercase}
.nav-links a{opacity:.72;transition:opacity .2s,border-color .2s;padding:6px 0;border-bottom:1px solid transparent}
.nav-links a:hover,.nav-links a:focus-visible,.nav-links a.active{opacity:1;border-bottom-color:var(--gold)}
.nav-cta{font-size:11.5px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;
  border:1px solid var(--gold);color:var(--gold-deep);padding:11px 22px;border-radius:2px;transition:all .25s}
nav.on-dark .nav-cta{color:var(--gold);border-color:var(--gold)}
.nav-cta:hover,.nav-cta:focus-visible{background:var(--gold);color:#fff!important;border-color:var(--gold)}
.menu-btn{display:none;background:none;border:none;cursor:pointer;font-family:var(--mono);font-size:12px;
  letter-spacing:.16em;color:inherit;text-transform:uppercase;padding:8px}

/* ---------- Buttons ---------- */
.btn{display:inline-block;font-family:var(--display);font-size:12.5px;font-weight:400;letter-spacing:.16em;
  text-transform:uppercase;padding:16px 34px;border-radius:2px;transition:all .25s;border:1px solid transparent;cursor:pointer}
.btn-solid{background:var(--paper);color:var(--ink)}
.btn-solid:hover,.btn-solid:focus-visible{background:#fff;transform:translateY(-2px)}
.btn-gold{background:var(--gold);color:#fff}
.btn-gold:hover,.btn-gold:focus-visible{background:var(--gold-deep);transform:translateY(-2px)}
.btn-ghost{border-color:rgba(244,242,236,.45);color:var(--paper)}
.btn-ghost:hover,.btn-ghost:focus-visible{border-color:var(--paper);background:rgba(244,242,236,.08)}
.btn-dark{border:1px solid var(--ink);color:var(--ink)}
.btn-dark:hover{background:var(--ink);color:var(--paper)}

/* ---------- Hero ---------- */
header.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;
  color:var(--paper);overflow:hidden;padding:160px clamp(20px,7vw,96px) 120px;background:var(--ink)}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%;z-index:0}
.hero-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(95deg,rgba(29,37,48,.88) 0%,rgba(29,37,48,.6) 46%,rgba(29,37,48,.34) 100%),
             linear-gradient(180deg,rgba(29,37,48,.2) 0%,rgba(29,37,48,0) 40%,rgba(29,37,48,.55) 100%)}
.hero-brand{position:relative;z-index:2;margin-bottom:34px}
.hero-brand .wm-lg{display:block;font-family:var(--display);font-weight:300;font-size:clamp(48px,9vw,112px);
  letter-spacing:.14em;line-height:1;color:var(--paper)}
.hero-brand .wm-lg .cut{font-weight:200;color:var(--gold)}
.hero-brand .wm-sub{display:block;font-family:var(--mono);font-size:clamp(10px,1.1vw,13px);letter-spacing:.44em;
  color:var(--gold);margin-top:18px;padding-left:.24em;text-transform:uppercase}
header.hero h1{font-family:var(--display);font-weight:300;font-size:clamp(27px,3.9vw,50px);line-height:1.14;max-width:20ch}
.hero-slash{position:absolute;top:-8%;right:-6%;font-family:var(--display);font-weight:200;font-size:min(62vw,900px);
  line-height:1;color:var(--panel);z-index:0;pointer-events:none;user-select:none}
.hero-route{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.hero-route path{fill:none;stroke:rgba(244,242,236,.28);stroke-width:1.4;stroke-dasharray:2 9;stroke-linecap:round}
.hero-route .plane{fill:rgba(244,242,236,.8)}
.hero-route circle{fill:var(--gold)}
.hero-route text{font-family:var(--mono);font-size:10px;letter-spacing:.2em;fill:rgba(244,242,236,.45)}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);
  margin-bottom:28px;position:relative;z-index:2}
h1{font-family:var(--display);font-weight:300;font-size:clamp(38px,6.6vw,82px);line-height:1.08;letter-spacing:.005em;
  max-width:17ch;position:relative;z-index:2}
h1 em{font-style:normal;color:var(--gold)}
.hero-sub{margin-top:30px;font-size:clamp(16px,1.6vw,20px);max-width:56ch;color:rgba(244,242,236,.82);
  font-weight:300;position:relative;z-index:2}
.hero-ctas{margin-top:46px;display:flex;gap:16px;flex-wrap:wrap;position:relative;z-index:2}
.hero-foot{position:absolute;bottom:32px;left:clamp(20px,7vw,96px);right:clamp(20px,7vw,96px);
  display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:11px;
  letter-spacing:.16em;color:rgba(244,242,236,.5);text-transform:uppercase;z-index:2}

/* page hero (interior pages) */
header.page-head{background:var(--ink);color:var(--paper);padding:170px clamp(20px,7vw,96px) 90px;position:relative;overflow:hidden}
header.page-head .hero-slash{font-size:min(48vw,620px);top:-14%}
header.page-head .eyebrow{margin-bottom:20px}
header.page-head h1{font-size:clamp(34px,5vw,64px);max-width:20ch}
header.page-head p{margin-top:22px;max-width:60ch;color:rgba(244,242,236,.8);font-weight:300;position:relative;z-index:2}

/* ---------- Sections ---------- */
section{padding:clamp(78px,10vw,132px) clamp(20px,7vw,96px);position:relative}
.sec-label{font-family:var(--mono);font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-deep);
  display:flex;align-items:center;gap:14px;margin-bottom:22px}
.sec-label::before{content:"";width:30px;height:1px;background:var(--gold)}
section.dark .sec-label{color:var(--gold)}
h2{font-family:var(--display);font-weight:300;font-size:clamp(29px,4.1vw,50px);line-height:1.16;letter-spacing:.005em;max-width:24ch}
.lede{margin-top:22px;font-size:clamp(16px,1.5vw,19px);color:var(--slate-deep);max-width:64ch;font-weight:300}
section.dark{background:var(--ink);color:var(--paper)}
section.dark .lede{color:rgba(244,242,236,.8)}
section.tint{background:var(--paper-pure)}

/* travel divider */
.route-divider{display:flex;align-items:center;margin:0 clamp(20px,7vw,96px)}
.route-divider .dot{width:6px;height:6px;border-radius:50%;background:var(--gold);flex:0 0 auto}
.route-divider .dash{flex:1;border-top:1.5px dotted rgba(138,148,160,.55)}
.route-divider .glyph{flex:0 0 auto;padding:0 16px;color:var(--slate);font-size:14px;font-family:var(--display)}

/* Intro cols + facts */
.intro-cols{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(36px,6vw,90px);align-items:start}
.facts{display:grid;border-top:1px solid var(--hairline)}
.fact{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:20px 0;border-bottom:1px solid var(--hairline)}
.fact b{font-family:var(--display);font-weight:300;font-size:28px;letter-spacing:.01em}
.fact span{font-size:13px;color:var(--slate-deep);text-align:right;max-width:24ch;font-weight:300}

/* Service cards */
.svc-grid{margin-top:56px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.svc{background:var(--paper-pure);border:1px solid var(--hairline);border-radius:8px;padding:34px 30px 38px;
  transition:transform .3s,box-shadow .3s,border-color .3s}
.svc:hover{transform:translateY(-5px);box-shadow:0 22px 46px -24px rgba(29,37,48,.35);border-color:rgba(29,37,48,.22)}
.svc .idx{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--gold-deep);margin-bottom:20px}
.svc h3{font-family:var(--display);font-weight:400;font-size:21px;line-height:1.3;margin-bottom:12px;letter-spacing:.01em}
.svc p{font-size:14.5px;color:var(--slate-deep);line-height:1.66;font-weight:300}

/* Featured (Media Collaboration) */
.feature{margin-top:26px;background:var(--ink);color:var(--paper);border-radius:10px;
  padding:clamp(38px,5vw,64px);position:relative;overflow:hidden}
.feature .fslash{position:absolute;top:-30%;right:-4%;font-family:var(--display);font-weight:200;font-size:min(40vw,460px);
  line-height:1;color:var(--panel);z-index:0;pointer-events:none}
.feature .inner{position:relative;z-index:1}
.feature .tag{font-family:var(--mono);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.feature h3{font-family:var(--display);font-weight:300;font-size:clamp(26px,3.4vw,40px);line-height:1.14;max-width:20ch}
.feature .flede{margin-top:20px;max-width:60ch;color:rgba(244,242,236,.82);font-weight:300;font-size:16.5px}
.media-grid{margin-top:42px;display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.media-item{border-top:1px solid var(--hairline-light);padding-top:20px}
.media-item .mi-idx{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--gold);margin-bottom:12px}
.media-item h4{font-family:var(--display);font-weight:400;font-size:18px;letter-spacing:.01em;margin-bottom:8px}
.media-item p{font-size:13.5px;color:rgba(244,242,236,.72);font-weight:300;line-height:1.6}

/* About */
.about-cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,90px);margin-top:54px}
.about-cols p{color:rgba(244,242,236,.85);font-size:16.5px;margin-bottom:18px;font-weight:300}
.about-list{border-top:1px solid var(--hairline-light)}
.about-list li{list-style:none;display:flex;gap:16px;align-items:baseline;padding:18px 0;
  border-bottom:1px solid var(--hairline-light);font-size:16px;font-weight:300}
.about-list li::before{content:"";width:8px;height:8px;flex:0 0 auto;background:var(--gold);transform:translateY(2px)}
.pullquote{font-family:var(--display);font-weight:300;font-size:clamp(21px,2.4vw,28px);line-height:1.45;
  display:block;margin-top:52px;max-width:38ch;color:var(--paper)}
.pullquote::before{content:"";display:block;width:34px;height:1px;background:var(--gold);margin-bottom:22px}

/* Light credentials list (About) */
.creds{border-top:1px solid var(--hairline)}
.creds li{list-style:none;display:flex;gap:16px;align-items:baseline;padding:18px 0;
  border-bottom:1px solid var(--hairline);font-size:16px;font-weight:300;color:var(--ink)}
.creds li::before{content:"";width:8px;height:8px;flex:0 0 auto;background:var(--gold);transform:translateY(2px)}
.prose p{font-size:16.5px;color:var(--slate-deep);font-weight:300;margin-bottom:18px}
.prose p:first-child{color:var(--ink);font-size:18px}

/* Value / step grid */
.steps{margin-top:52px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.step{border-top:1px solid var(--hairline);padding-top:24px}
section.dark .step{border-top-color:var(--hairline-light)}
.step .n{font-family:var(--display);font-weight:200;font-size:40px;color:var(--gold);margin-bottom:14px}
.step h3{font-family:var(--display);font-weight:400;font-size:20px;margin-bottom:10px}
.step p{font-size:14.5px;color:var(--slate-deep);font-weight:300;line-height:1.62}
section.dark .step p{color:rgba(244,242,236,.75)}

/* CTA band */
.cta-band{background:var(--ink);color:var(--paper);text-align:center;position:relative;overflow:hidden}
.cta-band h2{margin:0 auto;max-width:22ch}
.cta-band .lede{margin:22px auto 0;color:rgba(244,242,236,.8)}
.cta-band .hero-ctas{justify-content:center;margin-top:40px}

/* Contact */
.contact-wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,90px);margin-top:50px}
.c-details{border-top:1px solid var(--hairline)}
.c-details div{padding:20px 0;border-bottom:1px solid var(--hairline)}
.c-details .k{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:6px}
.c-details .v{font-size:17px;font-weight:300}
form{display:grid;gap:18px}
label{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--slate-deep);display:block;margin-bottom:7px}
input,textarea,select{width:100%;font-family:var(--body);font-size:16px;font-weight:300;color:var(--ink);
  background:#fff;border:1px solid var(--hairline);border-radius:6px;padding:14px 16px;transition:border-color .2s}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--gold)}
textarea{min-height:120px;resize:vertical}
.form-note{font-size:13px;color:var(--slate-deep);font-weight:300}

/* Footer */
footer{background:var(--ink);color:rgba(244,242,236,.6);padding:56px clamp(20px,7vw,96px) 40px;
  border-top:1px solid var(--hairline-light)}
.foot-top{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;flex-wrap:wrap;
  padding-bottom:34px;border-bottom:1px solid var(--hairline-light)}
.foot-brand .mark{font-family:var(--display);font-weight:300;font-size:26px;letter-spacing:.2em;color:var(--paper)}
.foot-brand .mark .cut{font-weight:200}
.foot-brand p{font-family:var(--mono);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--slate);margin-top:10px}
.foot-brand .foot-email{display:inline-block;font-size:14px;font-weight:300;color:rgba(244,242,236,.72);margin-top:18px;transition:color .2s}
.foot-brand .foot-email:hover{color:var(--paper)}
.foot-nav{display:flex;gap:40px;flex-wrap:wrap}
.foot-nav .col a{display:block;font-size:14px;font-weight:300;color:rgba(244,242,236,.72);padding:5px 0;transition:color .2s}
.foot-nav .col a:hover{color:var(--gold)}
.foot-nav .col .h{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--slate);margin-bottom:10px}
.foot-social{display:flex;gap:16px;margin-top:12px;padding:5px 0}
.foot-social a{display:inline-flex;align-items:center;justify-content:center;color:rgba(244,242,236,.72);transition:color .2s;padding:0}
.foot-social a:hover{color:var(--paper)}
.foot-social svg{width:20px;height:20px;display:block}
.foot-bottom{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding-top:26px;
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}

/* Reveal */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero-video{display:none}
  .reveal{opacity:1;transform:none;transition:none}
  .svc:hover{transform:none}
}

/* Responsive */
@media (max-width:980px){
  .svc-grid,.steps{grid-template-columns:1fr 1fr}
  .media-grid{grid-template-columns:1fr 1fr}
  .intro-cols,.about-cols,.contact-wrap{grid-template-columns:1fr}
}
@media (max-width:640px){
  .nav-links,.nav-cta{display:none}
  .menu-btn{display:block}
  nav.open .nav-links{display:flex;position:absolute;top:84px;left:0;right:0;flex-direction:column;
    background:var(--paper);border-bottom:1px solid var(--hairline);padding:20px clamp(20px,5vw,56px);gap:16px;color:var(--ink)}
  nav.open.on-dark .nav-links a{color:var(--ink)}
  .svc-grid,.steps,.media-grid{grid-template-columns:1fr}
  .hero-foot{flex-direction:column;align-items:flex-start;gap:6px}
  .hero-route text{display:none}
}
