/* ==========================================================================
   Wealth Intelligence Design System
   v1.1 - April 2026
   Single source of truth for all public pages.
   Authority through type, spacing and restraint. Colour is emphasis, not the norm.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,500;8..60,600;8..60,700&display=swap');

/* --- Tokens ---------------------------------------------------------------*/
:root {
  /* Brand */
  --navy:        #0a0f1a;
  --navy-2:      #141b2d;
  --navy-3:      #1e2a3f;
  --blue:        #2563eb;
  --blue-2:      #3b82f6;
  --blue-3:      #1d4ed8;
  --orange:      #d97706;
  --orange-2:    #f59e0b;
  --purple:      #7c3aed;
  --teal:        #0f766e;
  --teal-2:      #2a9d8f;
  --teal-3:      #93c5fd;
  --accent-on-dark: #93c5fd;
  --accent-on-light: #1d4ed8;
  /* Signature emphasis. The secondary brand colour is INSTITUTIONAL GREEN.
     RESTRAINT FIRST. Green appears on signature value moments only (a key
     statistic, the page's defining italic accent word, an ornament rule or
     the hero eyebrow). Never on body copy.
     --green          deep emerald, AA on white (4.7:1). For big numerals on light.
     --green-2        slightly lighter emerald, hover/secondary numerals on light.
     --green-on-dark  vibrant emerald, AAA on navy. For italic accent or numeral
                      on a dark hero, the dark-hero eyebrow, ornament rules.
     --green-tint     near-paper green wash for premium card backgrounds.
     The deprecated amber tokens remain only so that any unswept legacy rule
     keeps rendering. New work must use --green / --green-on-dark. */
  --green:         #047857;
  --green-2:       #059669;
  --green-on-dark: #34d399;
  --green-tint:    #ecfdf5;
  --amber:         #047857;
  --amber-2:       #059669;
  --amber-on-dark: #34d399;

  /* Neutrals */
  --white:       #ffffff;
  --paper:       #fafafa;
  --paper-2:     #f4f4f5;
  --line:        #e5e7eb;
  --line-2:      #d4d4d8;
  --ink-3:       #71717a;
  --ink-2:       #52525b;
  --ink:         #18181b;

  /* Semantic */
  --bg:          var(--white);
  --bg-alt:      var(--paper);
  --text:        var(--navy);
  --text-mute:   var(--ink-2);
  --text-dim:    var(--ink-3);

  /* Type. Source Serif 4 is the editorial/display face (used by BlackRock and
     other serious financial publishers). Inter is the workhorse sans. */
  --font-sans:   'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
  --font-serif:  'Source Serif 4', 'Source Serif Pro', 'Georgia', 'Times New Roman', serif;

  /* Layout */
  --container:        1200px;
  --container-narrow: 880px;
  --container-prose:  720px;
  --gutter:           28px;

  /* Radius */
  --r-xs:        3px;
  --r-sm:        6px;
  --r:           10px;
  --r-lg:        16px;
  --r-pill:      999px;

  /* Shadow */
  --sh-sm:       0 1px 2px rgba(15,23,42,.04);
  --sh:          0 4px 14px rgba(15,23,42,.07);
  --sh-lg:       0 14px 40px rgba(15,23,42,.12);

  /* Motion */
  --t:           180ms cubic-bezier(.4,0,.2,1);
  --t-slow:      400ms cubic-bezier(.4,0,.2,1);
}

/* --- Reset / Base ---------------------------------------------------------*/
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.65;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
img, svg, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; background: none; border: none; color: inherit; }
input, textarea, select { font: inherit; color: inherit; }
ul, ol { list-style: none; }

/* --- Typography -----------------------------------------------------------*/
/* NOTE: do NOT set color here. Let h1/h2/h3/p inherit from their region (body, .hero, .wi-hero, etc.).
   Setting color on bare h1 beats inheritance from a parent like .hero{color:white}. */
h1, h2, h3, h4 { font-family: var(--font-serif); font-weight: 600; }
h1 { font-size: clamp(28px, 3.4vw, 38px); line-height: 1.12; letter-spacing: -.7px; }
h2 { font-size: clamp(24px, 2.8vw, 32px); line-height: 1.2; letter-spacing: -.4px; }
h3 { font-size: clamp(18px, 1.6vw, 21px); line-height: 1.3; letter-spacing: -.2px; }
h4 { font-family: var(--font-sans); font-size: 16px; line-height: 1.3; letter-spacing: -.1px; }
p  { line-height: 1.7; }
em { font-style: italic; }

