/* ============================================================================
   ACQUIRY DEAL INTELLIGENCE — BASE
   Tokens, resets, typography, header, hero, layout shell.
   Brand tokens extracted from acquiry.com.
   ========================================================================== */

/* ---- fonts ---------------------------------------------------------- */
@font-face{font-family:'Poppins';src:url('../assets/fonts/Poppins-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Poppins';src:url('../assets/fonts/Poppins-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Poppins';src:url('../assets/fonts/Poppins-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Poppins';src:url('../assets/fonts/Poppins-Bold.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Poppins';src:url('../assets/fonts/Poppins-ExtraBold.woff2') format('woff2');font-weight:800;font-display:swap}
@font-face{font-family:'Rubik';src:url('../assets/fonts/Rubik.woff2') format('woff2');font-weight:300 700;font-display:swap}
@font-face{font-family:'Rubik';src:url('../assets/fonts/Rubik-Italic.woff2') format('woff2');font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:'Newsreader';src:url('../assets/fonts/Newsreader.woff2') format('woff2');font-weight:200 800;font-display:swap}
@font-face{font-family:'Newsreader';src:url('../assets/fonts/Newsreader-Italic.woff2') format('woff2');font-weight:200 800;font-style:italic;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('../assets/fonts/IBMPlexMono-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('../assets/fonts/IBMPlexMono-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('../assets/fonts/IBMPlexMono-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap}

/* ---- tokens --------------------------------------------------------- */
:root{
  --navy:#0d1b2e;
  --navy-deep:#07111d;
  --ink:#1a2332;
  --muted:#5a6577;
  --muted-2:#7c8798;
  --line:#e2e9f1;
  --line-2:#eef2f7;
  --soft:#f3f5f8;
  --soft-2:#f8fafc;
  --paper:#ffffff;
  --blue:#086ad8;
  --blue-dk:#0757ae;
  --blue-soft:#4a9eff;
  --blue-pale:#e8f1fd;
  --amber:#c98a12;
  --amber-pale:#fdf4e3;
  --red:#c0392b;
  --red-pale:#fbeae7;
  --green:#1f7a4d;
  --green-pale:#eaf5ee;

  --display:'Newsreader',Georgia,serif;
  --sans:'Poppins','Rubik',system-ui,sans-serif;
  --body:'Rubik',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;

  --cw:1240px;          /* content width */
  --gut:44px;           /* page gutter */
  --rail:352px;         /* intelligence rail width */
  --hdr:64px;           /* sticky header height */
  --measure:748px;      /* prose measure inside the two-column grid */
  /* --measure-wide retired: full-width segments now run body copy to the
     container edge alongside tables, charts and figures. Retained as a token
     in case a future article wants a capped variant. */
  --measure-wide:880px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img,svg{max-width:100%}
img{border-style:none}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
table{border-collapse:collapse;width:100%}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

.wrap{width:min(var(--cw),calc(100vw - var(--gut)*2));margin:0 auto}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---- skip link ------------------------------------------------------ */
.skip{
  position:absolute;left:-9999px;top:0;z-index:200;background:var(--blue);color:#fff;
  padding:12px 20px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;
}
.skip:focus{left:0}

/* ---- scroll progress ------------------------------------------------ */
#prog{
  position:fixed;top:0;left:0;height:3px;background:var(--blue);z-index:120;width:0;
  transition:width .08s linear;box-shadow:0 0 8px rgba(8,106,216,.5);
}

/* ============================ BREAKING BAR ============================ */
.brk{background:var(--navy-deep);color:#fff;border-bottom:1px solid rgba(255,255,255,.09)}
.brk-in{display:flex;align-items:center;gap:16px;height:38px;overflow:hidden}
.brk-tag{
  flex:0 0 auto;background:var(--blue);color:#fff;font-family:var(--mono);font-size:9px;
  font-weight:600;letter-spacing:.15em;padding:4px 9px;border-radius:2px;
}
.brk-txt{
  flex:1;min-width:0;font-size:12.5px;color:rgba(255,255,255,.86);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
}
.brk-txt b{color:#fff;font-weight:600}
.brk-txt .sep{color:rgba(255,255,255,.3);margin:0 8px}
.brk-time{
  flex:0 0 auto;font-family:var(--mono);font-size:9.5px;letter-spacing:.11em;
  color:rgba(255,255,255,.4);text-transform:uppercase;
}

/* ============================ HERO ============================ */
.hero{
  position:relative;background:var(--navy-deep);color:#fff;overflow:hidden;
}
/* Hero artwork. The image sits under a heavy scrim: the hero now carries the
   headline, the identity card and the byline with no editorial figure below it,
   so the artwork is texture rather than subject and must not compete with type.
   Opacity is pulled back and the overlay is dark and even across the full band,
   not just weighted to the left, so the right-hand identity card reads against
   the same density as the headline. */
.hero-bg{
  position:absolute;inset:0;background-image:url('../assets/img/hero.jpg');
  background-size:cover;background-position:center 38%;opacity:.46;
}
.hero-bg::after{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(1300px 820px at 26% 40%,rgba(5,13,24,.93),rgba(5,13,24,.8) 58%,rgba(5,13,24,.72) 100%),
    linear-gradient(180deg,rgba(5,13,24,.86) 0%,rgba(5,13,24,.74) 42%,rgba(5,13,24,.95) 100%);
}
/* Top padding must exceed the sticky header height (--hdr 64px) plus breathing
   room, or the breadcrumb sits underneath the header when the hero is scrolled
   into view. 88px clears it at every breakpoint. */
/* The hero figure that used to close this section supplied 46px of bottom
   padding. With it removed, the market strip legend butted straight against the
   key numbers band, so the padding moves onto the hero itself. */
.hero-in{position:relative;padding:88px 0 26px}
.hero-grid{display:grid;grid-template-columns:1fr 400px;gap:56px;align-items:start}
/* Breadcrumb. Raised from 44% to 68% white for legibility against the hero
   artwork, and the top padding on .hero-in keeps it clear of the sticky header. */
.crumb{
  display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.68);margin-bottom:30px;
  flex-wrap:wrap;
}
.crumb a{color:rgba(255,255,255,.68);text-decoration:none;transition:color .15s}
.crumb a:hover{color:#fff;text-decoration:none}
.crumb .cur{color:var(--blue-soft);font-weight:500}
.crumb .s{color:rgba(255,255,255,.3)}
.kicker{display:flex;align-items:center;gap:13px;margin-bottom:22px}
.kicker .bar{width:34px;height:2px;background:var(--blue);flex:0 0 34px}
.kicker span{
  font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:#fff;
}
h1.hl{
  font-family:var(--display);font-size:60px;line-height:1.08;font-weight:600;
  letter-spacing:-.022em;margin:0 0 26px;max-width:14.4em;
}
h1.hl em{font-style:italic;font-weight:400;color:#dce8f6}
.standfirst{
  font-size:18.5px;line-height:1.66;color:rgba(255,255,255,.8);max-width:35em;margin:0 0 34px;
}
.standfirst b{color:#fff;font-weight:600}
.byline{
  display:flex;align-items:center;gap:0;flex-wrap:wrap;padding:19px 0 0;
  border-top:1px solid rgba(255,255,255,.14);font-size:12.5px;color:rgba(255,255,255,.6);
}
.byline .bi{padding-right:20px;margin-right:20px;border-right:1px solid rgba(255,255,255,.14)}
.byline .bi:last-child{border-right:none;padding-right:0;margin-right:0}
.byline b{color:#fff;font-weight:600}
.byline .bl{color:inherit;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3);transition:border-color .15s}
.byline .bl:hover{border-bottom-color:#fff;text-decoration:none}
.byline .live{display:inline-flex;align-items:center;gap:7px;color:#5fd39a;font-family:var(--mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase}
.byline .live i{width:6px;height:6px;border-radius:50%;background:#5fd39a;animation:pulse 2.2s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.78)}}

/* transaction identity card */
.tid{
  background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.15);
  backdrop-filter:blur(9px);border-radius:3px;overflow:hidden;
}
.tid-h{
  display:flex;justify-content:space-between;align-items:center;padding:13px 17px;
  border-bottom:1px solid rgba(255,255,255,.13);background:rgba(0,0,0,.2);
}
.tid-h .k{font-family:var(--mono);font-size:8.5px;font-weight:600;letter-spacing:.17em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.tid-h .v{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:8.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:#5fd39a}
.tid-h .v i{width:5px;height:5px;border-radius:50%;background:#5fd39a}
.tid-p{padding:17px}
.tid-party{display:flex;gap:13px;align-items:flex-start}
/* Typographic monogram tiles.
   Third-party logo files rendered unreliably here: the Bending Spoons mark was
   inverted to a solid white square by the `brightness(0) invert(1)` filter, and
   the Airtable wordmark shrank to an illegible speck inside a 38px tile.
   Reproducing acquirer and target logos in an advisory publication also carries
   a trademark question that is not worth taking on. Each party now gets a drawn
   initial tile: legible at any size, no asset dependency, no external request. */
.tid-mk{
  flex:0 0 40px;height:40px;border-radius:4px;
  display:flex;align-items:center;justify-content:center;overflow:hidden;
  font-family:var(--sans);font-size:15px;font-weight:700;letter-spacing:-.03em;
  background:linear-gradient(150deg,rgba(255,255,255,.16),rgba(255,255,255,.05));
  border:1px solid rgba(255,255,255,.2);color:#fff;
}
/* Acquirer tile carries brand blue; target tile stays neutral. */
.tid-mk.bsp{background:linear-gradient(150deg,#1c7ff0,#0a56b4);border-color:rgba(255,255,255,.3)}
.tid-mk.at{background:linear-gradient(150deg,rgba(255,255,255,.22),rgba(255,255,255,.07))}
.tid-nm{min-width:0;flex:1}
.tid-nm .n{font-family:var(--sans);font-size:15px;font-weight:600;color:#fff;letter-spacing:-.01em;line-height:1.3}
.tid-nm .r{font-family:var(--mono);font-size:8.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--blue-soft);margin-top:4px}
.tid-nm .m{font-size:11.5px;color:rgba(255,255,255,.52);margin-top:4px}
.tid-arrow{
  display:flex;align-items:center;gap:11px;margin:15px 0;
  font-family:var(--mono);font-size:8.5px;font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;color:var(--blue-soft);
}
.tid-arrow .ln{flex:1;height:1px;background:linear-gradient(90deg,rgba(74,158,255,.55),rgba(74,158,255,.1))}
.tid-m{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(255,255,255,.13)}
.tid-m .c{padding:13px 17px;border-right:1px solid rgba(255,255,255,.13);border-bottom:1px solid rgba(255,255,255,.13)}
.tid-m .c:nth-child(2n){border-right:none}
.tid-m .c:nth-last-child(-n+2){border-bottom:none}
.tid-m .k{font-family:var(--mono);font-size:8px;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.44);margin-bottom:6px}
.tid-m .v{font-family:var(--display);font-size:21px;font-weight:600;color:#fff;letter-spacing:-.025em;line-height:1}
.tid-m .v small{font-size:12px;font-weight:500;opacity:.66;margin-left:1px}
.tid-m .v.sm{font-size:14.5px;font-family:var(--sans);font-weight:600;letter-spacing:-.01em}

/* ---- market strip --------------------------------------------------- */
.strip{
  position:relative;margin-top:54px;background:rgba(0,0,0,.3);
  border-top:1px solid rgba(255,255,255,.13);border-bottom:1px solid rgba(255,255,255,.13);
}
.strip-in{display:flex;align-items:stretch;height:62px;overflow:hidden;position:relative}
/* Market strip label. Forced onto a single line; wrapping "MARKET INTEL" across
   two lines inside a 62px strip read as cramped. */
.strip-lb{
  flex:0 0 auto;display:flex;align-items:center;gap:8px;padding-right:22px;margin-right:22px;
  border-right:1px solid rgba(255,255,255,.13);
  font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;color:rgba(255,255,255,.62);white-space:nowrap;
  /* The track is a flex sibling that gets translated left by the marquee, so it
     scrolls under this label. Opaque background and a z-index above both the
     track and the fade overlay keep the label legible at every scroll offset. */
  position:relative;z-index:3;background:#040b14;
}
.strip-lb i{width:6px;height:6px;border-radius:50%;background:#5fd39a;flex:0 0 6px;animation:pulse 2.2s infinite}
/* The marquee scrolls right to left, so items arrive at the left edge and used
   to appear abruptly against the "Market intel" divider. .strip-tr is the
   moving track, so the fade cannot live on it. It sits on a static overlay
   pinned to the divider, mirroring the existing right-edge fade. */
.strip-tr{display:flex;align-items:center;flex:1;min-width:0;position:relative}
.strip-in::before{
  content:'';position:absolute;top:0;bottom:0;width:72px;pointer-events:none;z-index:2;
  left:var(--strip-lb-w,168px);
  background:linear-gradient(90deg,rgba(4,11,20,.92) 0%,rgba(4,11,20,.72) 38%,rgba(4,11,20,0) 100%);
}
.tk{
  display:flex;flex-direction:column;justify-content:center;gap:3px;padding:0 16px;
  border-right:1px solid rgba(255,255,255,.08);white-space:nowrap;flex:0 0 auto;
}
.tk .sym{font-family:var(--mono);font-size:8.5px;font-weight:500;letter-spacing:.11em;color:rgba(255,255,255,.46)}
.tk .rw{display:flex;align-items:baseline;gap:8px}
.tk .val{font-family:var(--sans);font-size:14px;font-weight:600;color:#fff;letter-spacing:-.01em}
.tk .chg{font-family:var(--mono);font-size:9.5px;font-weight:500}
.tk .chg.up{color:#5fd39a}.tk .chg.dn{color:#ff8577}
.tk .chg.fl{color:rgba(255,255,255,.42);letter-spacing:.08em}
.tk.deal{background:rgba(8,106,216,.17)}
.tk.deal .sym{color:var(--blue-soft)}
.tk.hist{background:rgba(255,255,255,.03)}
.tk.hist .sym{color:rgba(255,255,255,.34)}
.strip-in::after{
  content:'';position:absolute;right:0;top:0;bottom:0;width:72px;pointer-events:none;z-index:2;
  background:linear-gradient(90deg,rgba(4,11,20,0) 0%,rgba(4,11,20,.72) 62%,rgba(4,11,20,.92) 100%);
}
.strip-lg{
  display:flex;align-items:center;gap:24px;padding:10px 0 11px;
  border-top:1px solid rgba(255,255,255,.08);flex-wrap:wrap;
}
.lgc{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.4)}
.lgc i{width:10px;height:10px;border-radius:1px;display:block}
.strip-lg .src{
  margin-left:auto;display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:9px;
  letter-spacing:.08em;color:rgba(255,255,255,.32);
}

/* ============================ KEY NUMBERS ============================ */
.knb{background:var(--soft-2);border-bottom:1px solid var(--line)}
.knb-in{display:grid;grid-template-columns:repeat(5,1fr)}
.kn{padding:28px 26px;border-right:1px solid var(--line)}
.kn:last-child{border-right:none}
.kn .k{font-family:var(--mono);font-size:8.5px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:11px}
.kn .v{font-family:var(--display);font-size:33px;font-weight:700;color:var(--navy);letter-spacing:-.032em;line-height:1}
.kn .v small{font-size:16px;font-weight:600;opacity:.62;margin-left:1px}
.kn .b{font-size:12px;line-height:1.5;color:var(--muted);margin-top:10px}
.kn .sc{display:inline-block;margin-top:9px}

/* ---- provenance chips ---------------------------------------------- */
.chip{
  display:inline-block;font-family:var(--mono);font-size:8px;font-weight:600;letter-spacing:.13em;
  text-transform:uppercase;padding:3px 7px;border-radius:2px;white-space:nowrap;
}
.src-r{background:var(--blue-pale);color:var(--blue-dk)}
.src-c{background:var(--amber-pale);color:#8a6413}
.src-p{background:var(--soft);color:var(--muted)}
.src-i{background:#f0eafa;color:#5c3f9e}
.src-n{background:var(--red-pale);color:#a8342a}
.fig-dark .chip,.dark-band .chip{background:rgba(255,255,255,.11);color:rgba(255,255,255,.72)}
.fig-dark .chip.src-r,.dark-band .chip.src-r{background:rgba(74,158,255,.2);color:#9ecbff}
.fig-dark .chip.src-c,.dark-band .chip.src-c{background:rgba(201,138,18,.2);color:#e5bb62}
.fig-dark .chip.src-i,.dark-band .chip.src-i{background:rgba(140,110,220,.22);color:#c3b0f0}

/* Print. The old rule here hid seven elements in one grouped selector and was
   removed wholesale by the chrome strip because the group happened to start
   with .hdr. Rewritten explicitly against the current selectors, one per line,
   so a future sweep cannot take the rest of the group down with it. */
@media print{
  header.site-header{display:none!important}
  footer.site-footer{display:none!important}
  .brk{display:none!important}
  .strip{display:none!important}
  #prog{display:none!important}
  .toc{display:none!important}
  .rail{display:none!important}
  body{font-size:11pt}
  .hero{background:#fff;color:#000}
  .hero-bg{display:none}
}
