/* Any section with an id can be a jump-to-anchor target (e.g. /finance#media-articles).
   Give it clearance so it lands below the sticky top nav bar rather than being
   hidden underneath it. */
section[id]{scroll-margin-top:100px}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Figtree',sans-serif;font-weight:400;background:#fff;color:#0A0A0A;overflow-x:hidden}

/* Global safety nets — prevent any single element (usually images or embedded
   iframes/tables) from forcing horizontal overflow on narrow phone screens.
   Without these, a single oversized image can push the whole page wider than
   the viewport, breaking layout even when everything else is responsive. */
img,video,iframe,svg{max-width:100%;height:auto}
table{max-width:100%}

:root{
  --black:#000000;
  --near-black:#0C0C0C;
  --ink:#0A0A0A;
  --char:#1A1A1A;
  --char-2:#3D3D3D;
  --char-3:#6B6B6B;
  --char-4:#9C9C9C;
  --paper:#FFFFFF;
  --paper-2:#F4F4F5;
  --paper-3:#E8E8EA;
  --rule:rgba(10,10,10,0.10);
  --rule-2:rgba(10,10,10,0.16);
  --rule-3:rgba(10,10,10,0.24);
  --d-rule:rgba(255,255,255,0.10);
  --d-rule-2:rgba(255,255,255,0.18);
  --silver:#B9B8B8;
  --silver-dim:#7A7A7A;
  --silver-lt:#D4D4D4;
  --bone:#F5F3EE;
  --bone-2:#B8B5AD;
  --font-display:'Instrument Sans',sans-serif;
  --font-body:'Figtree',sans-serif;
  --r:6px;--r-lg:10px;--r-xl:16px;
  --maxw:1400px;
}

::-webkit-scrollbar{width:3px}
::-webkit-scrollbar-track{background:#fff}
::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}

img{display:block;max-width:100%}

