/* aip-shell.css — generated by shell2.py.
   121 rules common to all 7 pages, in events.html order.
   Edit here, not in the pages. */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{scroll-behavior:smooth}

body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}

a{color:var(--accent);text-decoration:none}

a:hover{color:var(--accent-hover)}

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

.wrap{max-width:1240px;margin:0 auto;padding:0 48px}

.g-nav-item.soon > a{opacity:.5}

.g-nav-item.soon:hover > a{opacity:.7}

.g-nav.solid{background:var(--ink) !important;border-bottom:1px solid var(--ink-deep) !important}

@media(max-width:1280px){
  .g-nav-links > a,.g-nav-links > .g-nav-item > a{padding:0 9px;font-size:12.6px}
  .g-logo{padding-right:10px;margin-right:2px}
  .g-nav-right{gap:7px;padding-left:8px}
}

@media(max-width:1120px){
  .g-nav-links > a,.g-nav-links > .g-nav-item > a{padding:0 6px;font-size:11.5px}
  .g-logo{padding-right:6px;margin-right:0}
  .btn-login{font-size:12.5px;padding:9px 20px}
  .soon-tag{display:none}
}

@media(max-width:1150px){
  .m-panel{right:0;left:auto;max-width:340px;width:86vw}
  .m-toggle:not(:checked) ~ .m-panel{width:0;max-width:0;overflow:hidden;border-left:0}
  .m-toggle:checked ~ .m-panel{width:min(86vw,340px);max-width:340px;overflow-y:auto}
}

@media(max-width:900px){
  .p-title,.mod-title,.pub-head-title,.dir-title,h1,h2{text-align:left}
  .p-eyebrow,.eyebrow{text-align:left}
  .dir-sub,.p-sub,.mod-sub{text-align:left}
}

.g-nav-links > a,.g-nav-links > .g-nav-item > a{position:relative}

.g-nav-links > a::after,.g-nav-links > .g-nav-item > a::after{
  content:'';position:absolute;left:13px;right:13px;bottom:24px;height:3px;
  background:var(--text-hi);transform:scaleX(0);transform-origin:left;
  transition:transform .22s cubic-bezier(.4,0,.2,1);
}

.g-nav-links > a:hover::after,.g-nav-links > .g-nav-item > a:hover::after{transform:scaleX(.73)}

.g-nav-links > a.active::after,.g-nav-links > .g-nav-item > a.active::after{transform:scaleX(1)}

.g-nav-links > a.active,.g-nav-links > .g-nav-item > a.active{font-weight:600;box-shadow:none}

.g-nav-dd a.is-current{font-weight:600;color:var(--text-hi)}

.m-nav{display:none}

@media(max-width:1150px){
  .g-nav .g-nav-links,.g-nav .g-nav-right{display:none}          /* hover dropdowns are desktop-only */
  .m-nav{display:block}
/* Swapped to the drawer at 1150 rather than 900. Eleven items across the bar
   had no comfortable arrangement below about that width, and the right-hand
   side was clipping on a laptop long before the burger appeared. */
}

.m-toggle{position:absolute;opacity:0;pointer-events:none}

.m-burger{
  position:fixed;top:14px;right:14px;z-index:120;
  width:44px;height:44px;                 /* 44px: minimum comfortable tap target */
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;
  background:transparent;border:1px solid var(--line);border-radius:2px;cursor:pointer;
}

.m-burger span{
  display:block;width:20px;height:1px;background:var(--text-hi);
  transition:transform .22s ease,opacity .18s ease;
}

.m-toggle:checked ~ .m-burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}

.m-toggle:checked ~ .m-burger span:nth-child(2){opacity:0}

.m-toggle:checked ~ .m-burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.m-toggle:focus-visible ~ .m-burger{outline:2px solid var(--gold);outline-offset:2px}

.m-scrim{
  position:fixed;inset:0;z-index:110;background:var(--ink-deep);
  opacity:0;visibility:hidden;transition:opacity .24s ease,visibility .24s;
}

.m-toggle:checked ~ .m-scrim{opacity:.6;visibility:visible}

.m-panel{
  position:fixed;top:0;right:0;bottom:0;z-index:115;
  width:min(86vw,340px);
  background:var(--ink);border-left:1px solid var(--line);
  transform:translateX(100%);transition:transform .26s cubic-bezier(.4,0,.2,1),visibility .26s;
  visibility:hidden;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;               /* stops scroll chaining to the page */
  padding:72px 0 32px;
}

.m-toggle:checked ~ .m-panel{transform:translateX(0);visibility:visible}

.m-nav{position:relative;z-index:120}

html,body{overflow-x:hidden;max-width:100%}

.m-panel a,.m-panel summary{
  display:block;padding:15px 22px;
  font-family:var(--sans);font-size:15px;font-weight:500;
  letter-spacing:.02em;color:var(--text-hi);text-decoration:none;
  border-bottom:1px solid var(--line);
}

.m-panel a:active{background:var(--ink-deep)}

.m-panel summary{
  cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;
}

.m-panel summary::-webkit-details-marker{display:none}

.m-panel summary::after{
  content:'';width:7px;height:7px;flex:none;
  border-right:1px solid var(--text-lo);border-bottom:1px solid var(--text-lo);
  transform:rotate(45deg) translateY(-2px);transition:transform .2s ease;
}

.m-panel details[open]>summary::after{transform:rotate(-135deg) translateY(-2px)}

.m-panel details[open]>summary{color:var(--gold)}

.m-sub a{
  padding:13px 22px 13px 38px;
  font-size:14px;font-weight:400;color:var(--text-lo);
  background:var(--ink-deep);
}

.m-sub a .m-note{
  display:block;font-size:11px;letter-spacing:.06em;
  color:var(--text-lo);opacity:.7;margin-top:3px;
}

.m-soon summary{color:var(--text-lo);font-size:13px;letter-spacing:.1em;text-transform:uppercase}

.m-soon .m-sub span{
  display:block;padding:12px 22px 12px 38px;
  font-family:var(--sans);font-size:14px;font-weight:400;color:var(--text-lo);
  background:var(--ink-deep);border-bottom:1px solid var(--line);
  opacity:.55;cursor:default;
}

.m-util{display:flex;gap:10px;padding:22px}

.m-util a{
  flex:1;text-align:center;padding:12px 0;border:1px solid var(--line);
  border-bottom:1px solid var(--line);font-size:13px;letter-spacing:.08em;
  text-transform:uppercase;border-radius:2px;
}

.m-util a.m-sub-cta{background:var(--brand);border-color:var(--brand)}

@media(prefers-reduced-motion:reduce){
  .m-panel,.m-scrim,.m-burger span,.m-panel summary::after{transition:none}
}

.util-bar{background:var(--ink-deep);color:var(--text-lo);font-size:10.5px;letter-spacing:.08em;padding:0 40px;display:flex;align-items:center;height:32px}

.util-bar .util-date{color:var(--text-mid);font-family:'Archivo',monospace;letter-spacing:.06em;font-size:10.5px}

.util-bar .util-right{margin-left:auto;display:flex;gap:20px;align-items:center}

.util-bar a{color:var(--text-lo);transition:color .15s}

.util-bar a:hover{color:var(--text-hi)}