.h-display { font-size: clamp(38px, 5.4vw, 60px); line-height: 1.04; letter-spacing: -1.4px; font-family: var(--font-serif); font-weight: 600; color: var(--navy); }
.lede { font-size: 18px; line-height: 1.65; color: var(--text-mute); max-width: 640px; }

.eyebrow {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--blue-3);
  margin-bottom: 14px;
}
/* Eyebrow variants - guaranteed AA contrast on each background.
   Brand accent = blue throughout. Light bg uses blue-3, dark bg uses light-blue. */
.eyebrow--on-light { color: var(--accent-on-light); }
.eyebrow--on-dark  { color: var(--accent-on-dark); }
.eyebrow--amber    { color: var(--orange-2); }
.eyebrow--ink      { color: var(--ink-2); }

/* --- Layout primitives ----------------------------------------------------*/
.container        { max-width: var(--container);        margin: 0 auto; padding: 0 var(--gutter); }
.container-narrow { max-width: var(--container-narrow); margin: 0 auto; padding: 0 var(--gutter); }
.container-prose  { max-width: var(--container-prose);  margin: 0 auto; padding: 0 var(--gutter); }

.section          { padding: 96px 0; }
.section--sm      { padding: 64px 0; }
.section--lg      { padding: 120px 0; }
.section--alt     { background: var(--paper); }
.section--paper   { background: var(--paper-2); }
.section--dark    { background: var(--navy); color: var(--white); position: relative; }
.section--dark::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 70% 50% at 80% 10%, rgba(37,99,235,.16), transparent 60%);
}
.section--dark > * { position: relative; z-index: 1; }
.section--dark p  { color: rgba(255,255,255,.78); }
.section--dark h1, .section--dark h2, .section--dark h3, .section--dark h4 { color: var(--white); }

.section-head        { max-width: 760px; margin: 0 auto 56px; text-align: center; }
.section-head .lede  { margin: 0 auto; }
.section-head h2     { margin-bottom: 16px; }

@media (max-width: 768px) {
  .section { padding: 64px 0; }
  .section--lg { padding: 80px 0; }
  .section-head { margin-bottom: 40px; }
}

/* --- Grid utilities -------------------------------------------------------*/
.grid    { display: grid; gap: 24px; }
.grid-2  { grid-template-columns: repeat(2, 1fr); }
.grid-3  { grid-template-columns: repeat(3, 1fr); }
.grid-4  { grid-template-columns: repeat(4, 1fr); }
.grid-gap-lg { gap: 32px; }
@media (max-width: 1024px) { .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; } }

/* --- Buttons --------------------------------------------------------------*/
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 14.5px;
  line-height: 1;
  padding: 13px 22px;
  border-radius: var(--r-sm);
  border: 1px solid transparent;
  white-space: nowrap;
  cursor: pointer;
  transition: all var(--t);
}
.btn svg { flex-shrink: 0; }
.btn--primary { background: var(--blue);  color: var(--white); }
.btn--primary:hover { background: var(--blue-3); transform: translateY(-1px); box-shadow: 0 8px 20px rgba(37,99,235,.25); }
.btn--dark    { background: var(--navy);  color: var(--white); }
.btn--dark:hover { background: var(--navy-2); }
.btn--ghost   { background: transparent;  color: var(--navy); border-color: var(--line-2); }
.btn--ghost:hover { border-color: var(--navy); background: var(--paper); }
.btn--ghost-light { background: transparent; color: var(--white); border-color: rgba(255,255,255,.28); }
.btn--ghost-light:hover { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.55); }
.btn--sm { font-size: 13px; padding: 9px 16px; }
.btn--lg { font-size: 15.5px; padding: 16px 28px; }

/* --- Navigation -----------------------------------------------------------*/
.wi-nav {
  position: sticky; top: 0; z-index: 90;
  background: rgba(255,255,255,.94);
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid var(--line);
}
.wi-nav__inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 14px var(--gutter);
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.wi-logo {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-serif);
  font-weight: 700; font-size: 17px; letter-spacing: -.3px;
  color: var(--navy);
  line-height: 1;
}
.wi-logo__mark {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px;
  flex-shrink: 0;
}
.wi-logo__mark svg { width: 100%; height: 100%; display: block; }
.wi-logo__wordmark { display: inline-flex; flex-direction: column; gap: 1px; }
.wi-logo__wordmark-main { font-family: var(--font-serif); font-weight: 700; font-size: 16px; letter-spacing: -.3px; color: var(--navy); line-height: 1.05; }
.wi-logo__wordmark-sub { font-family: var(--font-sans); font-weight: 600; font-size: 8.5px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--ink-3); line-height: 1; }
.wi-nav__links { display: flex; align-items: center; gap: 8px; }
.wi-nav__link {
  color: var(--ink-2);
  font-size: 13.5px;
  font-weight: 500;
  padding: 8px 12px;
  border-radius: var(--r-sm);
  transition: all var(--t);
}
.wi-nav__link:hover, .wi-nav__link.is-active { color: var(--navy); background: var(--paper-2); }