/* BUTTONS */
.btn-primary{
  display:inline-flex;align-items:center;gap:7px;
  background:var(--ink);color:#fff;
  font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:0.01em;
  padding:12px 24px;border:none;border-radius:var(--r);cursor:pointer;text-decoration:none;
  transition:background .15s,transform .12s;white-space:nowrap;
}
.btn-primary:hover{background:#000;transform:translateY(-1px)}
.btn-outline{
  display:inline-flex;align-items:center;gap:7px;
  background:transparent;color:var(--ink);
  font-family:var(--font-display);font-size:13px;font-weight:500;letter-spacing:0.01em;
  padding:11px 24px;border:1px solid var(--rule-3);border-radius:var(--r);cursor:pointer;text-decoration:none;
  transition:border-color .15s,background .15s;white-space:nowrap;
}
.btn-outline:hover{border-color:var(--ink);background:var(--paper-2)}
/* on dark backgrounds */
.btn-invert{
  display:inline-flex;align-items:center;gap:7px;
  background:#fff;color:var(--ink);
  font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:0.01em;
  padding:12px 24px;border:none;border-radius:var(--r);cursor:pointer;text-decoration:none;
  transition:background .15s,transform .12s;white-space:nowrap;
}
.btn-invert:hover{background:#e8e8e8;transform:translateY(-1px)}
.btn-outline-d{
  display:inline-flex;align-items:center;gap:7px;
  background:transparent;color:#fff;
  font-family:var(--font-display);font-size:13px;font-weight:500;letter-spacing:0.01em;
  padding:11px 24px;border:1px solid var(--d-rule-2);border-radius:var(--r);cursor:pointer;text-decoration:none;
  transition:border-color .15s,background .15s;white-space:nowrap;
}
.btn-outline-d:hover{border-color:#fff;background:rgba(255,255,255,.05)}

/* TOP UTILITY STRIP (dark) */
.topbar{
  background:var(--ink);color:var(--char-4);height:36px;
  font-family:var(--font-display);font-size:11px;font-weight:500;
  letter-spacing:0.14em;text-transform:uppercase;
  position:relative;
}
.topbar-inner{
  max-width:var(--maxw);margin:0 auto;height:100%;padding:0 16px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}

/* On desktop, pin the subscribe button to the true top-right corner of the
   screen — independent of the centered max-width container that otherwise
   holds it inward. On mobile (≤980px) this is un-set so the button rejoins
   the flex row and can't overlap the US/BVI toggle on narrow screens. */
@media (min-width:981px){
  .topbar-subscribe-btn{
    position:absolute;top:50%;right:16px;transform:translateY(-50%);
  }
}
.topbar-regions{display:flex;gap:24px}
.topbar-regions a{
  color:var(--char-4);text-decoration:none;cursor:pointer;
  position:relative;padding:4px 0;transition:color .15s;
}
.topbar-regions a:hover,.topbar-regions a.active{color:#fff}
.topbar-regions a.active::after{
  content:'';position:absolute;left:0;right:0;bottom:-2px;
  height:1px;background:var(--silver);
}
.topbar-right{display:flex;gap:22px}
.topbar-right a{color:var(--char-4);text-decoration:none;cursor:pointer;transition:color .15s}
.topbar-right a:hover{color:#fff}

/* Topbar subscribe button — neat white pill matching the site's hero CTAs.
   No arrow, consistent with the "Connect" / "Subscribe" hero buttons. */
.topbar-subscribe-btn{
  display:inline-flex;align-items:center;
  background:#fff;color:#0a0a0a;
  font-family:var(--font-display);font-size:10px;font-weight:600;
  letter-spacing:0.08em;text-transform:uppercase;
  padding:6px 16px;border-radius:5px;
  text-decoration:none;border:1px solid #fff;
  transition:background .18s,color .18s;
  white-space:nowrap;
}
.topbar-subscribe-btn:hover{background:#e8e8e6;color:#0a0a0a}

/* MAIN NAV — black */
nav.main-nav{
  position:sticky;top:0;z-index:100;height:74px;
  display:flex;align-items:center;justify-content:space-between;padding:0 44px;
  background:rgba(10,10,10,0.94);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--d-rule);
}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none;cursor:pointer}
.nav-logo img{height:22px;width:auto;display:block}

/* ── ANCHOR RESET for converted nav/footer links ────────────── */
a.nav-trigger,a.nav-dd-item,.nav-center a,.mobile-nav-links a,
.footer-col a,.footer-legal a,.breadcrumb a,.nav-login,
.topbar-regions a{text-decoration:none}
a.nav-trigger{color:var(--char-4)}
a.nav-trigger:visited{color:var(--char-4)}
a.nav-trigger:hover{color:#fff}
a.nav-dd-item:visited{color:inherit}
a.nav-dd-item{color:inherit}
.footer-col a:visited,.footer-legal a:visited{color:inherit}


.nav-center{display:flex;align-items:center;gap:4px}
.nav-item{position:relative}
.nav-trigger{
  display:flex;align-items:center;gap:5px;
  font-family:var(--font-display);font-size:13px;font-weight:500;color:var(--char-4);
  background:none;border:none;cursor:pointer;padding:8px 14px;border-radius:var(--r);
  transition:color .15s,background .15s;letter-spacing:0.01em;
}
.nav-trigger:hover{color:#fff;background:rgba(255,255,255,0.06)}
.nav-trigger.active-page{color:#fff}
.nav-trigger svg{width:11px;height:11px;transition:transform .2s;opacity:.5}
.nav-item:hover .nav-trigger svg{transform:rotate(180deg);opacity:1}

/* Live dot — signals firm is actively publishing */
.live-dot{
  display:inline-block;width:7px;height:7px;border-radius:50%;
  background:#ff3b3b;margin-right:8px;flex-shrink:0;
  position:relative;
  box-shadow:0 0 0 0 rgba(255,59,59,0.6);
  animation:livepulse 1.8s ease-out infinite;
}
@keyframes livepulse{
  0%   {box-shadow:0 0 0 0 rgba(255,59,59,0.55)}
  70%  {box-shadow:0 0 0 8px rgba(255,59,59,0)}
  100% {box-shadow:0 0 0 0 rgba(255,59,59,0)}
}

.nav-dropdown{
  position:absolute;top:100%;left:50%;
  background:#0F0F0F;border:1px solid var(--d-rule-2);border-radius:var(--r-xl);
  padding:8px;min-width:280px;margin-top:8px;
  opacity:0;pointer-events:none;
  transition:opacity .15s,transform .15s;
  transform:translateX(-50%) translateY(-6px);
  box-shadow:0 24px 60px -20px rgba(0,0,0,.6);
}
/* Invisible hover bridge so cursor can travel from trigger to menu without losing :hover */
.nav-dropdown::before{
  content:'';position:absolute;left:0;right:0;top:-12px;height:12px;
}
.nav-item:hover .nav-dropdown,
.nav-item:focus-within .nav-dropdown{opacity:1;pointer-events:all;transform:translateX(-50%) translateY(0)}
.nav-dd-item{
  display:flex;align-items:flex-start;gap:0;padding:12px 16px;border-radius:var(--r-lg);cursor:pointer;
  transition:background .15s;
}
.nav-dd-item:hover{background:rgba(255,255,255,0.05)}
.nav-dd-text{flex:1;min-width:0}
.nav-dd-title{font-family:var(--font-display);font-size:13px;font-weight:600;color:#fff;margin-bottom:3px;letter-spacing:-0.005em}
.nav-dd-sub{font-size:11.5px;color:var(--char-4);font-weight:400;line-height:1.5}

.nav-right{display:flex;align-items:center;gap:10px}
.nav-login{
  font-family:var(--font-display);font-size:13px;font-weight:500;color:var(--char-4);
  background:none;border:none;cursor:pointer;padding:8px 14px;border-radius:var(--r);
  transition:color .15s;
}
.nav-login:hover{color:#fff}
.nav-mobile-toggle{display:none;background:none;border:none;color:#fff;font-size:22px;cursor:pointer}

/* Nav inquiry button — silver/white on black */
nav.main-nav .btn-primary{background:#fff;color:var(--ink)}
nav.main-nav .btn-primary:hover{background:#e8e8e8}

/* HERO (LIGHT, OPEN) */
.hero{
  background:#fff;color:var(--ink);
  position:relative;overflow:hidden;
  border-bottom:1px solid var(--rule);
}
.hero-grid{
  display:grid;grid-template-columns:1.3fr 1fr;
  min-height:680px;
  position:relative;z-index:2;
  max-width:var(--maxw);margin:0 auto;
}
.hero::before{
  content:'';position:absolute;inset:0;
  background-image:linear-gradient(rgba(10,10,10,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(10,10,10,.025) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:radial-gradient(ellipse 70% 70% at 30% 50%,black 30%,transparent 100%);
  -webkit-mask-image:radial-gradient(ellipse 70% 70% at 30% 50%,black 30%,transparent 100%);
  pointer-events:none;opacity:0.65;
}
.hero-left{
  padding:104px 56px 104px;display:flex;flex-direction:column;justify-content:center;
}
.hero-chip{
  display:inline-flex;align-items:center;gap:8px;align-self:flex-start;
  padding:6px 14px;border:1px solid var(--rule-3);border-radius:999px;
  font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:0.06em;
  color:var(--char-2);margin-bottom:32px;background:var(--paper-2);
}
.hero-chip-dot{width:6px;height:6px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 3px rgba(10,10,10,0.08)}
.hero-h1{
  font-family:var(--font-display);font-weight:700;
  font-size:54px;line-height:1.02;letter-spacing:-0.03em;
  color:var(--ink);margin-bottom:28px;
}
.hero-h1 .silver{color:var(--silver-dim);font-weight:600;font-style:italic}
.hero-h1 .dim{color:var(--char-3)}
.hero-sub{
  font-size:16.5px;font-weight:300;line-height:1.7;color:var(--char-2);
  max-width:540px;margin-bottom:36px;
}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}

.hero-right{
  display:grid;grid-template-rows:repeat(4,1fr);
  border-left:1px solid var(--rule);
}
.hstat{
  padding:32px 48px;border-bottom:1px solid var(--rule);
  display:flex;flex-direction:column;justify-content:center;
}
.hstat:last-child{border-bottom:none}
.hstat-num{
  font-family:var(--font-display);font-size:34px;font-weight:700;
  letter-spacing:-0.02em;color:var(--ink);line-height:1.05;margin-bottom:8px;
}
.hstat-num em{font-style:italic;color:var(--silver-dim);font-weight:500}
.hstat-label{
  font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--char-3);
}

/* Open hero — single-column centered layout */
.hero-open{
  position:relative;z-index:2;
  max-width:var(--maxw);margin:0 auto;
  padding:120px 56px 128px;
  display:flex;flex-direction:column;
  min-height:560px;
  justify-content:center;
}
.hero-open .hero-h1{max-width:18ch}
.hero-open .hero-sub{max-width:60ch}
@media (max-width:980px){
  .hero-open{padding:80px 28px 88px;min-height:0}
}

/* ============================================================ */
/* FULL-BLEED EDITORIAL HERO                                      */
/* ============================================================ */
.hero-fs{
  position:relative;
  width:100%;height:min(92vh,780px);
  min-height:560px;
  overflow:hidden;
}
.hero-fs-slide{
  position:absolute;inset:0;
  opacity:0;visibility:hidden;
  transition:opacity 1s ease, visibility 0s linear 1s;
  pointer-events:none;
}
.hero-fs-slide.active{
  opacity:1;visibility:visible;
  transition:opacity 1s ease, visibility 0s linear 0s;
  pointer-events:auto;
}
.hfs-bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  transition:transform 8s ease;
}
.hero-fs-slide.active .hfs-bg{transform:scale(1.03)}
.hero-fs-slide:not(.active) .hfs-bg{transform:scale(1)}
.hfs-overlay{
  position:absolute;inset:0;
  background:linear-gradient(
    to top,
    rgba(0,0,0,0.82) 0%,
    rgba(0,0,0,0.5)  40%,
    rgba(0,0,0,0.18) 70%,
    rgba(0,0,0,0.10) 100%
  );
}
.hfs-motif{
  position:absolute;inset:0;width:100%;height:100%;
  pointer-events:none;
}
/* Content — anchored lower-left, Blackstone style */
.hfs-content{
  position:absolute;
  bottom:96px;left:56px;right:50%;
  z-index:5;
  display:flex;flex-direction:column;gap:0;
}
.hfs-eyebrow{
  font-family:var(--font-display);font-size:11px;font-weight:600;
  letter-spacing:0.16em;text-transform:uppercase;
  color:rgba(255,255,255,0.6);margin-bottom:20px;
}
.hfs-h1{
  font-family:var(--font-display);font-weight:700;
  font-size:50px;line-height:1.02;letter-spacing:-0.025em;
  color:#fff;margin-bottom:22px;
}
.hfs-accent{color:var(--silver-lt);font-style:italic;font-weight:600}
.hfs-sub{
  font-size:15px;font-weight:300;line-height:1.7;
  color:rgba(255,255,255,0.7);max-width:54ch;margin-bottom:28px;
}
.hfs-actions{display:flex;gap:12px;flex-wrap:wrap}
.hfs-btn-ghost{
  display:inline-flex;align-items:center;gap:7px;
  background:transparent;color:rgba(255,255,255,0.85);
  font-family:var(--font-display);font-size:13px;font-weight:500;letter-spacing:0.01em;
  padding:11px 24px;border:1px solid rgba(255,255,255,0.3);border-radius:var(--r);
  cursor:pointer;text-decoration:none;
  transition:border-color .15s,background .15s;white-space:nowrap;
}
.hfs-btn-ghost:hover{border-color:rgba(255,255,255,0.7);background:rgba(255,255,255,0.07)}

/* Controls */
.hfs-controls{
  position:absolute;right:56px;bottom:48px;
  display:flex;align-items:center;gap:20px;z-index:10;
}
.hfs-arrow{
  width:36px;height:36px;border:1px solid rgba(255,255,255,0.25);border-radius:50%;
  background:rgba(255,255,255,0.06);color:#fff;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  transition:border-color .15s,background .15s;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.hfs-arrow:hover{border-color:rgba(255,255,255,0.7);background:rgba(255,255,255,0.14)}
.hfs-arrow svg{width:13px;height:13px}
.hfs-dots{display:flex;align-items:center;gap:8px}
.hfs-dot{
  width:20px;height:2px;background:rgba(255,255,255,0.3);
  border:0;padding:0;cursor:pointer;
  transition:background .25s,width .3s;
}
.hfs-dot.active{background:#fff;width:32px}
.hfs-counter{
  font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:0.14em;
  text-transform:uppercase;color:rgba(255,255,255,0.5);
  margin-left:4px;
}
.hfs-counter strong{color:#fff;font-weight:600}

@media (max-width:980px){
  .hero-fs{height:min(85vh,620px);min-height:480px}
  .hfs-content{left:28px;right:28px;bottom:88px}
  .hfs-h1{font-size:36px}
  /* Controls move to the TOP on mobile — on the old layout, they sat in the
     same bottom-right corner as the text content below, and as the hero
     got narrower the gap between them shrank until they overlapped. Top
     placement guarantees they never compete with the text block, regardless
     of how many lines a given slide's copy wraps to. */
  .hfs-controls{top:24px;right:24px;bottom:auto;left:auto}

  /* Floating homepage event banner — was a fixed 400px box anchored in the
     same bottom-right corner as the hero's text content above. On narrow
     screens this could sit directly over the hero's call-to-action button.
     On mobile it becomes a slimmer full-width bar instead, with a much
     smaller footprint so it can no longer meaningfully cover the hero. */
  #event-banner{
    width:auto !important;
    left:14px !important;right:14px !important;bottom:14px !important;
    max-width:none !important;
  }
  #event-banner-body{
    min-height:0 !important;
    padding:16px 18px !important;
  }
}
@media (max-width:640px){
  .hfs-content{left:22px;right:22px;bottom:80px}
  .hfs-h1{font-size:28px}
  .hfs-sub{font-size:13px;line-height:1.5;margin-bottom:20px}
  .hfs-eyebrow{font-size:10px;margin-bottom:14px}
  .hfs-btn-ghost{font-size:12px;padding:9px 20px}
  .topbar{font-size:10px;padding:5px 12px}
  .topbar-regions a{font-size:10px}
  .nav-logo img{max-height:26px}
}

/* MARQUEE */
.marquee{
  background:var(--paper-2);border-bottom:1px solid var(--rule);
  overflow:hidden;
}
.marquee-track{
  display:flex;gap:48px;padding:18px 0;white-space:nowrap;
  animation:scroll 50s linear infinite;
  font-family:var(--font-display);font-size:12px;font-weight:500;letter-spacing:0.16em;
  text-transform:uppercase;color:var(--silver-dim);
}
.mitem{display:inline-flex;align-items:center;gap:48px}
.mdot{width:5px;height:5px;border-radius:50%;background:var(--silver);flex-shrink:0}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* SECTION SCAFFOLDING */
.pad{padding:104px 56px}
.pad-inner{max-width:var(--maxw);margin:0 auto}
.slabel{
  font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:0.14em;
  text-transform:uppercase;color:var(--silver-dim);margin-bottom:18px;
  display:flex;align-items:center;gap:10px;
}
.slabel::before{content:'';width:24px;height:1px;background:var(--silver)}
.sh2{
  font-family:var(--font-display);font-weight:700;
  font-size:40px;line-height:1.05;letter-spacing:-0.025em;
  color:var(--ink);margin-bottom:20px;
}
.sh2 .muted{color:var(--char-3)}
.sh2 .silver{color:var(--silver-dim);font-style:italic;font-weight:600}
.ssub{
  font-size:15.5px;font-weight:300;line-height:1.75;color:var(--char-2);
  max-width:680px;margin-bottom:48px;
}
/* dark variants */
.pad.dark{background:var(--ink);color:#fff;border-top:1px solid var(--d-rule);border-bottom:1px solid var(--d-rule)}
.pad.dark .sh2{color:#fff}
.pad.dark .ssub{color:var(--char-4)}
.pad.dark .slabel{color:var(--silver)}
.pad.warm{background:var(--paper-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}

/* INTRO BAND ("what we do") */
.intro-grid{
  display:grid;grid-template-columns:1fr 1.5fr;gap:96px;
  align-items:start;
}
.intro-grid h2{
  font-family:var(--font-display);font-size:36px;font-weight:700;
  letter-spacing:-0.025em;line-height:1.05;color:var(--ink);
}
.intro-copy p{font-size:16px;font-weight:300;line-height:1.8;color:var(--char-2)}
.intro-copy p+p{margin-top:20px}
.intro-copy strong{color:var(--ink);font-weight:600}

/* PRODUCT/PILLAR GRID — three pillars */
.product-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  border-radius:var(--r-xl);overflow:hidden;
}
.product-card{
  background:#fff;padding:40px 32px;
  display:flex;flex-direction:column;cursor:pointer;
  transition:background .25s;min-height:440px;
  border:1px solid var(--rule);border-radius:var(--r-xl);overflow:hidden;
}
.product-card:hover{background:var(--paper-2)}
.pc-icon{
  font-family:var(--font-display);font-size:11px;font-weight:700;
  letter-spacing:0.14em;color:var(--silver-dim);margin-bottom:24px;
}
.pc-label{
  font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--char-4);margin-bottom:10px;
}
.pc-title{
  font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:-0.02em;
  color:var(--ink);margin-bottom:14px;
}
.pc-desc{
  font-size:14px;font-weight:300;line-height:1.7;color:var(--char-2);
  margin-bottom:24px;flex:1;
}
.pc-who{
  font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:0.08em;
  text-transform:uppercase;color:var(--ink);
  padding-top:18px;border-top:1px solid var(--rule);
  display:flex;align-items:center;gap:8px;
}
.pc-who::after{content:'→';font-family:var(--font-body);font-size:14px;letter-spacing:0;text-transform:none;transition:transform .2s}
.product-card:hover .pc-who::after{transform:translateX(4px)}

/* THESIS BLOCK (dark) */
.thesis-grid{
  display:grid;grid-template-columns:1fr 1.4fr;gap:80px;
  align-items:start;
}
.thesis-quote{
  font-family:var(--font-display);font-weight:500;
  font-size:24px;line-height:1.3;letter-spacing:-0.015em;
  color:#fff;
}
.thesis-quote .silver{color:var(--silver);font-style:italic;font-weight:400}
.thesis-body p{font-size:15.5px;font-weight:300;line-height:1.85;color:var(--char-4)}
.thesis-body p+p{margin-top:18px}
.thesis-body strong{color:#fff;font-weight:500}

/* PARTNERSHIP — three commitments (dark) */
.partnership-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--d-rule);
  border:1px solid var(--d-rule);border-radius:var(--r-xl);overflow:hidden;
  margin-top:64px;
}
.commitment{
  background:var(--ink);padding:48px 36px;
  display:flex;flex-direction:column;gap:16px;
  transition:background .25s;
}
.commitment:hover{background:#171717}
.commitment-num{
  font-family:var(--font-display);font-size:13px;font-weight:600;
  letter-spacing:0.06em;color:var(--silver);
}
.commitment-h{
  font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:-0.02em;
  color:#fff;
}
.commitment-p{font-size:14px;font-weight:300;line-height:1.75;color:var(--char-4)}

/* WHO WE SERVE */
.serve-grid{
  display:grid;grid-template-columns:1.1fr 1fr;gap:80px;
  align-items:center;
}
.serve-list{list-style:none;padding:0;margin-top:8px}
.serve-list li{
  display:flex;align-items:flex-start;gap:18px;
  padding:22px 0;border-top:1px solid var(--rule);
}
.serve-list li:last-child{border-bottom:1px solid var(--rule)}
.serve-num{
  font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:0.08em;
  color:var(--silver-dim);min-width:32px;padding-top:3px;
}
.serve-text strong{
  font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--ink);
  display:block;margin-bottom:4px;letter-spacing:-0.01em;
}
.serve-text span{font-size:13.5px;font-weight:300;line-height:1.7;color:var(--char-2)}
.serve-visual{
  background:var(--paper-3);border:1px solid var(--rule);border-radius:var(--r-xl);
  aspect-ratio:4/5;position:relative;overflow:hidden;
}
.serve-visual svg{position:absolute;inset:0;width:100%;height:100%}

/* INSIGHTS */
.insights-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
}
.insight-card{
  background:#fff;padding:32px 28px;
  display:flex;flex-direction:column;gap:18px;cursor:pointer;
  transition:background .25s;min-height:300px;
}
.insight-card:hover{background:var(--paper-2)}
.insight-meta{
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:0.1em;
  text-transform:uppercase;
}
.insight-meta .date{color:var(--char-4)}
.insight-meta .tag{color:var(--silver-dim)}
.insight-h{
  font-family:var(--font-display);font-size:19px;font-weight:600;line-height:1.3;
  letter-spacing:-0.01em;color:var(--ink);flex:1;
}
.insight-body{font-size:13.5px;font-weight:300;line-height:1.7;color:var(--char-2)}
.insight-cta{
  font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--ink);
  display:inline-flex;align-items:center;gap:8px;
}
.insight-cta::after{content:'→';transition:transform .2s}
.insight-card:hover .insight-cta::after{transform:translateX(4px)}

/* Kaistone Finance Media preview cards — dark variant for the homepage band */
.media-preview-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--d-rule);
  border:1px solid var(--d-rule);border-radius:var(--r-xl);overflow:hidden;
  margin-top:40px;
}
.media-preview-card{
  background:var(--ink);padding:32px 28px;
  display:flex;flex-direction:column;gap:16px;cursor:pointer;
  transition:background .25s;min-height:280px;
}
.media-preview-card:hover{background:#171717}
.mp-meta{
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:0.1em;
  text-transform:uppercase;
}
.mp-meta .mp-date{color:var(--char-4)}
.mp-meta .mp-tag{color:var(--silver)}
.mp-h{
  font-family:var(--font-display);font-size:19px;font-weight:600;line-height:1.3;
  letter-spacing:-0.01em;color:#fff;
}
.mp-body{font-size:13.5px;font-weight:300;line-height:1.7;color:var(--char-4);flex:1}
.mp-cta{
  font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:0.1em;
  text-transform:uppercase;color:#fff;
  display:inline-flex;align-items:center;gap:8px;
}
.mp-cta::after{content:'→';transition:transform .2s}
.media-preview-card:hover .mp-cta::after{transform:translateX(4px)}
@media (max-width:980px){.media-preview-grid{grid-template-columns:1fr}}

/* ── YOUTUBE EMBED — responsive 16:9 ─────────────────────────── */
.yt-wrap{
  position:relative;width:100%;padding-bottom:56.25%;
  background:#000;overflow:hidden;
}
.yt-wrap iframe{
  position:absolute;inset:0;width:100%;height:100%;
  border:0;display:block;
}
/* Custom thumbnail overlay — shown before user clicks play */
.yt-thumb{
  position:absolute;inset:0;cursor:pointer;
  background-size:cover;background-position:center;
  transition:opacity .3s;
  z-index:2;
}
.yt-thumb.hidden{opacity:0;pointer-events:none}
.yt-play-btn{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:64px;height:64px;border-radius:50%;
  background:rgba(10,10,10,0.75);border:1.5px solid rgba(255,255,255,0.3);
  display:flex;align-items:center;justify-content:center;
  transition:background .2s,transform .2s;backdrop-filter:blur(6px);
}
.yt-thumb:hover .yt-play-btn{background:rgba(10,10,10,0.92);transform:translate(-50%,-50%) scale(1.06)}
.yt-play-btn svg{width:22px;height:22px;margin-left:3px}
.yt-thumb-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(0,0,0,0.5) 0%,transparent 50%);
}

/* ── VIDEO / EPISODE GRID — media page ───────────────────────── */
.episode-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--rule);
  border:1px solid var(--rule);border-radius:var(--r-xl);overflow:hidden;
  margin-top:48px;
}
.episode-card{
  background:#fff;
  display:flex;flex-direction:column;cursor:pointer;
  transition:background .25s;
}
.episode-card:hover{background:var(--paper-2)}
.ep-thumb{
  position:relative;width:100%;padding-bottom:56.25%;
  background:#0a0a0a;overflow:hidden;flex-shrink:0;
}
.ep-thumb iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0;display:block;
}
.ep-thumb .yt-thumb{border-radius:0}
.ep-thumb .yt-play-btn{
  width:52px;height:52px;
}
.ep-thumb .yt-play-btn svg{width:18px;height:18px}
.ep-body{
  padding:22px 24px 20px;
  display:flex;flex-direction:column;gap:10px;flex:1;
}
.ep-top{
  display:flex;align-items:center;justify-content:space-between;
  font-family:var(--font-display);font-size:11px;font-weight:500;
  letter-spacing:0.1em;text-transform:uppercase;
}
.ep-num{color:var(--silver-dim)}
.ep-tag{color:var(--char-4)}
.ep-title{
  font-family:var(--font-display);font-size:17px;font-weight:600;
  line-height:1.3;letter-spacing:-0.01em;color:var(--ink);flex:1;
}
.ep-guest{
  display:flex;align-items:center;gap:10px;
  padding-top:12px;border-top:1px solid var(--rule);
  margin-top:auto;
}
.ep-guest-avatar{
  width:30px;height:30px;border-radius:50%;flex-shrink:0;
  background:var(--paper-3);border:1px solid var(--rule-2);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-size:10px;font-weight:700;color:var(--char-3);
}
.ep-guest-name{font-family:var(--font-display);font-size:12px;font-weight:600;color:var(--ink);letter-spacing:-0.005em;margin-bottom:1px}
.ep-guest-title{font-size:11px;font-weight:300;color:var(--char-3);line-height:1.4}
.ep-date{
  font-family:var(--font-display);font-size:11px;font-weight:500;
  letter-spacing:0.08em;color:var(--char-4);text-transform:uppercase;
}

/* Platform badges row */
.podcast-platforms{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin-top:6px;
}
.platform-badge{
  display:inline-flex;align-items:center;gap:7px;
  font-family:var(--font-display);font-size:11px;font-weight:600;
  letter-spacing:0.06em;text-transform:uppercase;
  color:var(--char-2);text-decoration:none;
  padding:7px 14px;border:1px solid var(--rule-2);border-radius:999px;
  background:#fff;transition:border-color .15s,background .15s;
}
.platform-badge:hover{border-color:var(--ink);background:var(--paper-2)}
.platform-badge svg{width:14px;height:14px;flex-shrink:0}

/* Load more row */
.ep-load-more{
  grid-column:1/-1;
  background:#fff;padding:24px;
  display:flex;align-items:center;justify-content:center;
  border-top:1px solid var(--rule);
  font-family:var(--font-display);font-size:12px;font-weight:600;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--char-3);
  cursor:pointer;transition:background .2s,color .2s;gap:8px;
}
.ep-load-more:hover{background:var(--paper-2);color:var(--ink)}

@media (max-width:980px){
  .episode-grid{grid-template-columns:1fr}
  .ep-load-more{grid-column:1}
}

/* ── HOMEPAGE MEDIA — Featured + Grid layout ──────────────────── */
.media-featured-layout{margin-top:40px;display:flex;flex-direction:column;gap:1px;background:var(--d-rule);border:1px solid var(--d-rule);border-radius:var(--r-xl);overflow:hidden}

/* Hero card */
.mp-hero-card{
  display:grid;grid-template-columns:1fr 1fr;
  cursor:default;transition:background .25s;
  background:var(--ink);min-height:340px;
}
.mp-hero-card:hover{background:#131313}
.mp-hero-left{
  position:relative;overflow:hidden;
  min-height:340px;
  aspect-ratio:16/9;
}
.mp-hero-img{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  transition:transform .7s ease;
}
.mp-hero-card:hover .mp-hero-img{transform:scale(1.04)}
.mp-hero-img-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to right, rgba(0,0,0,0) 50%, var(--ink) 100%),
             linear-gradient(to top, rgba(0,0,0,0.4) 0%, transparent 60%);
}
.mp-hero-card:hover .mp-hero-img-overlay{background:linear-gradient(to right, rgba(0,0,0,0) 50%, #131313 100%),linear-gradient(to top, rgba(0,0,0,0.4) 0%, transparent 60%)}
.mp-hero-right{
  padding:48px 48px 40px 36px;
  display:flex;flex-direction:column;justify-content:space-between;gap:24px;
}
.mp-hero-top{display:flex;flex-direction:column;gap:20px}
.mp-hero-meta{
  display:flex;align-items:center;justify-content:space-between;
  font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;
}
.mp-hero-meta .mp-date{color:var(--char-4)}
.mp-hero-meta .mp-tag{
  color:#fff;background:rgba(255,255,255,0.1);border:1px solid var(--d-rule-2);
  padding:3px 10px;border-radius:999px;font-size:10px;font-weight:600;letter-spacing:0.12em;
}
.mp-hero-h{
  font-family:var(--font-display);font-size:24px;font-weight:700;
  line-height:1.2;letter-spacing:-0.02em;color:#fff;
}
.mp-hero-pull{
  border-left:2px solid rgba(255,255,255,0.2);
  padding-left:18px;
  font-size:14.5px;font-weight:300;line-height:1.75;
  color:rgba(255,255,255,0.6);font-style:italic;
}
.mp-hero-guest{
  display:flex;align-items:center;gap:14px;
  padding-top:20px;border-top:1px solid var(--d-rule);
}
.mp-hero-guest-avatar{
  width:40px;height:40px;border-radius:50%;flex-shrink:0;
  background:rgba(255,255,255,0.08);border:1px solid var(--d-rule-2);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-size:13px;font-weight:600;color:var(--silver);
}
.mp-hero-guest-info{}
.mp-hero-guest-name{
  font-family:var(--font-display);font-size:13px;font-weight:600;color:#fff;letter-spacing:-0.005em;margin-bottom:2px;
}
.mp-hero-guest-title{font-size:12px;font-weight:300;color:var(--char-4);line-height:1.4}
.mp-hero-bottom{}
.mp-hero-cta{
  font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:0.1em;
  text-transform:uppercase;color:#fff;
  display:inline-flex;align-items:center;gap:8px;
}
.mp-hero-cta::after{content:'→';transition:transform .2s;font-family:var(--font-body);font-size:14px;text-transform:none;letter-spacing:0}
.mp-hero-card:hover .mp-hero-cta::after{transform:translateX(5px)}

/* Sub grid */
.mp-sub-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:#1a1a1a;padding:1px;
}

@media (max-width:980px){
  .mp-hero-card{grid-template-columns:1fr}
  .mp-hero-left{min-height:220px}
  .mp-hero-img-overlay{background:linear-gradient(to bottom, transparent 40%, var(--ink) 100%) !important}
  .mp-hero-card:hover .mp-hero-img-overlay{background:linear-gradient(to bottom, transparent 40%, #131313 100%) !important}
  .mp-hero-right{padding:28px 24px 28px}
  .mp-sub-grid{grid-template-columns:1fr}
}

/* Media preview card — with image strip (dark) */
.media-preview-card.has-img{
  padding:0;gap:0;min-height:320px;
  border-radius:var(--r-xl);overflow:hidden;
}
.media-preview-card.has-img .mp-img{
  width:100%;height:240px;flex-shrink:0;
  position:relative;overflow:hidden;
}
.media-preview-card.has-img .mp-img-inner{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  transition:transform .6s ease;
}
.media-preview-card.has-img:hover .mp-img-inner{transform:scale(1.04)}
.media-preview-card.has-img .mp-body-wrap{
  padding:24px 24px 20px;
  display:flex;flex-direction:column;gap:12px;flex:1;
}

/* Insight card — homepage variant with image strip (light) */
.insight-card.home-img{
  padding:0;gap:0;min-height:320px;
  border-radius:var(--r-xl);overflow:hidden;
  border:1px solid var(--rule);
}
.insight-card.home-img .ih-img{
  width:100%;height:200px;flex-shrink:0;
  position:relative;overflow:hidden;
}
.insight-card.home-img .ih-img-inner{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  transition:transform .6s ease;
}
.insight-card.home-img:hover .ih-img-inner{transform:scale(1.04)}
.insight-card.home-img .ih-body{
  padding:24px 24px 20px;
  display:flex;flex-direction:column;gap:14px;flex:1;
}

/* CTA BAND (dark) */
.cta-band{
  background:var(--ink);color:#fff;padding:56px 56px;
  border-top:1px solid var(--d-rule);border-bottom:1px solid var(--d-rule);
  position:relative;overflow:hidden;
  /* When linked to via #subscribe, offset the scroll so the section lands
     below the sticky nav bar rather than being hidden underneath it. */
  scroll-margin-top:100px;
}
.cta-band::before{
  content:'';position:absolute;top:-200px;right:-200px;
  width:600px;height:600px;
  background:radial-gradient(circle, rgba(185,184,184,.10), transparent 70%);
  pointer-events:none;
}
.cta-grid{
  display:grid;grid-template-columns:1.3fr 1fr;gap:56px;
  max-width:var(--maxw);margin:0 auto;align-items:center;
  position:relative;z-index:2;
}
.cta-h{
  font-family:var(--font-display);font-weight:700;
  font-size:34px;line-height:1.1;letter-spacing:-0.025em;
  color:#fff;margin-bottom:18px;
}
.cta-h .silver{color:var(--silver);font-style:italic;font-weight:600}
.cta-p{font-size:15px;font-weight:300;line-height:1.75;color:var(--char-4);max-width:540px}
.cta-form{
  display:flex;flex-direction:column;gap:12px;
  background:#171717;border:1px solid var(--d-rule-2);border-radius:var(--r-xl);
  padding:28px;
}
.cta-form input{
  background:transparent;border:0;border-bottom:1px solid var(--d-rule);
  color:#fff;font:inherit;font-size:16px;font-family:var(--font-body);
  padding:12px 4px;outline:none;
}
.cta-form input:focus{border-bottom-color:var(--silver)}
.cta-form input::placeholder{color:var(--char-4)}
.cta-form button{margin-top:10px;align-self:flex-start}
.cta-form select{
  background:transparent;border:0;border-bottom:1px solid var(--d-rule);
  color:#fff;font:inherit;font-size:16px;font-family:var(--font-body);
  padding:12px 4px;outline:none;cursor:pointer;
  -webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239C9C9C' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 4px center;padding-right:24px;
}
.cta-form select:focus{border-bottom-color:var(--silver)}
.cta-form select option{background:#1a1a1a;color:#fff}
.loc-toggle-row{display:flex;align-items:center;gap:0;margin-bottom:-4px}
.loc-toggle-row .loc-toggle-btn{
  font-family:var(--font-display);font-size:10px;font-weight:600;letter-spacing:0.1em;
  text-transform:uppercase;background:none;border:none;cursor:pointer;
  padding:4px 0;color:var(--char-4);transition:color .15s;
}
.loc-toggle-row .loc-toggle-btn.active{color:var(--silver-lt)}
.loc-toggle-row .loc-toggle-sep{font-size:10px;color:var(--char-4);margin:0 8px;opacity:0.5}
/* contact form card variants */
.contact-form-card select{
  background:#fff;border:1px solid var(--rule-2);border-radius:var(--r);
  color:var(--ink);font:inherit;font-size:16px;font-family:var(--font-body);
  padding:10px 14px;outline:none;cursor:pointer;width:100%;
  -webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236B6B6B' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;
}
.contact-form-card select:focus{border-color:var(--rule-3);background:#fff}
.contact-form-card .loc-toggle-row .loc-toggle-btn{color:var(--char-3)}
.contact-form-card .loc-toggle-row .loc-toggle-btn.active{color:var(--ink)}
.contact-form-card .loc-toggle-row .loc-toggle-sep{color:var(--char-3)}

/* PAGE HERO (interior) */
.page-hero{background-color:#101216;
  padding:104px 56px 72px;
  background:var(--paper-2);
  border-bottom:1px solid var(--rule);
  position:relative;
}
.page-hero-inner{max-width:var(--maxw);margin:0 auto}
.breadcrumb{
  font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--char-3);margin-bottom:24px;
}
.breadcrumb a{color:var(--char-3);text-decoration:none;cursor:pointer;transition:color .15s}
.breadcrumb a:hover{color:var(--ink)}
.breadcrumb .sep{margin:0 12px;opacity:0.4}
.page-hero h1{
  font-family:var(--font-display);font-weight:700;
  font-size:50px;line-height:1.05;letter-spacing:-0.025em;
  color:var(--ink);max-width:24ch;margin-bottom:24px;
}
.page-hero h1 .silver{color:var(--silver-dim);font-style:italic;font-weight:600}
.page-hero-sub{
  font-size:16px;font-weight:300;line-height:1.7;color:var(--char-2);
  max-width:62ch;
}

/* PROSE / LONG-FORM */
.prose-wrap{max-width:var(--maxw);margin:0 auto;padding:96px 56px}
.prose-cols{display:grid;grid-template-columns:1fr 2.2fr;gap:96px;align-items:start}
.prose-label{
  font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:0.14em;
  text-transform:uppercase;color:var(--silver-dim);
  position:sticky;top:90px;
}
.prose{max-width:760px}
.prose p{font-size:16px;font-weight:300;line-height:1.85;color:var(--char-2)}
.prose p+p{margin-top:20px}
.prose strong{color:var(--ink);font-weight:600}
.prose h2{
  font-family:var(--font-display);font-size:30px;font-weight:700;letter-spacing:-0.02em;
  color:var(--ink);margin-top:64px;margin-bottom:18px;
}
.prose h2:first-child{margin-top:0}
.prose h3{
  font-family:var(--font-display);font-size:19px;font-weight:600;letter-spacing:-0.01em;
  color:var(--ink);margin-top:36px;margin-bottom:12px;
}
.prose ul{padding-left:0;list-style:none;margin:18px 0}
.prose ul li{
  position:relative;padding-left:22px;padding-bottom:12px;
  font-size:15.5px;font-weight:300;line-height:1.75;color:var(--char-2);
}
.prose ul li::before{
  content:'';position:absolute;left:0;top:13px;width:12px;height:1px;background:var(--silver-dim);
}
.prose ul li strong{color:var(--ink);font-weight:600}

/* CONTACT GRID */
.contact-grid{
  display:grid;grid-template-columns:1.4fr 1fr;gap:64px;
  max-width:var(--maxw);margin:0 auto;padding:96px 56px;align-items:start;
}
.contact-form-card{
  background:#fff;border:1px solid var(--rule-2);border-radius:var(--r-xl);
  padding:36px;
}
.contact-form-card h2{
  font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:-0.02em;
  color:var(--ink);margin-bottom:14px;
}
.contact-form-card p{font-size:14px;font-weight:300;line-height:1.7;color:var(--char-2);margin-bottom:24px}
.contact-form-card form{display:flex;flex-direction:column;gap:14px}
.contact-form-card input,.contact-form-card textarea{
  background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r);
  padding:13px 14px;color:var(--ink);font:inherit;font-size:16px;outline:none;font-family:var(--font-body);
}
.contact-form-card input:focus,.contact-form-card textarea:focus{border-color:var(--rule-3);background:#fff}
.contact-form-card input::placeholder,.contact-form-card textarea::placeholder{color:var(--char-3)}
.contact-form-card textarea{min-height:110px;resize:vertical;font-family:var(--font-body)}
.contact-form-card button{margin-top:6px;align-self:flex-start}

.contact-aside{
  background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r-xl);
  padding:32px;
}
.contact-aside .label{
  font-family:var(--font-display);font-size:10px;font-weight:600;letter-spacing:0.14em;
  text-transform:uppercase;color:var(--silver-dim);margin-bottom:12px;
}
.contact-aside h3{
  font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--ink);
  letter-spacing:-0.015em;margin-bottom:6px;
}
.contact-aside p{font-size:13.5px;font-weight:300;color:var(--char-2);line-height:1.7}
.contact-aside hr{border:0;border-top:1px solid var(--rule);margin:24px 0}
.contact-aside a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule-2);transition:border-color .15s}
.contact-aside a:hover{border-color:var(--ink)}

/* INSIGHTS PAGE — full grid */
.insights-page-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
}
.insights-page-grid .insight-card{
  border:1px solid var(--rule);border-radius:var(--r-lg);
}
@media (max-width:980px){.insights-page-grid{grid-template-columns:1fr}}

/* FOOTER */
footer{
  background:var(--ink);color:var(--char-4);
  padding:52px 56px 28px;
  border-top:1px solid var(--rule);
}
.footer-top{
  max-width:var(--maxw);margin:0 auto;
  display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:36px;
  padding-bottom:32px;border-bottom:1px solid var(--d-rule);
}
.footer-brand img{height:22px;margin-bottom:14px;display:block}
.footer-brand p{font-size:13px;font-weight:300;color:var(--char-4);max-width:38ch;line-height:1.65}
.footer-locations{
  margin-top:14px;font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:0.14em;
  text-transform:uppercase;color:var(--silver-dim);
}
.footer-locations span{color:var(--silver-lt)}
.footer-col h5{
  font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:0.14em;
  text-transform:uppercase;color:var(--silver);margin-bottom:12px;
}
.footer-col ul{list-style:none;padding:0}
.footer-col li{margin-bottom:7px}
.footer-col a{
  font-size:13px;color:var(--char-4);text-decoration:none;cursor:pointer;
  transition:color .15s;font-family:var(--font-body);font-weight:400;
}
.footer-col a:hover{color:#fff}
.footer-disclosure{
  max-width:var(--maxw);margin:20px auto 0;
  font-size:11px;font-weight:300;line-height:1.6;color:var(--char-3);
}
.footer-disclosure strong{color:var(--char-4);font-weight:500}
.footer-legal{
  max-width:var(--maxw);margin:16px auto 0;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--char-3);
}
.footer-legal a{color:var(--char-3);text-decoration:none;cursor:pointer}
.footer-legal a:hover{color:var(--silver)}

/* INVESTOR LOGIN MODAL */
.overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.7);backdrop-filter:blur(8px);
  z-index:300;display:none;align-items:center;justify-content:center;padding:20px;
}
.overlay.open{display:flex}
.modal{
  background:#fff;border:1px solid var(--rule-2);border-radius:var(--r-xl);
  width:100%;max-width:440px;padding:36px;position:relative;
  animation:mIn .2s ease;
}
@keyframes mIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.modal-x{
  position:absolute;top:18px;right:18px;
  width:32px;height:32px;background:var(--paper-2);border:1px solid var(--rule);
  border-radius:50%;cursor:pointer;color:var(--char-2);
  display:flex;align-items:center;justify-content:center;font-size:13px;
}
.modal-x:hover{color:var(--ink);background:var(--paper-3)}
.modal h2{
  font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:-0.02em;
  color:var(--ink);margin-bottom:8px;
}
.modal p{font-size:13px;font-weight:300;color:var(--char-2);margin-bottom:24px;line-height:1.7}
.modal form{display:flex;flex-direction:column;gap:12px}
.modal input{
  background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r);
  padding:13px 14px;color:var(--ink);font:inherit;font-size:14px;outline:none;font-family:var(--font-body);
}
.modal input:focus{border-color:var(--rule-3);background:#fff}
.modal select{
  background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r);
  padding:13px 14px;color:var(--ink);font:inherit;font-size:16px;outline:none;font-family:var(--font-body);
  width:100%;cursor:pointer;-webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236B6B6B' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;
}
.modal select:focus{border-color:var(--rule-3);background:#fff}
.modal-foot{
  margin-top:18px;font-size:11.5px;color:var(--char-3);text-align:center;line-height:1.6;
}

/* RESPONSIVE */
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr;min-height:0}
  .hero-right{border-left:0;border-top:1px solid var(--d-rule)}
  .hstat{padding:22px 28px}
  .hero-left{padding:64px 28px 48px}
  .pad{padding:64px 28px}
  .product-grid{grid-template-columns:1fr}
  .partnership-grid{grid-template-columns:1fr}
  .insights-grid{grid-template-columns:1fr}
  .intro-grid{grid-template-columns:1fr;gap:32px}
  .thesis-grid{grid-template-columns:1fr;gap:32px}
  .serve-grid{grid-template-columns:1fr;gap:48px}
  .cta-grid{grid-template-columns:1fr;gap:36px}
  .prose-cols{grid-template-columns:1fr;gap:24px}
  .prose-wrap{padding:64px 28px}
  .prose-label{position:static}
  .contact-grid{grid-template-columns:1fr;padding:64px 28px}
  .footer-top{grid-template-columns:1fr 1fr;gap:32px}
  footer{padding:56px 28px 28px}
  .page-hero{padding:64px 28px 56px}
  .nav-center{display:none}
  nav.main-nav{padding:0 22px;height:64px}
  /* Keep the topbar visible on mobile so the US/BVI toggle AND the subscribe
     button are both accessible, aligned neatly like the desktop version. */
  .topbar{padding:6px 14px;font-size:11px;height:auto}
  .topbar-inner{gap:10px;padding:0}
  .topbar-subscribe-btn{font-size:9px;padding:5px 12px;letter-spacing:0.06em}
  .nav-mobile-toggle{display:block}
  .cta-band{padding:64px 28px}
}
@media (max-width:640px){
  .footer-top{grid-template-columns:1fr}
  .hero-h1{font-size:42px}

  /* Keep the Investor Login and Investor Inquiry buttons visible on phones
     (they were being hidden entirely below 640px before). Just shrink them
     proportionally so they still fit in the top bar next to the hamburger. */
  .nav-right{gap:8px}
  .nav-right .nav-login{
    display:inline-flex;font-size:11px;padding:6px 10px;letter-spacing:0.02em;
  }
  .nav-right .btn-primary{
    display:inline-flex;font-size:11px;padding:7px 14px;letter-spacing:0.02em;
  }

  /* Interior page heroes (about, community, business, contact, etc.) —
     apply the same shrink-to-fit approach that worked on the homepage
     carousel. Everything scales proportionally instead of overflowing. */
  .page-hero{padding:44px 20px 36px}
  .page-hero h1{font-size:28px;line-height:1.15;max-width:100%;margin-bottom:16px}
  .page-hero-sub{font-size:13px;line-height:1.6;max-width:100%}
  .breadcrumb{font-size:10px;margin-bottom:16px}

  /* Section headings across all pages (like "Our Firm", "Investment Thesis") */
  .sh2{font-size:28px}
  .cta-h{font-size:22px}
  .ssub{font-size:14px;line-height:1.65}
  .section-h,.slabel-lg{font-size:18px}
  .slabel{font-size:10px}

  /* Prose (About page body copy, etc.) */
  .prose h2{font-size:18px}
  .prose h3{font-size:15px}
  .prose p,.prose li{font-size:14px;line-height:1.65}
  .prose-cols{gap:20px}
  .prose-wrap{padding:44px 20px}

  /* Cards — card headers and body copy shrink so more content fits */
  .insight-h,.mp-h,.ep-title{font-size:16px;line-height:1.25}
  .insight-body,.mp-body{font-size:13px;line-height:1.55}
  .card-body,.mp-body-wrap,.ep-body{padding:18px}

  /* Buttons — general shrink, keeping shape */
  .btn-primary{font-size:12px;padding:10px 22px}

  /* Nav — additional shrinking beyond hero-specific tuning */
  nav.main-nav{height:56px;padding:0 16px}

  /* Community events section — prevent long titles/text from overflowing.
     min-width:0 on grid items lets them shrink below their content width;
     overflow-wrap breaks long unbroken words that would push wider than the row. */
  .event-row{overflow:hidden}
  .evt-row-grid > * {min-width:0;word-wrap:break-word;overflow-wrap:break-word}
  .evt-row-grid{padding:20px 16px !important;gap:8px !important}

  /* Hero image sizing on mobile — wide landscape hero photos were being
     cut off on narrow phone screens because background-size:cover cropped
     the sides. Reducing the hero min-height + positioning the image higher
     (top-center) keeps the subject of the photo visible instead of hidden
     off-screen. Applies to interior pages (about, real-estate, etc). */
  .page-hero.has-img{min-height:280px}
  .page-hero.has-img .hero-bg{background-position:center top}

  /* Footer text */
  .footer-col h5{font-size:11px}
  .footer-col li{font-size:12px}
  .footer-disclosure{font-size:10.5px;line-height:1.55}

  /* ─── COMPREHENSIVE BODY TEXT SHRINK ─────────────────────────────
     Everything else with fixed pixel sizes that was still too big on
     mobile. Each rule addresses one specific element seen too large. */

  /* Article page headings (article.html — the individual article view) */
  .article-title{font-size:22px;line-height:1.25}
  .article-summary{font-size:13px;line-height:1.6}
  .article-content{font-size:14px;line-height:1.75}
  .article-content h2{font-size:16px;margin-top:28px;margin-bottom:10px;line-height:1.3}
  .article-content h3{font-size:14px;line-height:1.3}
  .article-missing h1{font-size:20px}

  /* Home/about intro sections */
  .intro-grid h2{font-size:24px;line-height:1.2}
  .intro-copy p{font-size:14px;line-height:1.7}

  /* Homepage stats */
  .hstat-num{font-size:24px}

  /* Business media hero card */
  .mp-hero-h{font-size:18px;line-height:1.25}

  /* Latest from the Firm home cards */
  .video-title{font-size:18px;line-height:1.25}

  /* Product/platform cards (Real Estate, Credit, Equity pages) */
  .pc-title{font-size:20px}

  /* Contact form headings */
  .contact-form-card h2{font-size:20px}
  .contact-aside h3{font-size:15px}

  /* Community — thesis quote and commitment sections */
  .thesis-quote{font-size:17px;line-height:1.5}
  .commitment-h{font-size:18px}

  /* Modals */
  .modal h2{font-size:20px}

  /* Serve section */
  .serve-text strong{font-size:14px}

  /* Nav mobile-toggle icon slightly smaller so it doesn't dominate */
  .nav-mobile-toggle{font-size:20px}
}