.util-bar .util-sep{color:var(--line)}

.util-bar a.util-btn{
  color:var(--text-hi);
  background:rgba(255,255,255,.04);
  border:1px solid var(--line);
  border-radius:999px;
  padding:3px 12px;
  font-family:'Archivo',monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  line-height:1.4;
  box-shadow:0 1px 4px rgba(0,0,0,.3);
  transform:translateY(0);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s cubic-bezier(.34,1.56,.64,1), background .2s ease, color .2s ease, border-color .2s ease;
  -webkit-tap-highlight-color:transparent;
}

.util-bar a.util-btn:hover{
  background:var(--accent);
  border-color:var(--accent);
  color:var(--text-hi);
  transform:translateY(-1.5px);
  /* was rgba(184,140,72,.4) — a gold glow under a red button, left over from
     an earlier palette. Now derived from --accent var(--accent). */
  box-shadow:0 4px 10px rgba(139,26,26,.4);
}

.util-bar a.util-btn:active{
  transform:translateY(0) scale(.95);
  box-shadow:0 1px 3px rgba(0,0,0,.3);
  transition:transform .08s ease-out, box-shadow .08s ease-out;
}

@media(prefers-reduced-motion:reduce){
  .util-bar a.util-btn{transition:background .15s ease, color .15s ease, border-color .15s ease}
  .util-bar a.util-btn:hover,
  .util-bar a.util-btn:active{transform:none}
}

.g-nav{background:var(--ink);color:var(--text-mid);font-size:15px;letter-spacing:.04em;padding:0 28px;display:flex;align-items:center;height:100px;position:sticky;top:0;z-index:100;border-bottom:1px solid var(--ink-deep);white-space:nowrap}

.g-logo{display:flex;align-items:center;padding:0 22px 0 0;margin-right:10px;flex-shrink:0;height:100%;cursor:pointer}

.g-logo svg{height:58px;width:auto;display:block}

.g-nav-links{display:flex;align-items:center;height:100%;gap:2px}

.g-nav-links > a,.g-nav-links > .g-nav-item > a{color:var(--text-mid);padding:0 13px;display:flex;align-items:center;height:100%;transition:color .15s;font-weight:400;position:relative;cursor:pointer;white-space:nowrap;font-size:13.2px}

.g-nav-links > a:hover,.g-nav-links > .g-nav-item > a:hover{color:var(--text-hi)}

.g-nav-links a.active{color:var(--text-hi)}

.g-nav-links > a.active::after,.g-nav-links > .g-nav-item.active > a::after{content:'';position:absolute;bottom:0;left:10px;right:10px;height:2px;background:var(--accent)}

.g-nav-item{position:relative;height:100%;display:flex;align-items:center}

.g-nav-item > a .chev{width:8px;height:8px;margin-left:5px;opacity:.7;transition:transform .2s}

.g-nav-item:hover > a .chev{transform:rotate(180deg)}

.g-nav-dd{position:absolute;top:100%;left:0;min-width:240px;background:var(--surface);border:1px solid var(--surface-line);border-top:2px solid var(--accent);padding:10px 0;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .18s ease, transform .18s ease, visibility .18s;z-index:200;box-shadow:0 18px 40px -12px rgba(0,0,0,.6)}

.g-nav-item:hover .g-nav-dd{opacity:1;visibility:visible;transform:translateY(0)}

.g-nav-dd a{display:block;padding:9px 18px;font-size:12.5px;color:var(--text-mid);letter-spacing:.02em;font-weight:500;transition:background .12s, color .12s;white-space:nowrap;cursor:pointer}

.g-nav-dd a:hover{background:var(--ink-deep);color:var(--text-hi)}

.g-nav-dd a.dd-soon{opacity:.45;cursor:default}
.g-nav-dd a.dd-soon:hover{background:none;color:var(--text-mid)}


.g-nav-dd a.active{color:var(--text-hi);background:var(--ink-deep)}

/* Limited Partners groups the two allocator estates. A label, not a link:
   with two children a landing page reads thin, and the estates keep their own
   URLs. Defined here rather than left to inherit, because dd-sp, dd-fo and
   dd-swf are referenced in the markup and defined nowhere, which is how a nav
   ends up styled by accident. */
/* Service Providers and Limited Partners are peers: two sections of one
   directory. Same size, same weight, same padding. The only difference is that
   one has a single destination and can therefore be a link, and the other has
   two and cannot. Limited Partners takes cursor:default and no hover state, so
   nothing invites a click that would go nowhere. */
.g-nav-dd a.dd-sp,
.g-nav-dd a.dd-jur,
.g-nav-dd .dd-group{font-size:12.5px;letter-spacing:.02em;font-weight:600;
  color:var(--text-hi);padding:9px 18px;display:block;white-space:nowrap}

.g-nav-dd .dd-group{cursor:default;border-top:1px solid var(--surface-line);margin-top:8px;padding-top:14px}

/* The two estates sit under Limited Partners. Indented rather than hidden
   behind a flyout: with two children a submenu adds a hover and a click to the
   busiest path on the site and cannot be reached by keyboard at all. Revisit
   when there are eight or ten LP categories and the extra step earns itself. */
.g-nav-dd a.dd-fo,
.g-nav-dd a.dd-swf{padding-left:32px}

/* The twelve jurisdictions sit under Jurisdictions in the Intelligence menu.
   Two columns rather than the indent above, because the note on that rule says
   to revisit at eight or ten children and this is twelve: a plain list makes
   the menu seventeen rows and roughly 580px, the tallest on the site. A flyout
   is still ruled out for the same keyboard reason. A grid keeps every child
   inside one hover and in document order, and halves the height.
   min-width sits on the grid, not the dropdown, so only this menu widens:
   "British Virgin Islands" in two columns does not fit the 240px default. */
/* Column flow, six rows. Row flow filled left to right, so column one read
   Luxembourg, London, Jersey and column two read Ireland, Cayman, Bermuda:
   alphabetical across the pair but meaningless down either one. */
.g-nav-dd .dd-jgrid{display:grid;grid-auto-flow:column;grid-template-rows:repeat(6,auto);
  grid-template-columns:1fr 1fr;min-width:400px}
/* The twelve take the dd-sub face rather than the link face. At 12.5px in
   --text-mid they read as peers of Jurisdictions itself; small, uppercase and
   letter spaced they read as its index, which is what they are. Same treatment
   the estates get under Limited Partners. */
.g-nav-dd .dd-jgrid a{padding:6px 18px 6px 32px;font-family:'Archivo',monospace;
  font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;
  color:var(--text-lo)}
