/* Lockhouse core typeface.
   Ground truth is 'Avenir Next' / 'Avenir' with Figtree as the shipped fallback.
   No Avenir licence files were supplied, so Figtree (Google Fonts) is the
   webfont actually loaded. Drop Avenir Next .woff2 files in assets/fonts/ and
   add @font-face rules here to make Avenir the real first choice. */
/* latin-ext */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../Figtree-LatinExt.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../Figtree-Latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../Figtree-LatinExt.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../Figtree-Latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../Figtree-LatinExt.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../Figtree-Latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../Figtree-LatinExt.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../Figtree-Latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../Figtree-LatinExt.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../Figtree-Latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


:root{
  /* base — navy */
  --navy-900:#0E2742;
  --navy-800:#1E3348;
  --navy-700:#33475C;
  --navy-600:#4A5D73;
  --navy-500:#5B6E85;
  /* base — gold */
  --gold-500:#B8932F;
  --gold-700:#8A6A16;
  --gold-200:#E2CF9E;
  --gold-050:#FAF3E2;
  --gold-wash:rgba(184,147,47,0.16);
  /* base — ground and cool tints */
  --white:#FFFFFF;
  --cool-050:#F7F9FB;
  --cool-100:#F4F7FA;
  --cool-200:#E9EEF4;
  /* base — hairlines */
  --hairline-16:rgba(14,39,66,0.16);
  --hairline-14:rgba(14,39,66,0.14);
  --hairline-30:rgba(14,39,66,0.30);

  /* semantic — text */
  --text-primary:var(--navy-900);
  --text-body:var(--navy-700);
  --text-body-strong:var(--navy-800);
  --text-lead:var(--navy-600);
  --text-meta:var(--navy-500);
  --text-accent:var(--gold-700);
  --text-inverse:var(--white);

  /* semantic — surfaces */
  --surface-page:var(--white);
  --surface-card:var(--cool-100);
  --surface-card-step:var(--cool-200);
  --surface-table-row:var(--cool-050);
  --surface-highlight:var(--gold-050);
  --surface-emphasis:var(--gold-wash);
  --surface-table-head:var(--cool-100);

  /* semantic — lines and accents */
  --rule-accent:var(--gold-500);
  --border-hairline:var(--hairline-14);
  --border-hairline-strong:var(--hairline-16);
  --border-highlight:var(--gold-200);
  --border-dashed:var(--hairline-30);

  /* semantic — links */
  --link:var(--gold-500);
  --link-hover:var(--navy-900);
}

:root{
  --font-core:'Avenir Next','Avenir',Figtree,sans-serif;

  --weight-regular:400;
  --weight-medium:500;
  --weight-semibold:600;
  --weight-bold:700;
  --weight-heavy:800;

  /* slide scale — 1920x1080. Nothing below 24px. */
  --slide-deck-title:112px;
  --slide-heading:52px;
  --slide-card-heading-lg:34px;
  --slide-card-heading:30px;
  --slide-callout:32px;
  --slide-stat:84px;
  --slide-lead:28px;
  --slide-body:27px;
  --slide-body-sm:26px;
  --slide-body-xs:25px;
  --slide-eyebrow:26px;
  --slide-label:24px;
  --slide-meta:24px;

  /* document / web scale */
  --doc-title:62px;
  --doc-heading:34px;
  --doc-card-heading:22px;
  --doc-lead:19px;
  --doc-body:17px;
  --doc-body-sm:15px;
  --doc-eyebrow:14px;
  --doc-label:13px;

  /* line heights — @kind other */
  --lh-deck-title:0.98; /* @kind other */
  --lh-heading:1.14; /* @kind other */
  --lh-card-heading:1.2; /* @kind other */
  --lh-callout:1.3; /* @kind other */
  --lh-body:1.4; /* @kind other */
  --lh-lead:1.45; /* @kind other */
  --lh-loose:1.5; /* @kind other */
  --lh-stat:1; /* @kind other */

  /* tracking */
  --track-deck-title:-0.02em;
  --track-heading:-0.01em;
  --track-eyebrow-wide:0.28em;
  --track-eyebrow:0.24em;
  --track-label:0.16em;
  --track-meta:0.14em;
  --track-label-tight:0.18em;
}