/* ============================================================ */
/* GLOBAL MOBILE SHRINK — catches everything not already sized  */
/* Any text or element still too big at mobile widths falls     */
/* through to these rules and gets scaled down uniformly.       */
/* ============================================================ */
@media (max-width:640px){
  /* Base body text — smaller AND lighter. The 400 weight reads heavy
     at phone sizes; 300 matches the editorial look of the card copy. */
  body{font-size:13px;font-weight:300}
  p{font-size:13px;font-weight:300;line-height:1.7}
  li,td,th{font-size:13px;font-weight:300}

  /* Headings — smaller and one weight-step lighter (700→600) so they
     don't feel chunky against the lighter body text */
  h1{font-size:24px;font-weight:600}
  h2{font-size:19px;font-weight:600}
  h3{font-size:16px;font-weight:600}
  h4{font-size:14px;font-weight:600}
  h5,h6{font-size:12px;font-weight:600}

  /* Body copy classes that carry their own weights — force lighter */
  .prose p,.prose li,.article-content,.article-content p,
  .intro-copy p,.page-hero-sub,.hfs-sub,.hero-sub,
  .insight-body,.mp-body,.ep-description,.article-summary{
    font-weight:300;
  }

  /* ── EVERY BUTTON = NAV BUTTON SCALE ──────────────────────────
     The two nav buttons (Investor Login 11px/6px-10px, Investor
     Inquiry 11px/7px-14px) are the reference size. Every other
     button and button-styled link on the site now matches that
     scale exactly, so nothing looks oversized next to them. */
  button:not(.nav-mobile-toggle):not(.mobile-nav-close),
  .btn-primary,
  .hfs-btn-ghost,
  a.btn,a.btn-primary,a.hfs-btn-ghost,
  .cta-form button[type=submit],
  .loc-toggle-btn,
  .insight-cta,.mp-cta,
  input[type=submit]{
    font-size:11px;
    padding:7px 14px;
    line-height:1.4;
  }
  /* Text-only CTAs (Read →) shouldn't get button padding */
  .insight-cta,.mp-cta{padding:0}

  /* The white hero CTA buttons on business.html (Subscribe) and community.html
     (Connect) use inline styles that beat external CSS by default. !important
     is needed here to bring them down to the same scale as the nav buttons
     on mobile — they were rendering at 13px/14px-28px, way oversized. */
  .hero-cta-white{
    font-size:11px !important;
    padding:7px 14px !important;
  }

  /* Any inline label or badge */
  .tag,.mp-tag,.ep-tag,.date,.mp-date,.ep-date,
  .insight-meta,.mp-meta,.ep-top,.footer-legal{font-size:10px}

  /* Horizontal padding cap — no element should have huge horizontal
     padding that eats screen space on phones. */
  section,.container{padding-left:16px;padding-right:16px}

  /* ── COMMUNITY PAGE ─────────────────────────────────────────── */
  /* Commitment grid — the three cards (Mingles / Workshops / Members'
     Sessions) had grid-template-columns:repeat(3,1fr) set inline, which
     kept forcing 3 columns even on 360px phones — cramming the cards to
     ~120px each and squeezing the text. !important is needed to beat
     the inline style. */
  .commitment-grid{grid-template-columns:1fr !important}
  .commitment{padding:28px 20px;gap:12px}
  .commitment-num{font-size:11px}
  .commitment-h{font-size:17px}
  .commitment-p{font-size:13px}

  /* Event rows — titles are set inline by JS at 18px, so !important is
     the only way to reach them from here. Location/date lines follow. */
  .evt-row-grid [style*="font-size:18px"]{font-size:15px !important}
  .evt-row-grid [style*="font-size:14px"]{font-size:12px !important}
  .evt-row-grid [style*="font-size:13.5px"]{font-size:12px !important}

  /* ── BUSINESS / SHARED CTA SECTIONS ─────────────────────────── */
  .cta-band{padding:44px 16px}
  .cta-p{font-size:13px}
  .mp-hero-pull{font-size:13px}
  .ep-load-more{font-size:11px;padding:12px 16px}
}