.g-nav-dd .dd-jgrid a:hover{color:var(--gold-hi,#c9a227);background:var(--ink-deep)}
/* Aligned to .m-sub a, which is padding:13px 22px 13px 38px on --ink-deep.
   Left at 0 with no background it sat against the panel edge and showed the
   wrong colour behind it. */
/* Directory panel only, scoped to .m-sub-dir so the About dropdown keeps its
   sentence-case links. Service Providers and Limited Partners are peers: same
   face, size and caps. Family Offices and Sovereign Wealth Funds sit a step
   down under Limited Partners. */
.m-sub-dir a,
.m-sub-dir .m-group{
  font-family:'Archivo',monospace;font-size:13px;letter-spacing:.1em;
  text-transform:uppercase;font-weight:600;color:var(--text-lo);
  padding:13px 22px 13px 38px;background:var(--ink-deep);
}

.m-sub-dir .m-group{cursor:default}

.m-sub-dir .m-group ~ a{
  font-family:var(--sans);font-size:12.5px;letter-spacing:normal;
  text-transform:none;font-weight:400;
  padding:11px 22px 11px 54px;
}

/* The two allocator estates nest under the heading. 16px of extra indent is
   enough to read as a child at this size without looking like a stray margin. */
.m-sub a.dd-fo,
.m-sub a.dd-swf,
.m-sub a.dd-j,
.m-sub .m-group ~ a{padding-left:54px}

/* Drawer hierarchy. The twelve sat at the same size and colour as Jurisdictions
   itself, so the panel read as thirteen siblings. The parent takes the bright
   text and the heavier weight, the children drop a size and a tone, which is
   the hierarchy the desktop menu already carries. */
.m-sub a.dd-jur{font-family:var(--sans);font-size:11px;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--gold-hi,#c9a227);
  padding-top:20px;padding-bottom:9px}
.m-sub a.dd-jur:hover{color:var(--text-hi)}
.m-sub a.dd-j{font-size:14px;color:var(--text-lo);padding-top:11px;padding-bottom:11px}
.m-sub a.dd-j:hover{color:var(--gold-hi,#c9a227)}
.foot-group{font-family:'Archivo',monospace;font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--text-lo);font-weight:600;margin:10px 0 2px}

.g-nav-dd a .dd-sub{display:block;font-family:'Archivo',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-lo);font-weight:400;margin-top:2px}

.g-nav-right{margin-left:auto;display:flex;align-items:center;gap:10px;flex-shrink:0;padding-left:12px}

.icon-btn{background:transparent;border:none;padding:8px;cursor:pointer;color:var(--text-mid);display:flex;align-items:center;justify-content:center;border-radius:2px;transition:background .15s, color .15s}

.icon-btn:hover{background:var(--surface-line);color:var(--text-hi)}

.icon-btn svg{width:18px;height:18px}

.btn-login{background:var(--accent);border:1px solid var(--accent);color:#fff;font-family:'Archivo',sans-serif;font-size:9.5px;font-weight:400;letter-spacing:.16em;padding:8px 44px 8px 46px;cursor:pointer;transition:all .15s;border-radius:2px;white-space:nowrap;text-transform:uppercase}

.btn-login:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}

.btn-subscribe{background:var(--accent);border:none;color:var(--text-hi);font-family:'Archivo',sans-serif;font-size:11px;font-weight:600;letter-spacing:.08em;padding:7px 18px;cursor:pointer;transition:background .15s;border-radius:2px;text-transform:uppercase}

.btn-subscribe:hover{background:var(--accent-hover)}

footer{background:var(--ink-deep);color:var(--text-lo);margin-top:0;padding:44px 40px 28px;border-top:4px solid var(--accent)}

.foot-inner{max-width:1240px;margin:0 auto}

.foot-grid{display:grid;grid-template-columns:1.2fr repeat(4,1fr);gap:36px;padding-bottom:32px;border-bottom:1px solid var(--surface-line)}

.foot-brand svg{height:32px;width:auto;margin-bottom:16px;display:block}

.foot-brand p{font-family:'Archivo',sans-serif;font-size:12.5px;line-height:1.7;color:var(--text-lo);margin:0;max-width:260px}

.foot-col-title{font-family:'Archivo',monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--paper-deep);font-weight:600;margin-bottom:14px}

.foot-col a{display:block;font-size:12.5px;line-height:1.3;color:var(--text-lo);padding:6px 0;transition:color .15s;text-decoration:none;cursor:pointer}

.foot-col a:hover{color:var(--text-hi)}

.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:22px;font-family:'Archivo',monospace;font-size:10px;letter-spacing:.1em;color:var(--text-lo);text-transform:uppercase;flex-wrap:wrap;gap:12px}

.foot-bottom-right{display:flex;gap:20px}

.foot-bottom a{color:var(--text-lo);transition:color .15s}

.foot-bottom a:hover{color:var(--text-hi)}

footer{padding-top:30px !important;padding-bottom:18px !important}

.foot-inner{padding-top:0 !important}

.foot-grid{gap:27px !important;padding-bottom:22px !important}

.foot-brand svg{height:24px !important;margin-bottom:12px !important}

.foot-brand p{font-size:11px !important;line-height:1.6 !important;max-width:230px !important}

.foot-col-title{margin-bottom:10px !important}

.foot-col a{font-size:11px !important;line-height:1.3 !important;padding:5px 0 !important}

.foot-bottom{padding-top:14px !important;font-size:9px !important}

.signup{background:var(--paper-warm);border-top:1px solid var(--rule-dark);padding:82px 0}

.signup-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:56px;align-items:center}

.signup-title{font-family:var(--serif);font-weight:500;font-size:clamp(30px,3.6vw,46px);line-height:1.02;letter-spacing:-.015em;color:var(--ink);margin:16px 0 14px}

.signup-sub{font-size:15.5px;line-height:1.65;color:var(--ink-mid);max-width:46ch}

.signup-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}

.signup-input{font-family:var(--sans);font-size:14px;padding:13px 15px;border:1px solid var(--rule-dark);background:var(--paper-bright);color:var(--ink);outline:none;transition:border-color .15s;width:100%}

.signup-input::placeholder{color:var(--ink-faint)}

.signup-input:focus{border-color:var(--accent)}

.signup-input.full{grid-column:1/-1}

.signup-btn:hover{background:var(--accent-hover)}

.signup-note{grid-column:1/-1;font-family:var(--sans);font-size:11.5px;letter-spacing:.04em;color:var(--ink-faint)}

.signup-opts{grid-column:1/-1;display:flex;gap:26px;flex-wrap:wrap;margin:4px 0 2px}

.signup-check{display:flex;align-items:center;gap:9px;font-family:var(--sans);font-size:13px;color:var(--ink-mid);cursor:pointer}

.signup-check input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;margin:0}

@media(max-width:900px){.signup-grid{grid-template-columns:1fr;gap:26px}}

@media(max-width:900px){
  h1[style*="font-size"],h2[style*="font-size"]{font-size:38px !important;line-height:1.08 !important}
  .dhero-title,.results-title,.p-title,.pub-head-title,.title{font-size:38px;line-height:1.08}
}