:root{
  --space-1:2px;
  --space-2:6px;
  --space-3:9px;
  --space-4:10px;
  --space-5:12px;
  --space-6:14px;
  --space-7:16px;
  --space-8:18px;
  --space-9:20px;
  --space-10:22px;
  --space-11:24px;
  --space-12:26px;
  --space-13:30px;
  --space-14:32px;
  --space-15:34px;
  --space-16:38px;
  --space-17:44px;
  --space-18:52px;
  --space-19:60px;
  --space-20:72px;

  /* slide geometry */
  --slide-width:1920px;
  --slide-height:1080px;
  --slide-padding:60px 110px 56px;
  --slide-gap-grid:24px;
  --slide-gap-grid-tight:18px;
  --slide-gap-grid-cards:22px;
  --slide-logo-height:76px;
  --slide-logo-height-title:104px;

  /* card padding */
  --card-padding-slide:26px 34px 28px;
  --card-padding-slide-tight:20px 30px 22px;
  --card-padding-doc:22px 26px 24px;
  --table-cell-padding-slide:24px;
  --table-cell-padding-doc:18px;
  --table-gap:2px;

  /* document geometry */
  --doc-width:1440px;
  --doc-padding:72px 80px 120px;
  --measure-lead:820px;
  --measure-body:700px;
}

:root{
  /* Flat rectangles only. No radius, no shadows, no gradients anywhere. */
  --radius-none:0;
  --shadow-none:none;

  --border-width-hairline:1px;
  --border-width-accent-slide:4px;
  --border-width-accent-doc:4px;
  --border-width-accent-inline:3px;

  --rule-hairline:1px solid var(--border-hairline);
  --rule-hairline-strong:1px solid var(--border-hairline-strong);
  --rule-accent-edge:4px solid var(--rule-accent);
  --rule-highlight:1px solid var(--border-highlight);
  --rule-dashed:1px dashed var(--border-dashed);

  --gold-rule-width:140px;
  --gold-rule-height:4px;
}

html,body{margin:0;padding:0;background:var(--surface-page)}
body{font-family:var(--font-core);color:var(--text-primary);-webkit-font-smoothing:antialiased}
a{color:var(--link);text-decoration:none}
a:hover{color:var(--link-hover);text-decoration:underline}
h1,h2,h3,p{margin:0}


/* Hover states -- extracted from dead style-hover attributes,
   see scripts/fix_hover.py and docs/STRUCTURE.md */
.hov-125656e6:hover { background: #1E3348 !important; color: #FFFFFF !important; }
.hov-140bd4d6:hover { color: #0E2742 !important; border-bottom: 2px solid #0E2742 !important; }
.hov-3e477ce8:hover { color: #0E2742 !important; }
.hov-4d5a1400:hover { color: #8A6A16 !important; text-decoration: underline !important; }
.hov-5075e7ba:hover { background: #E9EEF4 !important; color: #0E2742 !important; }
.hov-a184159c:hover { background: #F4F7FA !important; }
.hov-ad12c85b:hover { color: #0E2742 !important; border-bottom: 2px solid #B8932F !important; }
.hov-c707bff5:hover { background: #1E3348 !important; }

/* The 2 rules below were, along with an html/body reset and an a/
   a:hover pair, byte-identical at the top of every page's own <style>
   block. The reset and a/a:hover were already redundant with rules
   above (once the --link token below is fixed) so were just deleted
   per-page rather than re-added here. See scripts/fix_a11y_quality.py. */
* { box-sizing: border-box; }
button, input, select, textarea { font: inherit; }

/* Consistent keyboard-focus ring site-wide, in the brand accent
   colour -- previously only Briefing's form inputs had one. */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid #B8932F;
  outline-offset: 2px;
}