/* ============================================================ */
/* VERY SMALL PHONES — 340-380px range                          */
/* Many Android phones report ~360px wide, some as low as 340.  */
/* One more shrink step so images, hero carousel, text, and     */
/* buttons all fit cleanly without cramping or cut-off.         */
/* ============================================================ */
@media (max-width:380px){
  /* Text — one step down from the 640 sizes */
  body{font-size:12.5px}
  p,li{font-size:12.5px}
  h1{font-size:22px}
  h2{font-size:17px}
  h3{font-size:15px}

  /* Homepage hero carousel — shorter + tighter so the whole slide fits */
  .hero-fs{height:min(62vh,420px);min-height:320px}
  .hfs-h1{font-size:24px}
  .hfs-sub{font-size:12px;margin-bottom:16px}
  .hfs-content{left:16px;right:16px;bottom:48px}
  .hfs-controls{top:12px;right:12px}

  /* Interior page heroes */
  .page-hero{padding:36px 14px 28px}
  .page-hero h1{font-size:24px}
  .page-hero-sub{font-size:12px}

  /* Section headings */
  .sh2{font-size:24px}
  .cta-h{font-size:19px}
  .ssub{font-size:13px;line-height:1.6}
  .section-h{font-size:16px}

  /* Images — hero/card image heights reduced so cards fit above the fold */
  .card-img{height:150px}
  .insight-card.home-img .ih-img,
  .media-preview-card.has-img .mp-img{height:150px}
  .article-hero{}

  /* Buttons — a touch smaller than the 640 nav-button scale, still tappable */
  button:not(.nav-mobile-toggle):not(.mobile-nav-close),
  .btn-primary,.hfs-btn-ghost,
  a.btn,a.btn-primary,a.hfs-btn-ghost,
  .cta-form button[type=submit],
  .article-subscribe-btn{
    font-size:10px;padding:6px 12px;
  }

  /* Topbar — tightest, keeps US/BVI toggle + subscribe button on one row */
  .topbar{padding:4px 10px}
  .topbar-regions{gap:10px}
  .topbar-regions a{font-size:9px}
  .topbar-subscribe-btn{font-size:8px;padding:4px 10px;letter-spacing:0.04em}

  /* Nav */
  nav.main-nav{padding:0 12px;height:52px}
  .nav-logo img{max-height:22px}

  /* Horizontal padding — even tighter */
  .pad{padding:32px 14px}
  section,.container{padding-left:14px;padding-right:14px}

  /* Article reader */
  .article-body-wrap{padding:28px 16px 56px}
  .article-title{font-size:20px}
}