/* publication reader modal */
.pr-wrap{position:fixed;inset:0;z-index:900;display:flex;align-items:center;justify-content:center}
.pr-wrap[hidden]{display:none;pointer-events:none}
.pr-back{position:absolute;inset:0;background:rgba(0,0,0,.78)}
.pr-box{position:relative;width:min(94vw,1200px);height:min(88vh,820px);display:flex;flex-direction:column;background:#fff}
.pr-bar{display:flex;align-items:center;gap:1rem;padding:.6rem .9rem;border-bottom:1px solid rgba(0,0,0,.12)}
.pr-bar span{flex:1;font-weight:600;font-size:.95rem}
.pr-bar a{font-size:.85rem;white-space:nowrap}
.pr-bar button{background:none;border:0;font-size:1rem;cursor:pointer;line-height:1}
#pr-frame{flex:1;width:100%;border:0}
@media(max-width:900px){.pr-box{width:100vw;height:100vh}.pr-bar a{display:none}}

/* bookmark button — shared across all three directories (aip-bookmarks.js) */
.prov-bm{background:none;border:none;padding:4px;cursor:pointer;color:var(--ink-faint);display:inline-flex;align-items:center;transition:color .15s,transform .12s;line-height:0}
.prov-bm svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.prov-bm:hover{color:var(--accent);transform:translateY(-1px)}
.prov-bm.on{color:var(--gold)}
.prov-bm.on svg{fill:var(--gold);stroke:var(--gold)}
.prov-bm.on:hover{color:var(--accent)}
.prov-bm.on:hover svg{fill:var(--accent);stroke:var(--accent)}

/* bookmarks band — one list across all three directories */
.bm-card{position:relative}
.bm-origin{font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;margin-bottom:12px}
.bm-origin a{color:var(--ink-faint);text-decoration:none;border-bottom:1px solid transparent;transition:color .15s,border-color .15s}
.bm-origin a:hover{color:var(--accent);border-bottom-color:var(--accent)}

/* bookmarks band — compact tiles across all three directories */
.bm-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:22px}
.bm-tile{background:var(--paper);padding:13px 15px 14px;display:flex;flex-direction:column;gap:6px;min-height:96px;transition:background .15s}
.bm-tile:hover{background:var(--paper-bright)}
.bm-tile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.bm-tag{font-family:var(--sans);font-size:9px;font-weight:700;letter-spacing:.13em;color:var(--ink-faint);border:1px solid var(--rule-dark);border-radius:2px;padding:1px 6px;text-decoration:none;line-height:1.6;transition:color .15s,border-color .15s}
.bm-tag:hover{color:var(--accent);border-color:var(--accent)}
.bm-tile-fo .bm-tag{color:var(--accent);border-color:var(--accent)}
.bm-tile .prov-bm{padding:0;margin-top:1px}
.bm-tile .prov-bm svg{width:14px;height:14px}
.bm-tile-name{font-family:var(--serif);font-weight:600;font-size:14.5px;line-height:1.25;color:var(--ink);letter-spacing:-.005em}
.bm-tile-sub{font-family:var(--sans);font-size:10.5px;color:var(--ink-faint);letter-spacing:.02em;margin-top:auto}
@media(max-width:600px){.bm-tiles{grid-template-columns:1fr 1fr}.bm-tile{min-height:84px;padding:12px}.bm-tile-name{font-size:13.5px}}

/* bookmarks band — tiles for firms, rows for events */
.bm-body{margin-top:22px}
.bm-subhead{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin:34px 0 14px}
.bm-events{margin-top:6px}
.bm-ev-row{border-bottom:1px solid var(--rule)}
.bm-ev-row .ev-title a{color:var(--ink);text-decoration:none}
.bm-ev-row .ev-title a:hover{color:var(--accent)}
.bm-tile-name{display:block;text-decoration:none}
a.bm-tile-name:hover{color:var(--accent)}

/* event rows — values copied from events.html so a bookmarked event looks
   identical wherever it is shown */
