:root {
  /* --- Navy. The primary ground. Carried from the offer decks, not the logo. --- */
  --hgp-navy-900: #0D1526;
  --hgp-navy-800: #101B31;
  --hgp-navy-700: #14223D;
  --hgp-navy-600: #24395C;
  --hgp-navy-500: #3A5474;
  --hgp-navy-300: #93A3B8;
  --hgp-navy-100: #D4DDE3;
  --hgp-navy-050: #EAF2F6;

  /* --- Gold. The single accent. Rules, marks, total rows, kickers. --- */
  --hgp-gold-700: #8E6E27;
  --hgp-gold-600: #A8842F;
  --hgp-gold-500: #C29A45;
  --hgp-gold-300: #DCC189;
  --hgp-gold-100: #F1E6CC;
  --hgp-gold-050: #FBF8F0;

  /* --- Positive green. FINANCIAL TABLES ONLY: positive-delta figures. Never UI chrome. --- */
  --hgp-green-600: #1D7A4D;
  --hgp-green-050: #EAF3EE;

  /* --- Logo lime. Lives inside the logo file only. The logo is rarely placed; never sample from it. --- */
  --hgp-leaf: #8DA817;

  /* --- Neutrals --- */
  --hgp-ink:    #222E3E;
  --hgp-body:   #3C4756;
  --hgp-muted:  #6E7785;
  --hgp-line:   #E1E5EC;
  --hgp-ice:    #F4F7F9;
  --hgp-paper:  #FFFFFF;

  /* --- Semantic aliases. Reach for these first. --- */
  --text-primary:    var(--hgp-ink);
  --text-body:       var(--hgp-body);
  --text-muted:      var(--hgp-muted);
  --text-on-navy:    var(--hgp-paper);
  --text-accent:     var(--hgp-gold-700);
  --text-positive:   var(--hgp-green-600);

  --surface-page:    var(--hgp-paper);
  --surface-sunk:    var(--hgp-ice);
  --surface-card:    var(--hgp-paper);
  --surface-accent:  var(--hgp-gold-050);
  --surface-navy:    var(--hgp-navy-700);
  --surface-slide:   var(--hgp-navy-900);

  --border-hairline: var(--hgp-line);
  --border-strong:   var(--hgp-navy-700);
  --border-accent:   var(--hgp-gold-500);

  --rule-masthead:   7px;
  --rule-section:    2px;
}