/* ============================================================ */
/* MOBILE NAV DRAWER                                             */
/* ============================================================ */
.mobile-nav-drawer{
  position:fixed;top:0;right:0;width:min(320px,90vw);height:100%;
  background:var(--ink);z-index:2000;
  transform:translateX(100%);transition:transform .3s ease;
  display:flex;flex-direction:column;
  border-left:1px solid var(--d-rule);
}
.mobile-nav-drawer.open{transform:translateX(0)}
.mobile-nav-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.6);
  z-index:1999;opacity:0;pointer-events:none;
  transition:opacity .3s ease;
}
.mobile-nav-overlay.open{opacity:1;pointer-events:all}
.mobile-nav-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 22px;height:64px;border-bottom:1px solid var(--d-rule);
  flex-shrink:0;
}
.mobile-nav-close{
  background:none;border:none;color:#fff;font-size:18px;cursor:pointer;
  padding:8px;line-height:1;
}
.mobile-nav-links{
  flex:1;overflow-y:auto;padding:12px 0;
}
.mobile-nav-links a{
  display:block;padding:16px 24px;
  font-family:var(--font-display);font-size:13px;font-weight:500;
  letter-spacing:0.1em;text-transform:uppercase;
  color:var(--char-4);cursor:pointer;
  border-bottom:1px solid var(--d-rule);
  transition:color .15s;
}
.mobile-nav-links a:hover{color:#fff}
.mobile-nav-foot{
  padding:24px;border-top:1px solid var(--d-rule);flex-shrink:0;
}


/* ============================================================ */
/* IMAGERY TREATMENTS                                            */
/* ============================================================ */

/* Article card with image strip */
.insight-card.has-img{
  padding:0;gap:0;min-height:340px;
  border-radius:var(--r-xl);overflow:hidden;
}
.insight-card.has-img .card-img{
  width:100%;height:260px;flex-shrink:0;
  position:relative;overflow:hidden;
}
.insight-card.has-img .card-img img {
  width:100%; height:100%; object-fit:cover; object-position:center;
  display:block;
}
.insight-card.has-img .card-img-inner{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  transition:transform .6s ease;
}
.insight-card.has-img:hover .card-img-inner{transform:scale(1.04)}
.insight-card.has-img .card-body{
  padding:28px 28px 24px;
  display:flex;flex-direction:column;gap:14px;flex:1;
}

/* Platform card with image strip */
.product-card.has-img{
  padding:0;min-height:480px;border-radius:var(--r-xl);overflow:hidden;
}
.product-card.has-img .pc-img{
  width:100%;height:200px;flex-shrink:0;
  position:relative;overflow:hidden;
}
.product-card.has-img .pc-img-inner{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  transition:transform .6s ease;
}
.product-card.has-img:hover .pc-img-inner{transform:scale(1.04)}
.product-card.has-img .pc-img-overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,
    rgba(0,0,0,0.72) 0%,
    rgba(0,0,0,0.45) 40%,
    rgba(0,0,0,0.22) 70%,
    rgba(0,0,0,0.10) 100%);
}
.product-card.has-img .pc-body{
  padding:32px 32px 28px;
  display:flex;flex-direction:column;flex:1;
}