.bm-ev-row{display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:center;padding:14px 0;border-bottom:1px solid var(--rule)}
.bm-ev-row .ev-date{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;background:var(--ink);color:var(--text-hi);width:48px;height:48px;flex:none}
.bm-ev-row:hover .ev-date{background:var(--accent)}
.bm-ev-row .ev-d{font-family:var(--serif);font-size:17px;font-weight:600;line-height:1}
.bm-ev-row .ev-m{font-family:var(--sans);font-size:8px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-hi);margin-top:2px}
.bm-ev-row:hover .ev-m{color:var(--text-hi)}
.bm-ev-row .ev-title{font-family:var(--serif);font-size:19px;line-height:1.2}
.bm-ev-row .ev-title a{color:var(--ink);text-decoration:none}
.bm-ev-row .ev-title a:hover{color:var(--accent)}
.bm-ev-row .ev-meta{font-family:var(--sans);font-size:12px;color:var(--ink-faint);margin-top:5px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.bm-ev-row .ev-meta .sep{opacity:.5}
.bm-ev-row .ev-right{display:flex;align-items:center;gap:12px}
@media(max-width:600px){.bm-ev-row{grid-template-columns:auto 1fr;gap:14px}.bm-ev-row .ev-d{font-size:22px}.bm-ev-row .ev-right{grid-column:2;justify-content:flex-start}}

/* ---- saved records page ------------------------------------------------- */
.bm-page{padding:0 0 56px;background:var(--paper)}
.bm-page-band{background:var(--ink);padding:32px 0 28px;position:fixed;top:100px;left:0;right:0;z-index:90}
.bm-page{padding-top:236px !important}
.bm-page-band .wrap{max-width:1240px;margin:0 auto;padding:0 48px}
.bm-page-head h1{font-family:var(--serif);font-weight:600;font-size:40px;line-height:1.05;color:var(--text-hi);margin:0}
.bm-page-head h1 em{font-style:italic;font-weight:500;color:var(--gold-pale)}
.bm-page-head p{font-family:var(--sans);font-size:15px;line-height:1.5;color:var(--text-mid);margin:12px 0 0;max-width:60ch}
.bm-actions{display:flex;align-items:center;gap:14px;margin-top:26px;flex-wrap:wrap}
.bm-print-btn{font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.02em;padding:11px 20px;border:1px solid var(--paper);background:var(--paper);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:9px;transition:background .15s,color .15s}
.bm-print-btn:hover{background:var(--accent);border-color:var(--accent);color:var(--text-hi)}
.bm-print-btn svg{width:15px;height:15px}
.bm-toggle{display:inline-flex;padding:3px;border:1px solid var(--surface-line);background:var(--surface);cursor:pointer}
.bm-toggle-opt{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:7px 14px;color:var(--text-lo);transition:background .15s,color .15s}
.bm-toggle-opt.on{background:var(--paper);color:var(--ink)}
.bm-report-sec{margin-top:52px;padding-top:34px;border-top:2px solid var(--ink)}
.bm-page .bm-print-head,.bm-page .bm-print-foot{display:none !important}

@media print{
  /* --- suppressed -------------------------------------------------------- */
  .g-nav,.g-footer,footer,.signup,.contact,.dhero,.hero,.bm-tiles,.bm-events,
  .bm-hover,.searchband,.mapband,.bm-page-band,.bm-print-hint,
  .g-burger,.g-nav-burger,.burger,.mob-toggle,[class*="burger"]{display:none !important}
  .bm-page,.bm-page .wrap{display:block !important;padding:0 !important;margin:0 !important;max-width:none !important}
  .bm-report-sec{margin:0;padding:0;border:none}
  body{background:#fff}
  a{text-decoration:none;color:inherit}

  /* --- masthead: borders and type only, no fills ------------------------- */
  /* Chrome drops background colours unless the reader enables them. Rules and
     borders always print, so the banner is built from them. */
  .bm-page .bm-print-head{display:block !important;margin:0 0 4.5mm;padding-top:0}
  .bm-print-banner{display:flex;align-items:flex-end;justify-content:space-between;gap:12mm;padding:3mm 0 2.2mm;border-bottom:1pt solid #be1e2d}
  .bm-print-logo{width:66mm;max-width:100%;height:auto;display:block;flex:none}
  .bm-print-ident{text-align:right}
  .bm-print-kicker{font-family:var(--sans);font-size:5.5pt;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:#be1e2d;margin:0}
  .bm-print-ident h1{font-family:var(--serif);font-weight:600;font-size:14pt;line-height:1;color:#112a40;margin:1mm 0 0;letter-spacing:-.01em}
  .bm-print-meta{font-family:var(--sans);font-size:5.5pt;color:#8a8175;margin:1.2mm 0 0;letter-spacing:.14em;text-transform:uppercase}

  /* --- report: factsheet density ----------------------------------------- */
  .bm-rep-head{display:none}
  .bm-rep-group{margin-top:4mm;break-inside:auto}
  .bm-rep-group:first-of-type{margin-top:0}
  .bm-rep-title{font-family:var(--sans);font-weight:700;font-size:8pt;letter-spacing:.2em;text-transform:uppercase;color:#112a40;padding:0 0 1.5mm;margin:0 0 2mm;border-bottom:1pt solid #112a40;display:flex;align-items:baseline;gap:2.5mm;break-after:avoid;page-break-after:avoid}
  .bm-rep-n{font-family:var(--sans);font-size:6.5pt;font-weight:700;letter-spacing:.1em;color:#9e9589}

  /* two columns for firms; events stay full width for the date line */
  .bm-rep-group{column-count:2;column-gap:8mm}
  .bm-rep-group.bm-rep-events{column-count:1}
  .bm-rep-title{column-span:all}

  .bm-rep-item{padding:1.8mm 0;border-bottom:0.4pt solid #e2ddd4;break-inside:avoid;page-break-inside:avoid}
  .bm-rep-item h3{font-family:var(--serif);font-weight:600;font-size:9.5pt;line-height:1.15;color:#141210;margin:0}
  .bm-rep-meta{font-family:var(--sans);font-size:6pt;color:#8a8175;letter-spacing:.1em;margin-top:0.8mm;text-transform:uppercase}
  .bm-rep-item p{font-family:var(--sans);font-size:8pt;line-height:1.4;color:#3d3830;margin:1.5mm 0 0;max-width:none}
  .bm-rep-extra{font-family:var(--sans);font-size:6.5pt;color:#6b6358;margin-top:1mm;letter-spacing:.02em}
  .bm-rep-web{font-family:var(--sans);font-size:6.5pt;color:#8a8175;margin-top:0.8mm}
  .bm-rep-web a{color:#8a8175}
  .bm-rep-web a::after{content:attr(data-plain)}
  .bm-rep-web a{font-size:0}
  .bm-rep-web a::after{font-size:6.5pt}
  .bm-rep-missing h3{color:#9e9589}
  .bm-rep-missing p{font-style:italic}

  /* --- disclaimer and footer --------------------------------------------- */
  .bm-disclaimer{margin-top:7mm;padding:4mm 0 0;border:none;border-top:1pt solid #112a40;background:none;break-inside:avoid;page-break-inside:avoid;column-span:all}
  .bm-disclaimer h2{font-family:var(--sans);font-size:6.5pt;font-weight:700;letter-spacing:.22em;text-transform:uppercase;margin:0 0 2.5mm;color:#112a40}
  .bm-disclaimer p{font-family:var(--sans);font-size:6.5pt;line-height:1.5;color:#4a453d;margin:0 0 1.8mm;max-width:none}
  .bm-disclaimer p:last-child{margin-bottom:0}
  .bm-cal-wrap{break-inside:avoid;page-break-inside:avoid;column-span:all;display:block}
  .bm-cal{display:flex;flex-wrap:wrap;gap:9mm;margin-top:4mm;padding-top:3mm;border-top:0.4pt solid #c9c2b6;column-span:all;break-inside:avoid;page-break-inside:avoid}
  .bm-cal-month{break-inside:avoid;page-break-inside:avoid}
  .bm-cal-month{min-width:30mm}
  .bm-cal-name{font-family:var(--sans);font-size:6pt;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#112a40;margin-bottom:1.6mm;display:flex;justify-content:space-between}
  .bm-cal-name span{font-weight:400;color:#9e9589}
  .bm-cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
  .bm-cal-dow{font-family:var(--sans);font-size:4.5pt;font-weight:700;color:#9e9589;text-align:center;padding-bottom:0.9mm}
  .bm-cal-day{font-family:var(--sans);font-size:5.5pt;color:#9e9589;text-align:center;padding:0.4mm 0 0.6mm;border-bottom:0.7pt solid transparent}
  .bm-cal-day.on{font-weight:700}
  .bm-cal-key{display:flex;flex-direction:column;gap:1mm;margin-top:3mm;column-span:all;break-inside:avoid;page-break-inside:avoid}
  .bm-cal-key-item{font-family:var(--sans);font-size:6pt;color:#4a453d;display:flex;align-items:baseline;gap:2mm}
  .bm-cal-key-item i{width:4mm;height:0;flex:none;border-bottom:0.8pt solid;position:relative;top:-1mm}
  .bm-cal-key-item b{font-weight:700;color:#112a40;white-space:nowrap}
  .bm-page .bm-print-foot{display:flex !important;align-items:center;justify-content:space-between;gap:8mm;margin-top:5mm;padding-top:2mm;border-top:0.6pt solid #112a40}
  .bm-foot-logo{width:48mm;height:auto}
  .bm-print-foot span{font-family:var(--sans);font-size:6pt;color:#9e9589;letter-spacing:.14em;text-transform:uppercase}
}
.bm-disclaimer{margin-top:44px;padding:26px 28px;border:1px solid var(--rule-dark);background:var(--paper-warm)}
.bm-disclaimer h2{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin:0 0 16px;color:var(--ink)}
.bm-disclaimer p{font-family:var(--sans);font-size:12px;line-height:1.65;color:var(--ink-light);margin:0 0 11px;max-width:78ch}
.bm-disclaimer p:last-child{margin-bottom:0}

/* ---- bookmark hover preview -------------------------------------------- */
.bm-hover{position:absolute;z-index:1200;max-width:340px;background:var(--paper);border:1px solid var(--rule-dark);box-shadow:0 12px 34px rgba(7,9,14,.14);padding:16px 18px;opacity:0;visibility:hidden;transition:opacity .14s ease;pointer-events:none}
.bm-hover.on{opacity:1;visibility:visible}
.bm-hover-tag{font-family:var(--sans);font-size:9px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:7px}
.bm-hover-name{font-family:var(--serif);font-weight:600;font-size:17px;line-height:1.2;color:var(--ink)}
.bm-hover-meta{font-family:var(--sans);font-size:11px;color:var(--ink-faint);margin-top:6px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.bm-hover-meta .sep{opacity:.5}
.bm-hover-desc{font-size:13px;line-height:1.55;color:var(--ink-light);margin:10px 0 0}
.bm-hover-extra{font-family:var(--sans);font-size:11px;color:var(--ink-mid);margin-top:9px;padding-top:9px;border-top:1px solid var(--rule)}
.bm-hover-web{font-family:var(--sans);font-size:11px;color:var(--accent);margin-top:7px}
@media(hover:none){.bm-hover{display:none}}

/* ---- bookmarks report --------------------------------------------------- */
.bm-rep-head{font-family:var(--sans);font-size:12px;color:var(--ink-faint);letter-spacing:.04em;padding-bottom:14px;border-bottom:2px solid var(--ink);margin-bottom:8px}
.bm-rep-empty{font-size:14px;color:var(--ink-soft);max-width:60ch}
.bm-rep-group{margin-top:34px;break-inside:auto}
.bm-rep-title{font-family:var(--serif);font-weight:600;font-size:24px;color:var(--ink);padding-bottom:10px;border-bottom:1px solid var(--rule);display:flex;align-items:baseline;gap:10px}
.bm-rep-n{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--ink-faint)}
.bm-rep-item{padding:16px 0;border-bottom:1px solid var(--rule);break-inside:avoid}
.bm-rep-item h3{font-family:var(--serif);font-weight:600;font-size:17px;line-height:1.25;color:var(--ink);margin:0}
.bm-rep-item p{font-size:13.5px;line-height:1.6;color:var(--ink-light);margin:8px 0 0;max-width:76ch}
.bm-rep-meta{font-family:var(--sans);font-size:11.5px;color:var(--ink-faint);letter-spacing:.02em;margin-top:5px}
.bm-rep-extra{font-family:var(--sans);font-size:11.5px;color:var(--ink-mid);margin-top:8px}
.bm-rep-web{font-family:var(--sans);font-size:11.5px;color:var(--accent);margin-top:6px}
.bm-rep-missing h3{color:var(--ink-faint)}
.bm-rep-missing p{font-style:italic}

@media print{
  .g-nav,.g-footer,footer,.signup,.contact,.dhero,.hero,.bm-tiles,.bm-events,
  .bm-hover,.searchband,.mapband,.bm-page-band{display:none !important}
  .bm-page,.bm-page .wrap{display:block !important;padding:0 !important;margin:0 !important;max-width:none !important}
  .bm-report-sec{padding:0 !important}
  body{background:#fff}
  .bm-rep-item{page-break-inside:avoid}
  .bm-rep-group{page-break-after:auto}
  a{text-decoration:none;color:inherit}
}

.bm-print-hint{font-family:var(--sans);font-size:11px;color:var(--text-lo);margin:14px 0 0;letter-spacing:.02em}
.bm-print-hint strong{color:var(--text-mid);font-weight:600}

/* ---- saved-events calendar ---------------------------------------------- */
.bm-cal{display:flex;flex-wrap:wrap;gap:34px;margin-top:26px;padding-top:22px;border-top:1px solid var(--rule)}
.bm-cal-month{min-width:158px}
.bm-cal-name{font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);margin-bottom:11px;display:flex;justify-content:space-between;align-items:baseline}
.bm-cal-name span{font-weight:400;color:var(--ink-faint);letter-spacing:.1em}
.bm-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px 0}
.bm-cal-dow{font-family:var(--sans);font-size:8px;font-weight:600;color:var(--ink-faint);text-align:center;padding-bottom:6px}
.bm-cal-day{font-family:var(--sans);font-size:10.5px;color:var(--ink-faint);text-align:center;padding:3px 0 4px;border-bottom:2px solid transparent}
.bm-cal-day.on{font-weight:700}
.bm-cal-key{display:flex;flex-direction:column;gap:6px;margin-top:20px}
.bm-cal-key-item{font-family:var(--sans);font-size:11px;color:var(--ink-light);display:flex;align-items:baseline;gap:9px;line-height:1.4}
.bm-cal-key-item i{width:14px;height:2px;flex:none;border-bottom:2px solid;position:relative;top:-3px}
.bm-cal-key-item b{font-weight:600;color:var(--ink-mid);white-space:nowrap}

  /* continuation head on pages after the first: the full masthead repeated
     would waste a third of every page, but an unheaded page is orphaned. */
  .bm-cont{display:none}
  @media print{
    .bm-cont{display:none;align-items:center;justify-content:space-between;
      gap:8mm;padding:0 0 2.5mm;margin:0 0 6mm;border-bottom:1.2pt solid #112a40}
    .bm-cont img{width:26mm;height:auto}
    .bm-cont span{font-family:var(--sans);font-size:6.5pt;font-weight:700;letter-spacing:.2em;
      text-transform:uppercase;color:#112a40}
  }


/* ---- print cascade correction ------------------------------------------- AIP:PRINT-CASCADE-FIX
   The @media print block at ~442 is followed in this file by plain rules for
   the same selectors (.bm-rep-* at ~535, .bm-cal-* at ~558). Same specificity,
   later wins, and plain rules still apply on paper — so those print sizes were
   never reaching the page. This block restates them last so they do.

   If the earlier print block is ever edited, edit here too, or move that block
   below the plain rules and delete this one. ------------------------------- */
@media print{
  .bm-rep-title{font-family:var(--sans);font-weight:700;font-size:8pt;letter-spacing:.2em;text-transform:uppercase;color:#112a40;padding:0 0 1.5mm;margin:0 0 2mm;border-bottom:1pt solid #112a40;break-after:avoid;page-break-after:avoid}
  .bm-rep-n{font-family:var(--sans);font-size:6.5pt;font-weight:700;letter-spacing:.1em;color:#9e9589}
  .bm-rep-group{margin-top:4mm}
  .bm-rep-group:first-of-type{margin-top:0}
  .bm-rep-item{padding:1.8mm 0;border-bottom:0.4pt solid #e2ddd4}
  .bm-rep-item h3{font-family:var(--serif);font-weight:600;font-size:9.5pt;line-height:1.15;color:#141210;margin:0}
  .bm-rep-item p{font-family:var(--sans);font-size:8pt;line-height:1.4;color:#3d3830;margin:1.5mm 0 0;max-width:none}
  .bm-rep-meta{font-family:var(--sans);font-size:6pt;color:#8a8175;letter-spacing:.1em;margin-top:0.8mm;text-transform:uppercase}
  .bm-rep-extra{font-family:var(--sans);font-size:6.5pt;color:#6b6358;margin-top:1mm;letter-spacing:.02em}
  .bm-rep-web{font-family:var(--sans);font-size:6.5pt;color:#8a8175;margin-top:0.8mm}

  .bm-cal{gap:9mm;margin-top:4mm;padding-top:3mm;border-top:0.4pt solid #c9c2b6}
  .bm-cal-month{min-width:30mm}
  .bm-cal-name{font-size:6pt;margin-bottom:1.6mm;color:#112a40}
  .bm-cal-grid{gap:0}
  .bm-cal-dow{font-size:4.5pt;color:#9e9589;padding-bottom:0.9mm}
  .bm-cal-day{font-size:5.5pt;color:#9e9589;padding:0.4mm 0 0.6mm;border-bottom:0.7pt solid transparent}
  .bm-cal-key{gap:1mm;margin-top:3mm}
  .bm-cal-key-item{font-size:6pt;color:#4a453d;gap:2mm}
  .bm-cal-key-item i{width:4mm;height:0;border-bottom:0.8pt solid;top:-1mm}
  .bm-cal-key-item b{font-weight:700;color:#112a40}

  .bm-disclaimer{margin-top:5mm;padding:3mm 4mm;border:0.4pt solid #c9c2b6;break-inside:avoid;page-break-inside:avoid}
  .bm-disclaimer h2{font-size:6.5pt;letter-spacing:.16em;margin:0 0 2mm}
  .bm-disclaimer p{font-size:6.5pt;line-height:1.45;margin:0 0 1.5mm;max-width:none}
}

/* ---- Footer: sections that do not exist yet -------------------------------
   Not links. They have no destination and never had one, so they are spans,
   which keeps them out of the tab order and stops a screen reader announcing
   a link that goes nowhere. The marker is permanent rather than revealed on
   click: a reader should not have to interact with something styled as
   inert to find out why it is inert.

   Sizes here mirror .foot-col a as it actually renders. That rule is followed
   further down this file by an !important override to 11px which is NOT inside
   a media query, so 11px is the live footer size at every width. Matching the
   computed value rather than the authored one keeps the two kinds of entry on
   the same baseline. */
.foot-col .foot-soon{display:block;font-size:11px;line-height:1.3;padding:5px 0;color:var(--text-lo);opacity:.38;cursor:default;user-select:none}
.foot-soon-tag{margin-left:8px;font-family:'Archivo',monospace;font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);white-space:nowrap}
/* ══ Tier 1 announcement band ══════════════════════════════════════════════
   Appended to aip-shell.css. The placeholder reserves height before the
   script runs, so filling it causes no layout shift. Two heights because the
   copy wraps to three lines on a narrow viewport. */

#aip-band {
  min-height: 46px;
}

@media (max-width: 640px) {
  #aip-band {
    min-height: 86px;
  }
}

.aip-band {
  background: #f4f2ec;
  border-bottom: 1px solid #e2ded3;
}

.aip-band-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 11px 24px;
  display: flex;
  align-items: baseline;
  gap: 20px;
}

.aip-band-text {
  margin: 0;
  flex: 1;
  font-size: 14px;
  line-height: 1.5;
  color: #33322e;
}

.aip-band-link {
  white-space: nowrap;
  color: #1a1a2e;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.aip-band-link:hover {
  text-decoration-thickness: 2px;
}

.aip-band-dismiss {
  flex: none;
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  font-size: 13px;
  color: #6b6a63;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.aip-band-dismiss:hover {
  color: #33322e;
}

@media (max-width: 640px) {
  .aip-band-inner {
    padding: 11px 18px;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
}

@media print {
  #aip-band {
    display: none;
  }
}
/* ══ Footer legal notice ═══════════════════════════════════════════════════
   Appended to aip-shell.css. Sits above .foot-bottom. Set small and tight
   because it is long: the reader who wants it will read it, and the reader
   who does not should not have it shouting. Full measure, no max-width. */

.foot-legal {
  margin-top: 34px;
  padding-top: 22px;
  border-top: 1px solid var(--line, rgba(255, 255, 255, 0.14));
}

.foot-legal p {
  margin: 0;
  font-family: var(--sans);
  font-size: 10.5px;
  line-height: 1.42;
  letter-spacing: -0.002em;
  color: var(--text-lo);
  text-wrap: pretty;
}

.foot-legal a {
  color: var(--text-mid, inherit);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.foot-legal a:hover {
  color: var(--text-hi, inherit);
}

/* Room under the privacy row, so the page does not end on a hard edge. */
.foot-bottom {
  padding-bottom: 46px;
}

@media (max-width: 700px) {
  .foot-legal {
    margin-top: 26px;
    padding-top: 18px;
  }
  .foot-legal p {
    font-size: 10px;
    line-height: 1.48;
    letter-spacing: 0;
  }
  .foot-bottom {
    padding-bottom: 34px;
  }
}
/* ══ Footer: coming-soon block ═════════════════════════════════════════════
   Sizes mirror .foot-col a as it actually renders after the override at the
   media query, which is 11px with 5px padding, not the 12.5px declared first.
   The rule separates what exists from what does not, so a reader is not
   scanning a list where half the entries cannot be clicked. */

.foot-later {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--text-lo);
}

.foot-later-title {
  font-family: 'Archivo', monospace;
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-lo);
  margin-bottom: 8px;
}

.foot-col .foot-later span {
  display: block;
  font-size: 11px;
  line-height: 1.3;
  padding: 5px 0;
  color: var(--text-lo);
  opacity: .55;
  cursor: default;
  user-select: none;
}

/* ══ Header: auth stack ════════════════════════════════════════════════════
   Log in with subscribe beneath it, replacing a second button. Two buttons
   plus two icons was the widest the right-hand side could be, and it was the
   first thing to clip. */

.g-nav-auth{display:flex;flex-direction:column;align-items:stretch;gap:3px;line-height:1}
.lnk-subscribe{display:block;text-align:center;font-family:var(--sans);font-size:8.5px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--text-mid);text-decoration:none;
  transition:color .15s;white-space:nowrap;padding-left:2px}
.lnk-subscribe:hover{color:var(--text-hi)}
@media(max-width:1120px){.lnk-subscribe{font-size:9px;letter-spacing:.08em}}
.g-nav-auth{gap:5px}

/* ══ Mobile drawer: auth ═══════════════════════════════════════════════════
   Matches the desktop bar. Log in is the accent action, sign up sits beneath
   it as a link rather than a second competing button. */

.m-panel .m-util{display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:22px 0 8px}
.m-panel .m-login{display:block;text-align:center;background:var(--accent);border:1px solid var(--accent);
  color:#fff;font-family:'Archivo',sans-serif;font-size:12px;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;padding:14px 18px;border-radius:2px;text-decoration:none}
.m-panel .m-login:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.m-panel .m-signup{display:block;text-align:center;font-family:var(--sans);font-size:11px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--text-mid);text-decoration:none;padding:2px 0}
.m-panel .m-signup:hover{color:var(--text-hi)}

/* ══ Events: search results ════════════════════════════════════════════════
   Sits below the refine bar so the answer appears where the question was
   asked. Hidden until a filter is set. */

.ev-results{margin-top:34px;padding-top:8px}
.ev-results[hidden]{display:none}
.ev-results .evgroup-head{border-bottom:2px solid var(--ink);padding-bottom:10px}

/* ── Enquiry fold ──────────────────────────────────────────────────────────
   The collapsed wrapper around an enquiry form, on directory, family offices
   and sovereign wealth funds. Held here because those three pages had three
   answers: directory.html carried this rule inline, and the other two had no
   rule at all and fell back to inline styles on the element.

   The form inside is built for a LIGHT ground. .c-check-consent is var(--ink)
   and the inputs are dark on paper, so the white panel is not decoration, it
   is what makes the form readable. An earlier pass made this transparent to
   match the dark .cpanel around it and the consent labels vanished.

   Closed, the summary sits flush with the dark panel: a line to press, not a
   white bar with nothing on it. Open, the paper arrives with the form. */
.copen{border:none;background:transparent}
/* One label, one place, both states. Sentence case in paper white: it is an
   invitation rather than a section heading, and the only thing that should
   change on open is that the form arrives underneath it. */
.copen>summary{list-style:none;cursor:pointer;padding:15px 0;display:flex;align-items:center;
  justify-content:space-between;gap:12px;font-family:var(--sans);font-size:14px;font-weight:400;
  letter-spacing:.01em;color:var(--text-hi);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);transition:color .15s}
.copen>summary:hover{color:var(--gold)}
.copen>summary:focus-visible{outline:1px solid var(--gold);outline-offset:2px}
.copen>summary::-webkit-details-marker{display:none}
.copen[open]{background:transparent;border:none}
.copen[open]>summary{border-bottom:none}
.copen[open] .cform{background:var(--paper-bright);border:1px solid var(--rule)}
.copen[open]>summary .cdisc-chev{transform:rotate(180deg)}
.copen .cform{padding:18px 16px}
.copen .cdisc-chev{font-size:18px;line-height:1;color:inherit;transition:transform .15s;display:inline-block}

/* ── Consent checkboxes ────────────────────────────────────────────────────
   A checkbox with its label beside it, in sentence case. Without these the
   label falls through to .field label, which is uppercase, tracked and stacked
   ABOVE its control, so a consent reads as a section heading with a stray box
   over it. That is what the two buy-side forms looked like: they carried the
   class and none of the rules.

   Sits on the light form ground, so the text is ink rather than paper. */
.cform .c-check{display:flex;align-items:flex-start;gap:8px;font-family:var(--sans);font-size:12.5px;font-weight:400;letter-spacing:.01em;text-transform:none;color:var(--ink-mid);cursor:pointer;line-height:1.3}
.cform .c-check input[type=checkbox]{width:15px;height:15px;flex:none;margin:1px 0 0;padding:0;accent-color:var(--gold);cursor:pointer}
.cform .c-consents{display:flex;flex-direction:column;gap:10px;margin-top:2px}
.cform .c-check span{flex:1}
.cform .c-check-soon span{color:var(--ink-faint)}
.cform .c-check-consent{font-size:13px;color:var(--ink);align-items:flex-start;line-height:1.45}
.cform .c-check-consent input[type=checkbox]{margin-top:2px}

/* ── Fold inputs ───────────────────────────────────────────────────────────
   The form inside .copen sits on paper, so its controls are ink on light. The
   page-level .field rules were written for the dark .cpanel and are dark: the
   directory overrides them for inputs but not for selects, which is why its
   dropdown is a black box, and the buy-side pages override nothing at all, so
   every field was a black box on a white card.

   Scoped to .copen so a form on a dark ground elsewhere is untouched. */
.copen .cform .field input,
.copen .cform .field textarea,
.copen .cform .field select{background:var(--paper-bright);border:1px solid var(--rule);color:var(--ink)}
.copen .cform .field input::placeholder,
.copen .cform .field textarea::placeholder{color:var(--ink-faint)}
.copen .cform .field input:focus,
.copen .cform .field textarea:focus,
.copen .cform .field select:focus{border-color:var(--brand)}
.copen .cform .field label{color:var(--ink-faint)}
.copen .cform .cform-note{color:var(--ink-light)}
.copen .cform .cform-hint{color:var(--ink-faint)}

/* ── Fold notes ────────────────────────────────────────────────────────────
   The small print under a field. Only directory.html had this rule, so on the
   buy-side forms every note fell through to the page default and set at body
   size, which made an aside look like a paragraph. */
.copen .cform .cform-note{font-family:var(--sans);font-size:11px;line-height:1.5;letter-spacing:.01em;text-transform:none;color:var(--ink-light);margin:0;max-width:64ch}

/* ── Form on paper ─────────────────────────────────────────────────────────
   The contact page sets its form on a light section rather than in the dark
   .cpanel the directory pages use, so it needs the same light controls the
   fold gets. Written as its own class rather than widening the .copen rules,
   because this form is deliberately not folded and pretending otherwise in a
   selector would mislead whoever reads it next. */
.cform-paper .field input,
.cform-paper .field textarea,
.cform-paper .field select{font-family:var(--sans);font-size:14px;padding:12px 14px;background:var(--paper-bright);border:1px solid var(--rule);color:var(--ink);outline:none;transition:border-color .15s;width:100%;resize:vertical}
.cform-paper .field input::placeholder,
.cform-paper .field textarea::placeholder{color:var(--ink-faint)}
.cform-paper .field input:focus,
.cform-paper .field textarea:focus,
.cform-paper .field select:focus{border-color:var(--brand)}
.cform-paper .field label{color:var(--ink-faint)}
.cform-paper .cform-note{font-family:var(--sans);font-size:11px;line-height:1.5;letter-spacing:.01em;text-transform:none;color:var(--ink-light);margin:0;max-width:64ch}
.cform-paper .cform-hint{color:var(--ink-faint)}
.cform-paper .cform-err{grid-column:1/-1;display:none;font-family:var(--sans);font-size:12.5px;color:var(--brand);margin-top:4px}
.cform-paper .cform-err.show{display:block}

/* AIP:NAV-CURRENT */
/* Marks the current page in the sticky nav. Driven by data-page on <body>.
   Reuses the .active and .is-current declarations already in this file. */
body[data-page="home"] #nav-home,
body[data-page="events"] #nav-events{color:var(--text-hi);font-weight:600}
body[data-page="home"] #nav-home::after,
body[data-page="events"] #nav-events::after{content:'';position:absolute;bottom:28px;left:12px;right:12px;height:3px;background:var(--accent);transform:none}

body[data-page="jurisdictions"] #nav-intel > a,
body[data-page="career-pathways"] #nav-jobs > a,
body[data-page="service-providers"] #nav-directory > a,
body[data-page="family-offices"] #nav-directory > a,
body[data-page="sovereign-wealth-funds"] #nav-directory > a{color:var(--text-hi);font-weight:600}
body[data-page="jurisdictions"] #nav-intel > a::after,
body[data-page="career-pathways"] #nav-jobs > a::after,
body[data-page="service-providers"] #nav-directory > a::after,
body[data-page="family-offices"] #nav-directory > a::after,
body[data-page="sovereign-wealth-funds"] #nav-directory > a::after{content:'';position:absolute;bottom:28px;left:12px;right:12px;height:3px;background:var(--accent);transform:none}

body[data-page="jurisdictions"] .g-nav-dd a.dd-jur,
body[data-page="career-pathways"] .g-nav-dd a.dd-careers,
body[data-page="service-providers"] .g-nav-dd a.dd-sp,
body[data-page="family-offices"] .g-nav-dd a.dd-fo,
body[data-page="sovereign-wealth-funds"] .g-nav-dd a.dd-swf{font-weight:600;color:var(--text-hi)}

/* AIP:AUTH-PENDING-TIER-1 */
/* Log in is hidden on both surfaces. The desktop control is a bare button with
   no handler and #login matches nothing, so it indented on press and did
   nothing. Restore by deleting this block, not by editing the header, which
   exists in seventeen identical copies.
   Subscribe takes the prominence Log in vacates in the drawer, so the panel
   keeps one clear action. */
.btn-login{display:none}
.m-panel .m-login{display:none}
.m-panel .m-signup{background:var(--accent);border:1px solid var(--accent);
  color:#fff;font-family:'Archivo',sans-serif;font-size:12px;font-weight:500;
  letter-spacing:.16em;padding:14px 18px;border-radius:2px}
.m-panel .m-signup:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}