.wi-nav__dd { position: relative; }
.wi-nav__dd-toggle {
  display: inline-flex; align-items: center; gap: 4px;
  color: var(--ink-2); font-size: 13.5px; font-weight: 500;
  padding: 8px 12px; border-radius: var(--r-sm);
  transition: all var(--t);
}
.wi-nav__dd-toggle:hover, .wi-nav__dd-toggle.is-active { color: var(--navy); background: var(--paper-2); }
.wi-nav__dd-menu {
  position: absolute; top: calc(100% + 8px); left: 0;
  min-width: 220px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 6px; box-shadow: var(--sh-lg);
  opacity: 0; visibility: hidden; transform: translateY(4px);
  transition: all var(--t);
}
.wi-nav__dd:hover .wi-nav__dd-menu,
.wi-nav__dd:focus-within .wi-nav__dd-menu,
.wi-nav__dd.is-open .wi-nav__dd-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.wi-nav__dd-menu a {
  display: block; padding: 10px 14px; border-radius: var(--r-xs);
  color: var(--ink-2); font-size: 13.5px; font-weight: 500;
  transition: all var(--t);
}
.wi-nav__dd-menu a:hover, .wi-nav__dd-menu a.is-active { background: var(--paper); color: var(--navy); font-weight: 600; }

.wi-nav__cta-group { display: flex; align-items: center; gap: 8px; margin-left: 8px; }
.wi-nav__btn-secondary {
  border: 1px solid var(--line-2); color: var(--navy);
  padding: 8px 14px; border-radius: var(--r-sm);
  font-weight: 600; font-size: 13px;
  transition: all var(--t);
}
.wi-nav__btn-secondary:hover { border-color: var(--navy); }
.wi-nav__btn-primary {
  background: var(--navy); color: var(--white);
  padding: 9px 16px; border-radius: var(--r-sm);
  font-weight: 600; font-size: 13px;
  transition: all var(--t);
}
.wi-nav__btn-primary:hover { background: var(--navy-2); }

.wi-nav__hamburger {
  display: none;
  width: 40px; height: 40px;
  align-items: center; justify-content: center;
  border-radius: var(--r-sm);
  color: var(--navy);
}
.wi-nav__hamburger:hover { background: var(--paper); }

/* Mobile slide-out */
.wi-mob-overlay {
  position: fixed; inset: 0; z-index: 99;
  background: rgba(10,15,26,.55);
  opacity: 0; pointer-events: none;
  transition: opacity var(--t);
}
.wi-mob-overlay.is-open { opacity: 1; pointer-events: auto; }
.wi-mob-nav {
  position: fixed; top: 0; right: 0; height: 100%;
  width: min(340px, 90vw);
  background: var(--white);
  z-index: 100;
  transform: translateX(100%);
  transition: transform var(--t-slow);
  padding: 20px 22px;
  overflow-y: auto;
}
.wi-mob-nav.is-open { transform: translateX(0); }
.wi-mob-nav__head {
  display: flex; align-items: center; justify-content: space-between;
  padding-bottom: 18px; margin-bottom: 14px;
  border-bottom: 1px solid var(--line);
}
.wi-mob-nav__close {
  width: 36px; height: 36px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--r-sm);
  color: var(--ink-2);
}
.wi-mob-nav__close:hover { background: var(--paper); color: var(--navy); }
.wi-mob-nav a {
  display: block; padding: 13px 4px;
  color: var(--ink-2); font-size: 15px; font-weight: 500;
  border-bottom: 1px solid var(--paper-2);
}
.wi-mob-nav a:hover, .wi-mob-nav a.is-active { color: var(--navy); }
.wi-mob-nav__divider { height: 1px; background: var(--line); margin: 14px 0; }
.wi-mob-nav__divider-label {
  font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--text-mute); font-weight: 700;
  padding: 14px 4px 6px; margin-top: 4px; border-top: 1px solid var(--line);
}
.wi-mob-nav__divider-label:first-of-type { border-top: none; padding-top: 8px; margin-top: 0; }
.wi-mob-nav__btn-primary {
  display: block !important;
  background: var(--navy); color: var(--white) !important;
  text-align: center; border-radius: var(--r-sm);
  padding: 13px 16px !important;
  font-weight: 600 !important; font-size: 14px !important;
  border-bottom: none !important;
  margin-top: 8px;
}
.wi-mob-nav__btn-secondary {
  display: block !important;
  border: 1px solid var(--line-2);
  text-align: center; border-radius: var(--r-sm);
  padding: 12px 16px !important;
  font-weight: 600 !important; font-size: 14px !important;
  color: var(--navy) !important;
  margin-top: 8px;
}

