/* Northeast Acquisitions LLC — refined build
   Keeps the original structure and palette. Removes the template tells:
   no rounded cards, no drop shadows, no emoji icons, no drop cap,
   no uniform section rhythm, and a less default typeface pairing. */

:root{
  --navy:#101D3D;
  --navy-2:#16264F;
  --navy-3:#1C3057;
  --navy-deep:#0A1527;
  --gold:#9FC2E8;
  --gold-dark:#2C5C91;
  --gold-soft:#BBD3EE;
  --text-heading:#131F3D;
  --text-body:#5B6478;
  --text-light:#C3CBDC;
  --text-faint:#8B93A8;
  --bg-page:#F7F8FA;
  --bg-white:#FFFFFF;
  --bg-mute:#EFF1F6;
  --border-light:#E1E4EC;
  --border-navy:#2A3A60;

  --head:"Archivo",Helvetica,Arial,sans-serif;
  --body:"Source Sans 3",Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;

  --container:1180px;
  --gut:clamp(20px,5vw,48px);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg-page);color:var(--text-body);
  font-family:var(--body);font-size:17.5px;line-height:1.68;font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gut)}

/* ---------- type ---------- */
h1,h2,h3,h4{
  font-family:var(--head);color:var(--text-heading);
  font-weight:600;letter-spacing:-0.022em;line-height:1.14;margin:0;
}
h1{font-size:clamp(2.1rem,4.4vw,3.4rem);line-height:1.08}
h2{font-size:clamp(1.65rem,2.9vw,2.25rem)}
h3{font-size:clamp(1.1rem,1.55vw,1.32rem);line-height:1.25;letter-spacing:-0.012em}
h4{font-size:1rem;letter-spacing:-0.006em}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}

.eyebrow{
  font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:.19em;text-transform:uppercase;color:var(--gold-dark);
  display:block;margin:0 0 1.15rem;
}
.eyebrow--light{color:var(--gold)}
.eyebrow--mute{color:var(--text-faint)}

.lede{font-size:clamp(1.02rem,1.4vw,1.19rem);line-height:1.62;max-width:58ch}
.small{font-size:15.5px;line-height:1.62}
.muted{color:var(--text-faint)}

/* ---------- header ---------- */
.site-header{
  background:rgba(247,248,250,.94);backdrop-filter:saturate(1.15) blur(8px);
  border-bottom:1px solid var(--border-light);position:sticky;top:0;z-index:50;
}
.site-header .container{display:flex;align-items:center;justify-content:space-between;height:86px;gap:24px}
.wordmark{
  font-family:var(--head);font-weight:600;font-size:18px;letter-spacing:-.024em;
  color:var(--text-heading);text-decoration:none;white-space:nowrap;
}
.nav{display:flex;gap:30px;align-items:center}
.nav-link{
  font-family:var(--body);font-size:14.5px;font-weight:500;letter-spacing:.005em;
  color:var(--text-body);text-decoration:none;padding:5px 0;
  border-bottom:2px solid transparent;transition:color .17s,border-color .17s;
}
.nav-link:hover{color:var(--text-heading)}
.nav-link.active{color:var(--text-heading)}
.nav-toggle{display:none}