/* Asset class hero with image */
.page-hero.has-img{
  position:relative;overflow:hidden;min-height:480px;
  padding:0;
}
.page-hero.has-img .hero-bg{
  position:absolute;inset:0;z-index:0;
  background-color:#15171c;
  background-size:cover;background-position:center;
  animation:heroBgFade 0.4s ease-in both;
}
.page-hero.has-img .hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,
    rgba(0,0,0,0.85) 0%,
    rgba(0,0,0,0.65) 35%,
    rgba(0,0,0,0.35) 65%,
    rgba(0,0,0,0.12) 100%);
}
.page-hero.has-img h1{color:#fff}
.page-hero.has-img h1 .silver{color:var(--silver-lt);font-style:italic}
.page-hero.has-img .page-hero-sub{color:rgba(255,255,255,0.78)}
.page-hero.has-img .breadcrumb{color:rgba(255,255,255,0.5)}
.page-hero.has-img .breadcrumb a{color:rgba(255,255,255,0.5)}
.page-hero.has-img .breadcrumb a:hover{color:#fff}
.page-hero.has-img .breadcrumb .sep{opacity:0.35}
.page-hero.has-img .page-hero-inner{
  position:relative;z-index:2;
  padding:104px 56px 72px;
  max-width:var(--maxw);
}

/* Video thumbnail */
.video-thumb{
  position:relative;border-radius:var(--r-xl);overflow:hidden;
  cursor:pointer;max-width:840px;margin:0 auto;
  aspect-ratio:16/9;
}
.video-thumb-bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  transition:transform .6s ease;
}
.video-thumb:hover .video-thumb-bg{transform:scale(1.03)}
.video-thumb-overlay{
  position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(0,0,0,0.6) 0%,rgba(0,0,0,0.25) 100%);
}
.video-thumb-content{
  position:relative;z-index:2;
  height:100%;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:24px;
  padding:40px;
}
.video-play{
  width:72px;height:72px;border-radius:50%;
  background:rgba(255,255,255,0.15);
  border:2px solid rgba(255,255,255,0.5);
  display:flex;align-items:center;justify-content:center;
  backdrop-filter:blur(8px);
  transition:background .2s,border-color .2s,transform .2s;
}
.video-thumb:hover .video-play{
  background:rgba(255,255,255,0.25);
  border-color:rgba(255,255,255,0.9);
  transform:scale(1.08);
}
.video-play svg{width:28px;height:28px;margin-left:4px}
.video-meta{text-align:center}
.video-label{
  font-family:var(--font-display);font-size:11px;font-weight:600;
  letter-spacing:0.18em;text-transform:uppercase;
  color:rgba(255,255,255,0.6);margin-bottom:10px;
}
.video-title{
  font-family:var(--font-display);font-size:28px;font-weight:700;
  letter-spacing:-0.02em;color:#fff;
}
.video-sub{
  font-size:14px;font-weight:300;color:rgba(255,255,255,0.7);
  max-width:48ch;line-height:1.6;
}