@media (max-width: 960px) {
  .wi-nav__links, .wi-nav__cta-group { display: none; }
  .wi-nav__hamburger { display: inline-flex; }
}

/* --- Page Hero ------------------------------------------------------------*/
.wi-hero {
  background: var(--navy); color: var(--white);
  padding: 96px 0 110px;
  position: relative; overflow: hidden;
  background-image: url('https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?w=1800&q=80&auto=format&fit=crop');
  background-size: cover; background-position: center;
  background-repeat: no-repeat;
}
.wi-hero::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(10,15,26,0.88) 0%, rgba(10,15,26,0.94) 100%),
    radial-gradient(ellipse 70% 60% at 75% 15%, rgba(37,99,235,.20), transparent 60%);
}
.wi-hero::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 50% 40% at 15% 90%, rgba(29,78,216,.12), transparent 60%);
}
.wi-hero__inner { position: relative; z-index: 1; max-width: 920px; margin: 0 auto; padding: 0 var(--gutter); text-align: center; }
.wi-hero h1 {
  color: var(--white); margin-bottom: 20px;
  font-size: clamp(30px, 4vw, 44px); line-height: 1.1; letter-spacing: -.9px;
}
.wi-hero h1 em { color: var(--white); font-style: italic; font-weight: 400; }
.wi-hero .lede { color: rgba(255,255,255,.78); font-size: 16.5px; line-height: 1.6; max-width: 660px; margin: 0 auto; }

.wi-hero--light {
  background: var(--paper); color: var(--navy);
  border-bottom: 1px solid var(--line);
}
.wi-hero--light::before, .wi-hero--light::after { display: none; }
.wi-hero--light h1 { color: var(--navy); }
.wi-hero--light h1 em { color: var(--navy); font-style: italic; font-weight: 400; }
.wi-hero--light .lede { color: var(--text-mute); }

@media (max-width: 768px) {
  .wi-hero { padding: 64px 0 72px; }
}

/* --- Cards ----------------------------------------------------------------*/
.card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 28px;
  transition: all var(--t);
}
.card--hover:hover {
  transform: translateY(-3px);
  box-shadow: var(--sh-lg);
  border-color: var(--line-2);
}
.card--alt { background: var(--paper); }
.card--lg { padding: 36px; }
.card h3 { margin-bottom: 12px; }
.card p  { font-size: 14.5px; line-height: 1.7; }

.card__icon {
  width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--paper); border: 1px solid var(--line);
  border-radius: var(--r-sm);
  color: var(--blue);
  margin-bottom: 18px;
}

/* --- Forms ----------------------------------------------------------------*/
.field { margin-bottom: 18px; }
.field label {
  display: block; font-size: 12px; font-weight: 600;
  color: var(--navy); margin-bottom: 8px; letter-spacing: .2px;
  text-transform: uppercase;
}
.field input, .field textarea, .field select {
  width: 100%;
  background: var(--white);
  border: 1px solid var(--line-2);
  border-radius: var(--r-sm);
  padding: 12px 14px;
  font-size: 14.5px; color: var(--navy);
  transition: all var(--t);
}
.field input:focus, .field textarea:focus, .field select:focus {
  outline: none;
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
.field textarea { min-height: 130px; resize: vertical; }
.field--inline { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 640px) { .field--inline { grid-template-columns: 1fr; } }

/* --- Prose (long form content) -------------------------------------------*/
.prose { font-size: 16.5px; line-height: 1.78; color: var(--ink-2); }
.prose h2 { margin: 2.4em 0 .6em; font-size: clamp(24px, 2.6vw, 30px); color: var(--navy); }
.prose h3 { margin: 2em 0 .5em;  font-size: clamp(19px, 2vw, 22px);  color: var(--navy); }
.prose h2:first-child, .prose h3:first-child { margin-top: 0; }
.prose p { margin-bottom: 1.2em; }
.prose ul, .prose ol { padding-left: 1.4em; margin-bottom: 1.4em; }
.prose ul li { list-style: disc; margin-bottom: .5em; }
.prose ol li { list-style: decimal; margin-bottom: .5em; }
.prose a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.prose a:hover { color: var(--blue-3); }
.prose strong { color: var(--navy); font-weight: 700; }
.prose blockquote {
  margin: 1.8em 0;
  padding: 18px 24px;
  border-left: 3px solid var(--blue);
  background: var(--paper);
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 17.5px; color: var(--navy);
}
.prose code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  background: var(--paper-2); padding: 2px 6px;
  border-radius: var(--r-xs); font-size: .9em;
}
.prose hr { border: none; height: 1px; background: var(--line); margin: 2em 0; }