/* ---------- hero ---------- */
.hero-photo{position:relative;padding:clamp(88px,10vw,124px) 0 clamp(76px,8.5vw,104px);overflow:hidden}
.hero-photo::after{
  content:"";position:absolute;inset:0;z-index:0;
  background-image:linear-gradient(105deg,rgba(16,29,61,.96) 0%,rgba(16,29,61,.88) 42%,rgba(16,29,61,.62) 100%),
                   url("assets/grand-central.jpg");
  background-size:cover;background-position:center 38%;
}
.hero-photo > .container{position:relative;z-index:1}
.hero-photo h1{color:#fff;max-width:19ch}
.hero-photo .lede{color:#CBD3E2;margin-top:1.5rem}
.hero-photo .eyebrow{color:var(--gold-soft)}
.hero-photo--slim{padding:clamp(64px,7vw,88px) 0 clamp(56px,6vw,72px)}
.hero-photo--slim h1{font-size:clamp(1.9rem,3.5vw,2.7rem);max-width:22ch}
.hero-rule{width:52px;height:2px;background:var(--gold-dark);margin:0 0 1.6rem}
.hero-photo .hero-rule,.bg-navy .hero-rule{background:var(--gold)}

.est-badge{
  display:inline-block;border:1px solid var(--gold-soft);
  border-color:color-mix(in srgb, var(--gold-soft) 62%, transparent);
  font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold-soft);padding:8px 14px;margin-bottom:1.7rem;
}

/* ---------- sections (deliberately uneven rhythm) ---------- */
.section{padding:clamp(66px,8vw,104px) 0}
.section-tight{padding:clamp(44px,5vw,64px) 0}
.section-wide{padding:clamp(84px,10.5vw,136px) 0}
.bg-white{background:var(--bg-white)}
.bg-mute{background:var(--bg-mute)}
.bg-navy{background:var(--navy);color:var(--text-light)}
.bg-navy h1,.bg-navy h2,.bg-navy h3,.bg-navy h4{color:#fff}
.rule-top{border-top:1px solid var(--border-light)}

.section-head{margin-bottom:clamp(30px,3.6vw,46px);max-width:52ch}
.grid-2{display:grid;grid-template-columns:5fr 7fr;gap:clamp(30px,5vw,72px)}
.grid-2--flip{grid-template-columns:7fr 5fr}
.grid-2--even{grid-template-columns:1fr 1fr}

.accent-note{border-left:3px solid var(--gold-dark);padding-left:22px;color:var(--text-body)}

/* ---------- flat panels (were rounded shadowed cards) ---------- */
.panel{background:var(--bg-white);border:1px solid var(--border-light);padding:clamp(24px,2.8vw,34px);display:flex;flex-direction:column}
.panel--gold{border-top:2px solid var(--gold-dark)}
.panel--navy{border-top:2px solid var(--navy)}

/* data pairs */
.stat-row{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border-light);border:1px solid var(--border-light);margin-top:1.6rem}
.stat{background:var(--bg-white);padding:20px 22px}
.stat-k{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);display:block;margin-bottom:.45rem}
.stat-v{font-family:var(--head);font-size:clamp(1.15rem,1.8vw,1.42rem);font-weight:600;color:var(--text-heading);letter-spacing:-.02em}

/* definition rows */
.deflist{margin:0}
.defrow{border-top:1px solid var(--border-light);padding:19px 0;display:grid;grid-template-columns:4fr 8fr;gap:clamp(14px,2.6vw,36px)}
.defrow:last-child{border-bottom:1px solid var(--border-light)}
.defrow dt{font-family:var(--head);font-weight:600;font-size:15.5px;color:var(--text-heading);letter-spacing:-.008em}
.defrow dd{margin:0;font-size:16px}

/* plain lists */
.tick{list-style:none;margin:0;padding:0}
.tick li{border-top:1px solid var(--border-light);padding:15px 0 15px 20px;position:relative;font-size:16px}
.tick li:last-child{border-bottom:1px solid var(--border-light)}
.tick li::before{content:"";position:absolute;left:0;top:24px;width:8px;height:1px;background:var(--gold-dark)}

.sector-grid{list-style:none;margin:0;padding:0;columns:2;column-gap:clamp(26px,4.5vw,60px)}
.sector-grid li{break-inside:avoid;border-top:1px solid var(--border-light);padding:16px 0}
.sector-grid li b{display:block;font-family:var(--head);font-weight:600;font-size:16px;color:var(--text-heading);margin-bottom:.18rem;letter-spacing:-.008em}
.sector-grid li span{display:block;font-size:15px;line-height:1.55;color:var(--text-body)}

/* holdings */
.holding{border-top:1px solid var(--border-light);padding:clamp(26px,3.4vw,42px) 0;display:grid;grid-template-columns:7fr 5fr;gap:clamp(20px,4vw,56px)}
.holding:last-child{border-bottom:1px solid var(--border-light)}
.holding h3{margin-bottom:.7rem}
.holding .divisions{font-family:var(--head);font-weight:600;font-size:14.5px;letter-spacing:-.005em;color:var(--text-faint);margin:0 0 .25rem}
.meta{display:flex;flex-direction:column;gap:1.15rem;margin-top:1.3rem}
.meta > div{min-width:0}
.meta-link{margin-top:.35rem}
.meta-link .arrow-link{font-size:15px}
.meta-k{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);display:block;margin-bottom:.32rem}
.meta-v{font-size:15px;color:var(--text-heading);font-weight:500}