/* ── Hero image fade-in (graceful load) ─────────────────── */
.page-hero.has-img .hero-bg{
  animation:heroBgFade 0.4s ease-in both;
}
@keyframes heroBgFade{
  from{opacity:0}
  to{opacity:1}
}
.hfs-bg{
  animation:heroBgFade 0.5s ease-in both;
}
/* ═══════════════════════════════════════════════════════════════
   CMS — admin.html dashboard, tabs, lists, modal
═══════════════════════════════════════════════════════════════ */
.cms-page { background:var(--paper-1); min-height:100vh; }
.cms-input {
  width:100%; padding:14px 16px; font-family:inherit; font-size:14px;
  background:#fff; border:1px solid var(--rule-2); border-radius:10px;
  color:var(--ink); transition:border-color .15s;
}
.cms-input:focus { outline:none; border-color:var(--ink); }
.cms-submit {
  width:100%; padding:14px 18px; font-family:var(--font-display);
  font-size:12px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase;
  background:var(--ink); color:#fff; border:none; border-radius:999px;
  cursor:pointer; transition:background .15s;
}
.cms-submit:hover { background:#333; }

/* Dashboard frame */
.cms-frame { max-width:1200px; margin:0 auto; padding:48px 32px; }
.cms-frame-head { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:28px; flex-wrap:wrap; }
.cms-frame-head h1 { font-family:var(--font-display); font-size:28px; font-weight:700; letter-spacing:-0.02em; color:var(--ink); }
.cms-frame-actions { display:flex; gap:10px; align-items:center; }
.cms-action-btn {
  padding:10px 18px; font-family:var(--font-display); font-size:11px; font-weight:600;
  letter-spacing:0.12em; text-transform:uppercase; border-radius:999px; cursor:pointer;
  border:1px solid var(--rule-2); background:#fff; color:var(--ink); transition:all .15s;
}
.cms-action-btn:hover { background:var(--paper-2); }
.cms-download-btn { background:var(--ink); color:#fff; border-color:var(--ink); }
.cms-download-btn:hover { background:#333; }

/* Tabs */
.cms-tabs { display:flex; gap:4px; border-bottom:1px solid var(--rule-2); margin-bottom:28px; }
.cms-tab {
  padding:14px 22px; font-family:var(--font-display); font-size:12px; font-weight:600;
  letter-spacing:0.1em; text-transform:uppercase; background:none; border:none;
  color:var(--char-3); cursor:pointer; border-bottom:2px solid transparent;
  margin-bottom:-1px; transition:color .15s;
}
.cms-tab:hover { color:var(--ink); }
.cms-tab.cms-tab-active { color:var(--ink); border-bottom-color:var(--ink); }

/* Section header (above each list) */
.cms-section-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.cms-section-head h3 { font-family:var(--font-display); font-size:18px; font-weight:600; color:var(--ink); }
.cms-new-btn {
  padding:10px 18px; font-family:var(--font-display); font-size:11px; font-weight:600;
  letter-spacing:0.12em; text-transform:uppercase; background:var(--ink); color:#fff;
  border:none; border-radius:999px; cursor:pointer; transition:background .15s;
}
.cms-new-btn:hover { background:#333; }

/* List rows */
.cms-list-row {
  background:#fff; padding:18px 22px; display:flex; align-items:center; gap:18px;
}
.cms-list-title { font-family:var(--font-display); font-size:15px; font-weight:600; color:var(--ink); margin-bottom:3px; }
.cms-list-meta  { font-size:12px; font-weight:500; color:var(--char-3); letter-spacing:0.04em; text-transform:uppercase; }
.cms-list-actions { display:flex; gap:8px; flex-shrink:0; }
.cms-btn-edit, .cms-btn-delete {
  padding:8px 14px; font-family:var(--font-display); font-size:11px; font-weight:600;
  letter-spacing:0.1em; text-transform:uppercase; border-radius:999px; cursor:pointer;
  border:1px solid var(--rule-2); background:#fff; color:var(--ink); transition:all .15s;
}
.cms-btn-edit:hover { background:var(--paper-2); }
.cms-btn-delete { color:#c0392b; border-color:#e8c5c0; }
.cms-btn-delete:hover { background:#fce8e6; }
.cms-empty { padding:48px 24px; text-align:center; color:var(--char-3); font-size:14px; background:#fff; }

/* Modal */
.cms-modal {
  position:fixed; inset:0; background:rgba(0,0,0,0.6); backdrop-filter:blur(8px);
  z-index:500; display:none; align-items:flex-start; justify-content:center;
  padding:60px 20px; overflow-y:auto;
}
.cms-modal[style*="flex"] { display:flex !important; }
.cms-modal-card {
  background:#fff; border-radius:16px; width:100%; max-width:560px;
  padding:36px 32px; position:relative; box-shadow:0 20px 60px rgba(0,0,0,0.2);
}
.cms-modal-card h2 {
  font-family:var(--font-display); font-size:22px; font-weight:700;
  letter-spacing:-0.01em; color:var(--ink); margin-bottom:22px;
}
.cms-modal-close {
  position:absolute; top:16px; right:16px; width:32px; height:32px;
  border:none; background:none; color:var(--char-3); cursor:pointer;
  font-size:18px; border-radius:8px; transition:all .15s;
}
.cms-modal-close:hover { background:var(--paper-2); color:var(--ink); }
.cms-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.cms-field { margin-bottom:18px; }
.cms-field label {
  display:block; font-family:var(--font-display); font-size:11px; font-weight:600;
  letter-spacing:0.1em; text-transform:uppercase; color:var(--char-3); margin-bottom:8px;
}
.cms-field input, .cms-field select, .cms-field textarea {
  width:100%; padding:12px 14px; font-family:inherit; font-size:14px;
  background:#fff; border:1px solid var(--rule-2); border-radius:8px;
  color:var(--ink); transition:border-color .15s;
}
.cms-field input:focus, .cms-field select:focus, .cms-field textarea:focus { outline:none; border-color:var(--ink); }
.cms-field textarea { min-height:90px; resize:vertical; font-family:inherit; }

@media(max-width:640px){
  .cms-row { grid-template-columns:1fr; }
  .cms-modal { padding:30px 16px; }
  .cms-modal-card { padding:28px 22px; }
  .cms-frame { padding:32px 18px; }
  .cms-list-row { flex-direction:column; align-items:stretch; gap:12px; }
}

/* ═══════════════════════════════════════════════════════════════
   ARTICLE READER — article.html
═══════════════════════════════════════════════════════════════ */
.article-reader { background:var(--paper-1); min-height:100vh; }
/* Article hero image — WSJ/Bloomberg layout: heading and brief sit ABOVE the
   image, then the article body continues below it. The image shows in full
   without cropping (object-fit:contain) and is capped at a reasonable height
   so the article content is visible without scrolling. */
.article-hero {
  max-width:760px;
  margin:10px auto 0;
  overflow:hidden;
}
.article-hero img {
  width:100%; height:auto;
  display:block;
}
.article-hero-gradient {
  height:280px;
}
.article-hero-overlay { display:none; }
.article-body-wrap {
  max-width:760px; margin:0 auto; padding:48px 32px 28px;
}
/* The second body-wrap (below the hero image) continues the article content */
.article-body-wrap.article-body-content {
  padding-top:36px; padding-bottom:80px;
}
.article-back {
  display:inline-block; font-family:var(--font-display);
  font-size:11px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--char-3); text-decoration:none;
  transition:color .15s;
}
.article-back:hover { color:var(--ink); }

.article-top-bar {
  display:flex; align-items:center;
  gap:16px; margin-bottom:36px;
}
.article-subscribe-btn { display:none; }
.article-meta {
  display:flex; gap:8px; align-items:center;
  font-family:var(--font-display); font-size:12px; font-weight:600;
  letter-spacing:0.1em; text-transform:uppercase; color:var(--char-3);
  margin-bottom:18px;
}
.article-meta .tag { color:var(--silver-dim); }
.article-meta .dot { color:var(--char-4); }
.article-title {
  font-family:var(--font-display); font-size:45px;
  font-weight:700; letter-spacing:-0.02em; line-height:1.15;
  color:var(--ink); margin-bottom:24px;
}
.article-summary {
  font-size:18px; line-height:1.6; color:var(--char-2);
  font-weight:300; margin-bottom:16px;
}
.article-byline {
  font-family:var(--font-display); font-size:14px; font-weight:500;
  color:var(--char-2); letter-spacing:0.02em;
  padding-bottom:20px; margin-bottom:0;
  border-bottom:1px solid var(--rule-2);
}
.article-photo-credit {
  max-width:760px; margin:4px auto 24px;
  font-family:var(--font-display); font-size:12px; font-weight:400;
  color:var(--char-3); letter-spacing:0.02em;
  text-align:left;
}
.article-content {
  font-size:17px; line-height:1.78; color:var(--ink-soft, var(--ink));
}
.article-content p { margin-bottom:1.4em; }
.article-content h2 {
  font-family:var(--font-display); font-size:24px; font-weight:700;
  letter-spacing:-0.01em; margin:2em 0 0.6em; color:var(--ink);
}
.article-content h3 {
  font-family:var(--font-display); font-size:19px; font-weight:600;
  letter-spacing:-0.01em; margin:1.6em 0 0.5em; color:var(--ink);
}
.article-content a {
  color:var(--ink); text-decoration:underline; text-underline-offset:3px;
  text-decoration-color:var(--rule-2); transition:text-decoration-color .15s;
}
.article-content a:hover { text-decoration-color:var(--ink); }
.article-content strong { font-weight:600; color:var(--ink); }
.article-content em { font-style:italic; }
.article-content blockquote {
  border-left:3px solid var(--ink); padding:8px 0 8px 24px;
  margin:1.8em 0; font-style:italic; color:var(--char-2);
}
.article-content ul, .article-content ol {
  margin:0 0 1.4em 1.5em; padding-left:0;
}
.article-content li { margin-bottom:0.5em; }
.article-content img {
  max-width:100%; height:auto; display:block;
  margin:1.5em auto; border-radius:8px;
}
.article-footer-cta {
  margin-top:64px; padding-top:36px;
  border-top:1px solid var(--rule-2);
  text-align:center;
}
.article-missing {
  max-width:520px; margin:120px auto; padding:0 32px; text-align:center;
}
.article-missing h1 {
  font-family:var(--font-display); font-size:32px; font-weight:700;
  letter-spacing:-0.02em; margin-bottom:14px; color:var(--ink);
}
.article-missing p { color:var(--char-2); margin-bottom:28px; }

/* Note: article-summary, article-content, and article-body-wrap mobile
   sizing is handled by the main 640px block earlier in this file.
   A legacy block that used to live here has been removed because it was
   overriding those values back to a larger size. */

/* Final mobile shrink for article headings — must sit AFTER the base
   .article-title / .article-content h2/h3 definitions above, otherwise
   base rules (equal specificity) win the cascade and override the earlier
   mobile block's smaller sizes. This was the fix for "article headings
   still enlarged on mobile" — the earlier block was being defeated by
   the base declarations coming later in the file. */
@media (max-width:640px){
  .article-title{font-size:22px;line-height:1.25}
  .article-summary{font-size:13px;line-height:1.6;margin-bottom:12px}
  .article-content{font-size:14px;line-height:1.75}
  .article-content h2{font-size:16px;line-height:1.3;margin:1.6em 0 0.5em}
  .article-content h3{font-size:14px;line-height:1.3;margin:1.4em 0 0.4em}
  .article-body-wrap{padding:28px 20px 56px}
}
@media (max-width:380px){
  .article-title{font-size:20px}
  .article-body-wrap{padding:24px 16px 48px}
}

/* ═══════════════════════════════════════════════════════════════
   PAGE TEXT EDITOR — admin.html
═══════════════════════════════════════════════════════════════ */
.pt-page-group {
  background:#fff; border-radius:12px; overflow:hidden;
  border:1px solid var(--rule-2); margin-bottom:12px;
}
.pt-page-label {
  padding:14px 20px; font-family:var(--font-display);
  font-size:12px; font-weight:700; letter-spacing:0.1em;
  text-transform:uppercase; color:var(--ink);
  background:var(--paper-2); border-bottom:1px solid var(--rule-2);
  cursor:pointer;
}
.pt-page-fields {
  padding:20px;
  display:flex; flex-direction:column; gap:18px;
}
.pt-page-fields .cms-field { margin-bottom:0; }
.pt-page-fields .cms-field label {
  display:block; font-family:var(--font-display); font-size:12px;
  font-weight:700; letter-spacing:0.02em; text-transform:none;
  color:var(--ink); margin-bottom:6px;
}
.pt-page-fields textarea { min-height:70px; line-height:1.5; }
.pt-page-fields textarea,
.pt-page-fields input[type="text"] {
  width:100%; padding:10px 12px; font-family:inherit;
  font-size:13px; line-height:1.5;
  background:#fafaf9; border:1px solid var(--rule-2);
  border-radius:8px; color:var(--ink);
  transition:border-color .15s; resize:vertical;
}
.pt-page-fields textarea:focus,
.pt-page-fields input:focus {
  outline:none; border-color:var(--ink); background:#fff;
}