/* --- Footer ---------------------------------------------------------------*/
.wi-footer {
  background: var(--navy); color: rgba(255,255,255,.78);
  padding: 72px 0 28px;
}
.wi-footer__top {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  gap: 40px;
}
.wi-footer__brand-row {
  display: inline-flex; align-items: center; gap: 10px;
  color: var(--white); font-weight: 700; font-size: 16px;
  margin-bottom: 12px;
}
.wi-footer__brand-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px;
  background: var(--white); color: var(--navy);
  border-radius: 6px;
  font-size: 11px; font-weight: 700;
}
.wi-footer__desc {
  font-size: 13px; line-height: 1.65;
  color: rgba(255,255,255,.72);
  max-width: 320px;
  margin-bottom: 16px;
}
.wi-footer__tagline {
  font-size: 11.5px; color: rgba(255,255,255,.7);
  letter-spacing: .3px;
}
.wi-footer__col h4 {
  font-family: var(--font-sans);
  color: var(--white);
  font-size: 11.5px; font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  margin-bottom: 18px;
}
.wi-footer__col a {
  display: block;
  color: rgba(255,255,255,.78);
  font-size: 13.5px;
  padding: 5px 0;
  transition: color var(--t);
}
.wi-footer__col a:hover { color: var(--white); }
.wi-footer__bottom {
  max-width: var(--container);
  margin: 56px auto 0;
  padding: 26px var(--gutter) 0;
  border-top: 1px solid rgba(255,255,255,.14);
  font-size: 12px; line-height: 1.7;
  color: rgba(255,255,255,.72);
}
.wi-footer__bottom a { color: rgba(255,255,255,.85); }
.wi-footer__bottom a:hover { color: var(--white); }
@media (max-width: 1024px) {
  .wi-footer__top { grid-template-columns: 1fr 1fr 1fr; gap: 36px 24px; }
  .wi-footer__brand-col { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .wi-footer__top { grid-template-columns: 1fr 1fr; }
  .wi-footer__brand-col { grid-column: 1 / -1; }
}

/* --- Stats Strip ----------------------------------------------------------*/
.wi-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  padding: 36px 0 0;
  margin-top: 44px;
  border-top: 1px solid rgba(255,255,255,.12);
}
.wi-stat__num {
  font-family: var(--font-serif);
  font-size: clamp(28px, 3.4vw, 38px);
  font-weight: 700; line-height: 1;
  color: var(--white);
  margin-bottom: 8px;
  letter-spacing: -.6px;
}
.wi-stat__label {
  font-size: 11.5px; font-weight: 600;
  letter-spacing: 1.2px; text-transform: uppercase;
  color: rgba(255,255,255,.55);
}
@media (max-width: 768px) { .wi-stats { grid-template-columns: repeat(2, 1fr); gap: 28px 20px; } }

/* --- Misc utilities -------------------------------------------------------*/
.text-center { text-align: center; }
.mt-0 { margin-top: 0; }
.mb-0 { margin-bottom: 0; }
.mt-3 { margin-top: 24px; }
.mt-4 { margin-top: 32px; }
.mb-3 { margin-bottom: 24px; }
.mb-4 { margin-bottom: 32px; }
.muted { color: var(--text-mute); }
.divider { height: 1px; background: var(--line); margin: 32px 0; }

/* --- Print ---------------------------------------------------------------*/
@media print { .wi-nav, .wi-footer, .wi-mob-overlay, .wi-mob-nav { display: none !important; } }