/* ---------- buttons ---------- */
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:2.1rem}
.btn{
  font-family:var(--body);font-size:14px;font-weight:600;letter-spacing:.055em;
  padding:14px 26px;text-decoration:none;display:inline-block;
  border:1px solid transparent;transition:background .17s,color .17s,border-color .17s;
}
.btn-gold{background:#9FC2E8;color:#0B1B2E;border-color:#9FC2E8}
.btn-gold:hover{background:var(--gold-dark);border-color:var(--gold-dark);color:#fff}
.btn-outline{background:transparent;color:#fff;border-color:rgba(255,255,255,.42)}
.btn-outline:hover{background:rgba(255,255,255,.1);border-color:#fff}
.btn-navy{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-navy:hover{background:var(--navy-3);border-color:var(--navy-3)}

.arrow-link{
  font-family:var(--body);font-size:14px;font-weight:600;letter-spacing:.03em;
  color:var(--gold-dark);text-decoration:none;border-bottom:1px solid currentColor;
  padding-bottom:2px;transition:color .17s,border-color .17s;
}
.arrow-link:hover{color:var(--text-heading);border-bottom-color:var(--text-heading)}
.bg-navy .arrow-link{color:var(--gold);border-bottom-color:currentColor}
.bg-navy .arrow-link:hover{color:#fff;border-bottom-color:#fff}

/* ---------- portrait ---------- */
.portrait{width:100%;max-width:320px;border:1px solid var(--border-light)}

/* ---------- footer ---------- */
.site-footer{background:var(--navy-deep);border-top:1px solid rgba(255,255,255,.09);color:var(--text-light);padding:clamp(52px,5.5vw,70px) 0 28px}
.footer-top{display:grid;grid-template-columns:6fr 4fr;gap:clamp(26px,4vw,56px);padding-bottom:36px;border-bottom:1px solid var(--border-navy)}
.footer-brand{font-family:var(--head);font-weight:600;font-size:18px;color:#fff;letter-spacing:-.024em;margin-bottom:.7rem}
.footer-nav{display:flex;flex-direction:column;gap:11px}
.footer-nav a{font-size:14.5px;text-decoration:none;color:var(--text-light);transition:color .17s}
.footer-nav a:hover{color:#fff}
.footer-bottom{padding-top:22px}
.footer-bottom span{font-size:13px;color:var(--text-faint)}

/* ---------- motion ---------- */
.rise{
  opacity:0;transform:translateY(26px);
  transition:opacity .52s cubic-bezier(.16,.84,.44,1),transform .52s cubic-bezier(.16,.84,.44,1);
}
.rise.in{opacity:1;transform:none}
/* above-the-fold content is released on first paint, never by the observer */
.hero-photo .rise{transform:translateY(30px)}

/* hero image settles slowly behind the type */
.hero-photo::after{animation:heroSettle 16s cubic-bezier(.19,1,.22,1) forwards}
@keyframes heroSettle{from{transform:scale(1.07)}to{transform:scale(1)}}

/* interaction */
.btn{transition:background .18s,color .18s,border-color .18s,transform .16s cubic-bezier(.16,.84,.44,1)}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}

.panel{transition:transform .24s cubic-bezier(.16,.84,.44,1),border-color .24s}
.panel:hover{transform:translateY(-3px);border-color:#CDD3DF}

/* hover tint bleeds past the text column so it never crowds the words;
   content and dividers stay exactly where they are */
.holding{position:relative;z-index:0}
.holding::before{
  content:"";position:absolute;z-index:-1;
  top:1px;bottom:0;
  left:calc(-1 * clamp(14px,2vw,30px));
  right:calc(-1 * clamp(14px,2vw,30px));
  background:transparent;transition:background .22s;
}
.holding:hover::before{background:#F5F8FC}

.arrow-link{display:inline-block}
.arrow-link:hover{transform:translateX(2px)}
.arrow-link{transition:color .17s,border-color .17s,transform .17s cubic-bezier(.16,.84,.44,1)}

.nav-link{position:relative;border-bottom:0}
.nav-link::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:var(--gold-dark);transform:scaleX(0);transform-origin:left center;
  transition:transform .26s cubic-bezier(.16,.84,.44,1);
}
.nav-link:hover::after{transform:scaleX(1)}
.nav-link.active::after{transform:scaleX(1)}

.footer-nav a{transition:color .17s,transform .17s cubic-bezier(.16,.84,.44,1);display:inline-block}
.footer-nav a:hover{transform:translateX(3px)}

html{scroll-behavior:smooth}

@media (prefers-reduced-motion:reduce){
  .rise{opacity:1;transform:none;transition:none}
  .hero-photo::after{animation:none}
  .btn:hover,.panel:hover,.arrow-link:hover,.footer-nav a:hover{transform:none}
  html{scroll-behavior:auto}
}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .grid-2,.grid-2--flip,.grid-2--even{grid-template-columns:1fr}
  .holding{grid-template-columns:1fr}
  .meta{gap:1rem}
  .sector-grid{columns:1}
  .footer-top{grid-template-columns:1fr}
}
@media (max-width:680px){
  body{font-size:16.5px}
  .nav{display:none}
  .nav.open{
    display:flex;position:absolute;top:86px;left:0;right:0;flex-direction:column;gap:0;
    background:var(--bg-page);border-bottom:1px solid var(--border-light);padding:6px var(--gut) 16px;
  }
  .nav.open .nav-link{padding:13px 0;border-bottom:1px solid var(--border-light)}
  .nav-toggle{
    display:block;background:none;border:1px solid var(--border-light);color:var(--text-heading);
    font-family:var(--body);font-size:13px;font-weight:600;letter-spacing:.05em;
    text-transform:uppercase;padding:9px 14px;cursor:pointer;
  }
  .stat-row{grid-template-columns:1fr}
  .defrow{grid-template-columns:1fr;gap:5px}
}

/* portrait column tracks the bio on tall screens only */
@media (max-width:900px){ .grid-2 > [style*="sticky"]{position:static !important} }

/* contact details: keep the hairline rules, drop the leading dash */
.tick--bare li{padding-left:0}
.tick--bare li::before{display:none}

/* ---------- brand lockup ---------- */
.wordmark{display:flex;align-items:center;line-height:0}
.wordmark img{height:56px;width:auto;display:block}
.footer-brand{line-height:0;margin-bottom:1.1rem}
.footer-brand img{height:64px;width:auto;display:block}
@media (max-width:680px){
  .wordmark img{height:42px}
  .footer-brand img{height:52px}
}

/* contact card: executive avatar, as on the original page */
.exec{display:flex;align-items:center;gap:16px}
.exec-avatar{
  width:62px;height:62px;flex:0 0 62px;border-radius:50%;
  object-fit:cover;object-position:50% 16%;
  border:1px solid var(--border-light);
}

/* ---------- EMC divisions ---------- */
.division{border-top:1px solid var(--border-light);padding-top:16px;margin-top:18px}
.division-name{
  font-family:var(--head);font-weight:600;font-size:15.5px;letter-spacing:-.008em;
  color:var(--text-heading);margin:0 0 .5rem;
}

/* ---------- geographic focus map ---------- */
.map-wrap{margin-top:26px}
.focus-map{width:100%;height:auto;display:block}
.map-other{fill:#E8EBF0;stroke:#fff;stroke-width:1.4}
.map-focus{fill:var(--gold);stroke:#fff;stroke-width:1.4}

/* ---------- compass cursor ----------
   Replaces the default arrow only. Links, buttons and text keep their own
   cursors so the usual affordances still work. */
body{cursor:url("assets/cursor.png") 16 16, default}
.hero-photo, .bg-navy, .site-footer{cursor:url("assets/cursor-light.png") 16 16, default}

/* retina: draw from the 64px asset at 32 CSS px so the ring stays sharp */
body{cursor:-webkit-image-set(url("assets/cursor.png") 1x, url("assets/cursor@2x.png") 2x) 16 16, default}
body{cursor:image-set(url("assets/cursor.png") 1x, url("assets/cursor@2x.png") 2x) 16 16, default}
.hero-photo, .bg-navy, .site-footer{cursor:-webkit-image-set(url("assets/cursor-light.png") 1x, url("assets/cursor-light@2x.png") 2x) 16 16, default}
.hero-photo, .bg-navy, .site-footer{cursor:image-set(url("assets/cursor-light.png") 1x, url("assets/cursor-light@2x.png") 2x) 16 16, default}

a, button, [role="button"], .nav-toggle{cursor:pointer}
p, h1, h2, h3, h4, li, dd, dt, span, address{cursor:text}
a p, a span, a h1, a h2, a h3, a h4, .btn span, button span{cursor:inherit}
img{cursor:inherit}

@media (hover:none){           /* touch devices get nothing custom */
  body, .hero-photo, .bg-navy, .site-footer{cursor:auto}
}
