/* Uganda Gold Report — visual system v0.1
   Institutional, restrained, evidence-led. Charcoal / refined gold / ivory.
   No gradients, no shiny gold, no badges. Gold is an accent for rules and marks only. */

:root {
  --ink: #16181b;
  --charcoal: #1c1f23;
  --graphite: #3a3f46;
  --muted: #5d636b;
  --rule: #e3dfd4;
  --ivory: #f7f4ec;
  --paper: #ffffff;
  --gold: #9c7a33;          /* refined, desaturated — text-safe on white (AA for large text / UI) */
  --gold-soft: #c8ab6a;     /* on charcoal only */
  --focus: #1f5fbf;

  /* evidence labels: semantic, separate from the brand accent */
  --ev-verified: #1e6b47;  --ev-verified-bg: #e3f1ea;
  --ev-official: #1e5a6b;  --ev-official-bg: #e2eef2;
  --ev-independent: #2f5d50; --ev-independent-bg: #e5efeb;
  --ev-reported: #44506a;  --ev-reported-bg: #e8ebf2;
  --ev-claimed: #7a5410;   --ev-claimed-bg: #f6ecd8;
  --ev-unverified: #5d636b; --ev-unverified-bg: #eceae5;
  --ev-planned: #4f4a6b;   --ev-planned-bg: #ebe9f2;
  --ev-pending: #8a4b12;   --ev-pending-bg: #f8e8d8;

  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  --step--1: 0.875rem;
  --step-0: 1.0625rem;
  --step-1: 1.25rem;
  --step-2: 1.5625rem;
  --step-3: 2rem;
  --step-4: 2.625rem;

  --measure: 68ch;
  --wrap: 72rem;
  --space: 1.5rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 400 var(--step-0)/1.65 var(--sans);
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--charcoal); text-decoration-color: var(--gold); text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.skip { position: absolute; left: -999px; }
.skip:focus { left: 1rem; top: 1rem; background: var(--paper); padding: .5rem 1rem; z-index: 10; }

.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--space); }

h1, h2, h3 { font-family: var(--serif); font-weight: 600; line-height: 1.2; text-wrap: balance; color: var(--charcoal); }
h1 { font-size: var(--step-4); margin: .5rem 0 1.25rem; letter-spacing: -0.01em; }
h2 { font-size: var(--step-2); margin: 2.5rem 0 1rem; }
h3 { font-size: var(--step-1); margin: 2rem 0 .75rem; }
p, ul, ol { max-width: var(--measure); }
.kicker, .answer__kicker, .next-step__kicker {
  font: 600 var(--step--1)/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--gold);
}

/* header */
.site-header { border-bottom: 1px solid var(--rule); background: var(--paper); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 4.25rem; flex-wrap: wrap; }
.brand { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; }
.brand__mark { width: .9rem; height: .9rem; border: 2px solid var(--gold); transform: rotate(45deg); }
.brand__name { font: 600 1.125rem/1 var(--serif); color: var(--charcoal); letter-spacing: .01em; }
.nav { display: flex; gap: 1.25rem; flex-wrap: wrap; }
.nav a { text-decoration: none; font-size: var(--step--1); color: var(--graphite); padding: .25rem 0; border-bottom: 2px solid transparent; }
.nav a:hover, .nav a[aria-current] { border-bottom-color: var(--gold); color: var(--charcoal); }
.staging-banner { background: var(--ev-pending-bg); color: var(--ev-pending); text-align: center; font-size: var(--step--1); padding: .4rem 1rem; }

/* home */
.home-lede { background: var(--ivory); border-bottom: 1px solid var(--rule); padding: 4.5rem 0 3.5rem; }
.home-lede h1 { font-size: clamp(2.25rem, 4.5vw, 3.25rem); max-width: 22ch; }
.home-lede__text { font-size: var(--step-1); color: var(--graphite); max-width: 60ch; }
.journeys__list { list-style: none; padding: 0; display: grid; gap: 1px; background: var(--rule); border: 1px solid var(--rule); max-width: none; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.journeys__list a { display: flex; flex-direction: column; gap: .4rem; padding: 1.25rem 1.25rem 1.4rem; background: var(--paper); text-decoration: none; height: 100%; }
.journeys__list a:hover { background: var(--ivory); }
.journeys__q { font: 600 var(--step-0)/1.35 var(--serif); color: var(--charcoal); }
.journeys__to { font-size: var(--step--1); color: var(--muted); }
.hubs__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1.5rem; }
.hubs__item { display: flex; flex-direction: column; gap: .5rem; padding-top: 1rem; border-top: 2px solid var(--charcoal); text-decoration: none; }
.hubs__title { font: 600 var(--step-1)/1.25 var(--serif); color: var(--charcoal); }
.hubs__text { color: var(--muted); font-size: var(--step--1); }

/* pages */
.page { padding-top: 2rem; padding-bottom: 4rem; }
.crumbs { font-size: var(--step--1); color: var(--muted); display: flex; gap: .4rem; flex-wrap: wrap; }
.crumbs a { color: var(--muted); }
.dates { font-size: var(--step--1); color: var(--muted); margin: .25rem 0 0; }
.answer { border-left: 3px solid var(--gold); background: var(--ivory); padding: 1.1rem 1.4rem; margin: 1.5rem 0 2rem; max-width: var(--measure); }
.answer p { font-size: var(--step-1); line-height: 1.5; margin: .4rem 0 0; }
.prose > * { max-width: var(--measure); }
.prose blockquote { border-left: 2px solid var(--rule); margin-left: 0; padding-left: 1rem; color: var(--graphite); }
.limits { border-top: 1px solid var(--rule); margin-top: 3rem; }
.index-list { list-style: none; padding: 0; max-width: 52rem; }
.index-list li { padding: 1rem 0; border-bottom: 1px solid var(--rule); display: grid; gap: .25rem; }
.index-list a { font: 600 var(--step-1)/1.3 var(--serif); text-decoration: none; }
.index-list p { margin: 0; color: var(--graphite); }
.index-list__date { font-size: var(--step--1); color: var(--muted); font-variant-numeric: tabular-nums; }

/* evidence */
.evidence { margin-top: 3.5rem; }
.evidence__intro { color: var(--muted); font-size: var(--step--1); }
.table-scroll { overflow-x: auto; border: 1px solid var(--rule); }
.evidence__table { border-collapse: collapse; width: 100%; min-width: 40rem; font-size: var(--step--1); }
.evidence__table th, .evidence__table td { text-align: left; vertical-align: top; padding: .7rem .9rem; border-bottom: 1px solid var(--rule); }
.evidence__table th { font-weight: 600; background: var(--ivory); color: var(--graphite); }
.evidence__table td:last-child { white-space: nowrap; font-variant-numeric: tabular-nums; }
.label { display: inline-block; padding: .15rem .5rem; border-radius: 2px; font-size: .8125rem; font-weight: 600; white-space: nowrap; }
.label--verified { color: var(--ev-verified); background: var(--ev-verified-bg); }
.label--official { color: var(--ev-official); background: var(--ev-official-bg); }
.label--independent { color: var(--ev-independent); background: var(--ev-independent-bg); }
.label--reported { color: var(--ev-reported); background: var(--ev-reported-bg); }
.label--claimed { color: var(--ev-claimed); background: var(--ev-claimed-bg); }
.label--unverified { color: var(--ev-unverified); background: var(--ev-unverified-bg); }
.label--planned { color: var(--ev-planned); background: var(--ev-planned-bg); }
.label--pending { color: var(--ev-pending); background: var(--ev-pending-bg); }

/* related + next step */
.related__list { list-style: none; padding: 0; display: grid; gap: 1px; background: var(--rule); border: 1px solid var(--rule); max-width: none; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.related__list li { background: var(--paper); padding: 1rem 1.1rem; display: grid; gap: .3rem; }
.related__list a { font: 600 var(--step-0)/1.35 var(--serif); text-decoration: none; }
.related__list span { font-size: var(--step--1); color: var(--muted); }
.next-step { margin-top: 2.5rem; padding: 1.4rem 1.5rem; background: var(--charcoal); color: var(--ivory); max-width: var(--measure); }
.next-step .next-step__kicker { color: var(--gold-soft); margin: 0 0 .35rem; }
.next-step__link { color: var(--paper); font: 600 var(--step-1)/1.3 var(--serif); text-decoration-color: var(--gold-soft); }

/* footer */
.site-footer { background: var(--charcoal); color: #d9d6cf; margin-top: 4rem; padding: 3rem 0 2rem; font-size: var(--step--1); }
.site-footer a { color: #f1eee7; text-decoration-color: var(--gold-soft); }
.site-footer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 2rem; }
.site-footer__brand { font: 600 1.125rem/1.2 var(--serif); color: var(--paper); margin: 0 0 .5rem; }
.site-footer nav { display: grid; gap: .5rem; align-content: start; }
.site-footer__legal { border-top: 1px solid #3a3f46; margin-top: 2rem; padding-top: 1rem; color: #b3b0a8; }

@media (prefers-reduced-motion: no-preference) {
  a, .journeys__list a, .nav a { transition: background-color .15s ease, border-color .15s ease, text-decoration-thickness .15s ease; }
}
@media (max-width: 40rem) {
  :root { --step-4: 2.1rem; --space: 1.1rem; }
  .home-lede { padding: 3rem 0 2.5rem; }
  .answer { padding: .9rem 1.1rem; }
  .answer p { font-size: var(--step-0); }
  .home-lede__text { font-size: var(--step-0); }
  .table-scroll { border: 0; overflow: visible; }
  .evidence__table { min-width: 0; }
  .evidence__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .evidence__table, .evidence__table tbody, .evidence__table tr, .evidence__table td { display: block; width: 100%; }
  .evidence__table tr { border: 1px solid var(--rule); margin-bottom: .75rem; }
  .evidence__table td { border-bottom: 0; padding: .45rem .9rem; }
  .evidence__table td::before { content: attr(data-label); display: block; font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
  .evidence__table td:last-child { white-space: normal; }
}

/* figures (illustrative images always labelled and credited) */
.figure { margin: 0; }
.figure img { width: 100%; height: auto; background: var(--ivory); }
.figure__caption { font-size: .8125rem; color: var(--muted); padding-top: .5rem; display: flex; flex-wrap: wrap; gap: .35rem .6rem; align-items: baseline; }
.figure__tag { font-weight: 600; letter-spacing: .06em; text-transform: uppercase; font-size: .6875rem; color: var(--graphite); border: 1px solid var(--rule); padding: .05rem .4rem; }
.figure__credit a { color: var(--muted); }
.home-lede__figure { margin-top: 2.5rem; }
.home-lede__figure img { aspect-ratio: 21 / 9; object-fit: cover; }
@media (max-width: 40rem) { .home-lede__figure img { aspect-ratio: 4 / 3; } }

/* verification checklist */
.checks { margin-top: 3rem; }
.checks__intro { max-width: var(--measure); color: var(--graphite); }
.checks__list { list-style: none; padding: 0; margin: 1.5rem 0 0; max-width: 52rem; display: grid; gap: 1rem; counter-reset: none; }
.check { border: 1px solid var(--rule); border-top: 3px solid var(--charcoal); padding: 1.1rem 1.25rem 1.2rem; background: var(--paper); }
.check__title { margin: 0 0 .6rem; display: flex; gap: .75rem; align-items: baseline; font-size: var(--step-1); }
.check__num { flex: none; font: 600 .875rem/1 var(--sans); color: var(--paper); background: var(--charcoal); width: 1.6rem; height: 1.6rem; display: inline-grid; place-items: center; transform: translateY(-.1rem); }
.check__why p, .check__how p { margin: .35rem 0; }
.check__kicker { font: 600 .75rem/1.2 var(--sans); letter-spacing: .07em; text-transform: uppercase; color: var(--gold); margin: .9rem 0 .25rem; }
.check__limits { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: .25rem 1.5rem; background: var(--ivory); padding: .2rem 1rem .8rem; margin-top: .9rem; }
.check__limits p { margin: .2rem 0; font-size: var(--step--1); }
.check__basis { font-size: .8125rem; color: var(--muted); margin: .8rem 0 0; }
@media (max-width: 40rem) { .check { padding: .9rem 1rem 1rem; } .check__title { font-size: var(--step-0); } }

/* tables inside article prose (markdown blocks) */
.prose table { border-collapse: collapse; width: 100%; max-width: 52rem; font-size: var(--step--1); margin: 1.25rem 0; border: 1px solid var(--rule); }
.prose th, .prose td { text-align: left; vertical-align: top; padding: .65rem .85rem; border-bottom: 1px solid var(--rule); }
.prose th { background: var(--ivory); color: var(--graphite); font-weight: 600; }
.prose td:first-child { font-weight: 600; color: var(--charcoal); }
@media (max-width: 40rem) {
  .prose table { border: 0; }
  .prose thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .prose table, .prose tbody, .prose tr, .prose td { display: block; width: 100%; }
  .prose tr { border: 1px solid var(--rule); margin-bottom: .6rem; padding: .35rem 0; }
  .prose td[data-label]:not(:first-child)::before { content: attr(data-label); display: block; font-size: .75rem; font-weight: 400; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
  .prose td[data-label]:last-child { color: inherit; font-size: inherit; }
  .prose td { border-bottom: 0; padding: .25rem .85rem; }
  .prose td:last-child { color: var(--muted); font-size: .8125rem; }
}
.label--notfound { color: var(--ev-unverified); background: var(--paper); border: 1px dashed #c9c4b8; }
/* documented-patterns block */
.patterns { margin: 1.25rem 0; }
.patterns__table { border-collapse: collapse; width: 100%; max-width: 52rem; font-size: var(--step--1); border: 1px solid var(--rule); }
.patterns__table th, .patterns__table td { text-align: left; vertical-align: top; padding: .65rem .85rem; border-bottom: 1px solid var(--rule); }
.patterns__table th { background: var(--ivory); color: var(--graphite); font-weight: 600; }
.patterns__table td:first-child { font-weight: 600; color: var(--charcoal); }
.patterns__src { display: block; color: var(--muted); font-size: .8125rem; margin-top: .25rem; }
@media (max-width: 40rem) {
  .patterns__table { border: 0; }
  .patterns__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .patterns__table, .patterns__table tbody, .patterns__table tr, .patterns__table td { display: block; width: 100%; }
  .patterns__table tr { border: 1px solid var(--rule); margin-bottom: .6rem; padding: .35rem 0; }
  .patterns__table td { border-bottom: 0; padding: .3rem .85rem; }
  .patterns__table td[data-label]:not(:first-child)::before { content: attr(data-label); display: block; font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
}

/* ==========================================================================
   Visual identity v1 — 13 Sep 2026
   Private commodity house, not a newspaper, jeweller or exporter template.
   Near-black / bone / muted metal / warm grey. Newsreader (display) + Instrument Sans (text).
   Self-hosted OFL fonts (assets/fonts). No gradients; metal used for hairlines, figures and labels only.
   ========================================================================== */
@font-face { font-family: "Libre Caslon Display"; src: url("../fonts/libre-caslon-display-latin.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Instrument Sans"; src: url("../fonts/instrument-sans-latin.woff2") format("woff2"); font-weight: 400 600; font-style: normal; font-display: swap; }

:root {
  --night: #0e0f10;
  --ink: #141517;
  --charcoal: #17181a;
  --graphite: #3d3b37;
  --muted: #6c675f;
  --stone: #a59f94;
  --rule: #ddd7cb;
  --rule-dark: #2a2b2e;
  --ivory: #efeae0;          /* bone */
  --paper: #f7f5f0;
  --on-dark: #efeae0;
  --on-dark-2: #cdc7bb;
  --gold: #7a6130;           /* metal as text on light grounds (AA) */
  --gold-soft: #b8995c;      /* metal on near-black */
  --serif: "Libre Caslon Display", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --sans: "Instrument Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --wrap: 80rem;
  --space: clamp(1.25rem, 4vw, 2.5rem);
}

body { background: var(--paper); color: var(--ink); font-family: var(--sans); }
h1, h2, h3 { font-weight: 400; letter-spacing: -0.015em; line-height: 1.12; }
a { text-decoration-color: var(--gold); }

/* header — site-wide */
.site-header { background: var(--night); border-bottom: 1px solid var(--rule-dark); }
.site-header__inner { min-height: 4.75rem; }
.brand__mark { width: .7rem; height: .7rem; border: 1px solid var(--gold-soft); }
.brand__name { font: 400 1.25rem/1 var(--serif); color: var(--on-dark); letter-spacing: .005em; }
.nav { gap: 2rem; }
.nav a { color: var(--stone); font: 500 .8125rem/1 var(--sans); letter-spacing: .06em; padding: .5rem 0; border-bottom: 1px solid transparent; }
.nav a:hover, .nav a[aria-current] { color: var(--on-dark); border-bottom-color: var(--gold-soft); }
.header-cta { font: 500 .75rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; padding: .8rem 1.1rem; color: var(--on-dark); border: 1px solid rgba(184,153,92,.55); text-decoration: none; white-space: nowrap; transition: border-color .25s, color .25s; }
.header-cta:hover { border-color: var(--gold-soft); color: var(--gold-soft); }
.staging-banner { background: #2a241a; color: #dcc493; }
.site-footer { background: var(--night); }
.t-home .site-footer { margin-top: 0; }

/* shared home elements */
.eyebrow { display: flex; align-items: center; gap: .85rem; margin: 0 0 1.5rem; font: 600 .6875rem/1.2 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--gold); }
.eyebrow::before { content: ""; width: 2.25rem; height: 1px; background: currentColor; flex: none; }
.eyebrow--light { color: var(--gold-soft); }
.home h2 { font: 400 clamp(2.1rem, 4.2vw, 3.5rem)/1.04 var(--serif); letter-spacing: -0.022em; margin: 0 0 1.5rem; max-width: 15ch; color: var(--ink); }
.band { padding: clamp(4.5rem, 9vw, 8.5rem) 0; }
.band--paper { background: var(--paper); }
.band--bone { background: var(--ivory); }
.band--night { background: var(--night); color: var(--on-dark-2); }
.band--night h2 { color: var(--on-dark); }
.band--ruled { padding-top: 0; }
.band--ruled > .wrap { border-top: 1px solid var(--rule); padding-top: clamp(3.5rem, 6vw, 5.5rem); }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 3.1rem; padding: .85rem 1.6rem; font: 500 .78rem/1 var(--sans); letter-spacing: .15em; text-transform: uppercase; text-decoration: none; border: 1px solid transparent; transition: background-color .25s, color .25s, border-color .25s; }
.btn--solid { background: var(--on-dark); color: var(--night); }
.btn--solid:hover { background: var(--gold-soft); }
.btn--line { border-color: rgba(239,234,224,.45); color: var(--on-dark); }
.btn--line:hover { border-color: var(--gold-soft); color: var(--gold-soft); }
.arrow-link { display: inline-block; font: 500 .9375rem/1.3 var(--sans); color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--gold); padding-bottom: .2rem; }
.arrow-link::after { content: "\2002\2192"; color: var(--gold); }
.arrow-link:hover { color: var(--gold); }
.arrow-link--light { color: var(--on-dark); border-bottom-color: var(--gold-soft); }
.arrow-link--light::after, .arrow-link--light:hover { color: var(--gold-soft); }

/* photographs */
.photo { margin: 0; }
.photo__frame { display: block; }
.photo__caption { font: 400 .75rem/1.45 var(--sans); color: var(--muted); display: flex; flex-wrap: wrap; gap: .15rem .6rem; }
.photo__tag { font-weight: 600; letter-spacing: .14em; text-transform: uppercase; font-size: .625rem; }
.photo__caption a { color: inherit; }

/* hero */
.hero { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: flex-end; min-height: clamp(40rem, 90vh, 62rem); background: var(--night); color: var(--on-dark); }
.photo--hero { position: absolute; inset: 0; z-index: -1; }
.photo--hero .photo__frame { position: absolute; left: 0; right: 0; bottom: 0; height: 128%; }
.photo--hero img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 100%; }
.photo--hero img { filter: saturate(.72) contrast(1.06) brightness(.92); }
.photo--hero::after { content: ""; position: absolute; inset: 0; background: rgba(9,10,11,.52); }
.photo--hero .photo__caption { position: absolute; z-index: 1; top: 1.25rem; right: var(--space); max-width: 24rem; justify-content: flex-end; text-align: right; color: rgba(239,234,224,.72); }
.hero__inner { position: relative; width: 100%; padding-top: 9rem; padding-bottom: clamp(3rem, 6vw, 5rem); }
.hero__title { font: 350 clamp(3.2rem, 8vw, 7.4rem)/.96 var(--serif); letter-spacing: -0.03em; color: #f5f1e9; max-width: 12ch; margin: 0 0 clamp(2rem, 4vw, 3.25rem); }
.hero__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 2.5rem clamp(3rem, 8vw, 8rem); align-items: end; padding-top: 2rem; border-top: 1px solid rgba(239,234,224,.2); }
.hero__lede p { margin: 0; font-size: clamp(1.1rem, 1.6vw, 1.3rem); line-height: 1.55; color: #e6e1d7; max-width: 40ch; }
.hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.hero__status { margin: 0; max-width: 38ch; padding-left: 1.25rem; border-left: 1px solid var(--gold-soft); font-size: .9375rem; line-height: 1.65; color: var(--on-dark-2); }

/* split layout: narrow heading column + wide body */
.split { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 3rem clamp(3rem, 7vw, 7.5rem); }
.split__head { align-self: start; position: sticky; top: 2rem; }
.split__intro { color: var(--muted); max-width: 34ch; margin: 0 0 1.75rem; }

/* products */
.form-row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 1rem 2.5rem; padding: 2.4rem 0; border-top: 1px solid var(--rule); }
.form-row:last-child { border-bottom: 1px solid var(--rule); }
.form-row__title { font: 400 1.85rem/1.12 var(--serif); margin: 0; color: var(--ink); }
.form-row__spec { margin: 0 0 .9rem; font: 600 .6875rem/1.5 var(--sans); letter-spacing: .15em; text-transform: uppercase; color: var(--gold); }
.form-row__body p { margin: 0 0 1.1rem; color: var(--graphite); }

/* origin */
.origin { padding: 0; }
.origin__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); min-height: 46rem; }
.photo--origin { position: relative; overflow: hidden; min-height: 30rem; }
.photo--origin .photo__frame { position: absolute; left: 0; right: 0; bottom: 0; height: 150%; }
.photo--origin img { width: 100%; height: 100%; object-fit: cover; }
.photo--origin img { filter: saturate(.85) contrast(1.04); object-position: 50% 100%; }
.photo--origin .photo__caption { position: absolute; left: 0; bottom: 0; padding: .6rem var(--space); background: rgba(14,15,16,.72); color: rgba(239,234,224,.8); }
.origin__text { align-self: center; padding: clamp(4rem, 7vw, 7rem) clamp(1.5rem, 5vw, 5.5rem); }
.origin__intro p { color: var(--on-dark-2); max-width: 42ch; margin-top: 0; }
.figures { margin: 2.5rem 0 2.75rem; }
.figures div { padding: 1.3rem 0; border-top: 1px solid var(--rule-dark); }
.figures div:last-child { border-bottom: 1px solid var(--rule-dark); }
.figures dt { font: 350 clamp(1.9rem, 3vw, 2.5rem)/1.05 var(--serif); letter-spacing: -0.015em; color: var(--gold-soft); }
.figures dd { margin: .5rem 0 0; font-size: .875rem; color: var(--stone); max-width: 42ch; }

/* specifications */
.specs { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 3rem clamp(3rem, 7vw, 7.5rem); align-items: start; }
.photo--detail img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: saturate(.8); }
.photo--detail .photo__caption { margin-top: .85rem; }
.spec-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 3rem; margin: 2.25rem 0 2.75rem; }
.spec-grid div { padding: 1.5rem 0; border-top: 1px solid var(--rule); }
.spec-grid dt { font: 400 1.4rem/1.2 var(--serif); color: var(--ink); }
.spec-grid dd { margin: .55rem 0 0; color: var(--graphite); font-size: .9375rem; }

/* buyer information statement */
.statement { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 0 clamp(3rem, 7vw, 7.5rem); }
.statement > .eyebrow { grid-column: 1 / -1; }
.statement__h { grid-column: 1; }
.statement__text { grid-column: 2; grid-row: 2; }
.statement__text p { margin: 0 0 2rem; font: 400 clamp(1.35rem, 2.1vw, 1.75rem)/1.45 var(--serif); color: var(--ink); max-width: 38ch; }
.statement__link { grid-column: 2; justify-self: start; }

/* documents ledger */
.ledger { list-style: none; padding: 0; margin: 0; max-width: none; }
.ledger__row { padding: 1.6rem 0; border-top: 1px solid var(--rule); }
.ledger__row:last-child { border-bottom: 1px solid var(--rule); }
.ledger__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1.5rem; }
.ledger__item { font: 400 1.3rem/1.3 var(--serif); color: var(--ink); }
.ledger__detail { margin: .6rem 0 0; color: var(--graphite); font-size: .9375rem; max-width: 60ch; }
.home .label { flex: none; font: 600 .625rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; padding: .45rem .6rem; border-radius: 0; }

/* process */
.steps-head { max-width: 42rem; margin-bottom: 3.5rem; }
.steps { list-style: none; counter-reset: step; padding: 0; margin: 0; max-width: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3.25rem 3rem; }
.steps li { counter-increment: step; padding-top: 1.35rem; border-top: 1px solid var(--ink); }
.steps li::before { content: counter(step, decimal-leading-zero); display: block; margin-bottom: 1.1rem; font: 350 2.4rem/1 var(--serif); color: var(--gold); font-variant-numeric: lining-nums tabular-nums; }
.steps h3 { font: 400 1.4rem/1.25 var(--serif); margin: 0 0 .6rem; }
.steps p { margin: 0; color: var(--graphite); font-size: .9375rem; }
.home-note { margin-top: 3.5rem; padding-top: 1.5rem; border-top: 1px solid var(--rule); max-width: 70ch; }
.home-note p { margin: 0; font-size: .875rem; color: var(--muted); }

/* enquiry */
.enquiry__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 2rem clamp(3rem, 7vw, 7.5rem); align-items: end; }
.enquiry h2 { font-size: clamp(2.5rem, 5.2vw, 4.5rem); max-width: 11ch; margin: 0; }
.enquiry__text p { margin: 0 0 2rem; color: var(--on-dark-2); max-width: 46ch; }

/* standards */
.standards__text p { margin-top: 0; color: var(--graphite); max-width: 54ch; }
.index-links { list-style: none; padding: 0; margin: 2.25rem 0 0; max-width: none; border-top: 1px solid var(--rule); }
.index-links li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: .25rem 2rem; padding: 1.05rem 0; border-bottom: 1px solid var(--rule); align-items: baseline; }
.index-links a { font: 400 1.15rem/1.35 var(--serif); color: var(--ink); text-decoration: none; }
.index-links a:hover { color: var(--gold); }
.index-links span { color: var(--muted); font-size: .875rem; }
.home-sources { margin-top: clamp(3.5rem, 6vw, 5rem); }
.home-sources summary { cursor: pointer; font: 600 .6875rem/1.2 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--muted); padding: 1rem 0; border-top: 1px solid var(--rule); }

/* restrained motion */
@media (prefers-reduced-motion: no-preference) {
  .photo--hero img { animation: ugr-settle 2.4s cubic-bezier(.2,.6,.2,1) both; }
  .hero__inner { animation: ugr-rise 1.1s cubic-bezier(.2,.6,.2,1) both; }
  @keyframes ugr-settle { from { transform: scale(1.06); } to { transform: scale(1); } }
  @keyframes ugr-rise { from { transform: translateY(14px); } to { transform: none; } }
}

/* tablet and mobile */
@media (max-width: 60rem) {
  .split, .specs, .statement, .enquiry__grid, .hero__grid { grid-template-columns: minmax(0, 1fr); }
  .split__head { position: static; }
  .statement__h, .statement__text, .statement__link { grid-column: 1; grid-row: auto; }
  .origin__grid { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .photo--origin { min-height: 0; height: 26rem; }
  .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .photo--detail { max-width: 26rem; }
}
@media (max-width: 40rem) {
  .hero { min-height: 0; }
  .hero__inner { padding-top: 7.5rem; }
  .photo--hero::after { background: rgba(9,10,11,.6); }
  .photo--hero .photo__caption { left: var(--space); right: var(--space); justify-content: flex-start; text-align: left; max-width: none; }
  .btn { width: 100%; }
  .form-row, .spec-grid, .steps, .index-links li { grid-template-columns: minmax(0, 1fr); }
  .ledger__head { flex-direction: column; gap: .6rem; }
  .photo--origin { height: 18rem; }
  .photo--detail img { aspect-ratio: 16 / 9; }
  .nav { gap: 1.25rem; }
  .header-cta { display: none; }
}

/* ==========================================================================
   Commercial identity v2 — 13 Sep 2026 (D85)
   The front door of an international gold business, not a publication.
   Libre Caslon Display at display sizes only; Instrument Sans for navigation, data and text.
   Institutional labels (hairline + caps) replace editorial eyebrows; key-terms bar; business footer.
   ========================================================================== */
h3 { font-family: var(--sans); font-weight: 600; letter-spacing: 0; line-height: 1.3; }

/* header */
.brand { gap: .75rem; }
.brand__mark { width: .6rem; height: .6rem; }
.brand__name { font: 400 1rem/1 var(--serif); letter-spacing: .22em; text-transform: uppercase; }
.nav { gap: 2.25rem; }
.nav a { font: 500 .75rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; }
.header-cta[aria-current] { border-color: var(--gold-soft); color: var(--gold-soft); }

/* institutional section label */
.tag { margin: 0 0 1.75rem; padding-top: 1rem; border-top: 1px solid var(--rule); font: 600 .6875rem/1.2 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gold); }
.tag--light { color: var(--gold-soft); border-top-color: var(--rule-dark); }
.hero .tag { border-top: 0; padding-top: 0; margin-bottom: 1.5rem; }

/* display typography */
.hero__title { font: 400 clamp(3.3rem, 8.2vw, 7.8rem)/.98 var(--serif); letter-spacing: -0.012em; max-width: 12.5ch; }
.home h2 { font: 400 clamp(2.2rem, 4.4vw, 3.8rem)/1.02 var(--serif); letter-spacing: -0.008em; }
.form-row__title { font: 400 2rem/1.1 var(--serif); letter-spacing: 0; }
.figures dt { font: 400 clamp(2rem, 3.1vw, 2.6rem)/1.05 var(--serif); letter-spacing: 0; }
.steps li::before { font: 400 2.6rem/1 var(--serif); }
.enquiry h2 { font-size: clamp(2.6rem, 5.4vw, 4.8rem); }

/* data-style rows in the sans */
.spec-grid dt, .ledger__item { font: 600 1.0625rem/1.35 var(--sans); letter-spacing: 0; color: var(--ink); }
.steps h3 { font: 600 1.0625rem/1.35 var(--sans); margin: 0 0 .5rem; }
.index-links a { font: 500 1rem/1.35 var(--sans); }
.index-links a::after { content: "\2002\2192"; color: var(--gold); }

/* key terms bar */
.terms { background: var(--night); color: var(--on-dark); border-top: 1px solid var(--rule-dark); border-bottom: 1px solid var(--rule-dark); }
.terms__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 auto; }
.terms__grid div { padding: 1.9rem 1.75rem 2rem; border-left: 1px solid var(--rule-dark); }
.terms__grid div:first-child { border-left: 0; padding-left: 0; }
.terms__grid dt { font: 600 .6875rem/1.2 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--stone); }
.terms__grid dd { margin: .7rem 0 0; font: 400 1.6rem/1.15 var(--serif); color: var(--on-dark); }

/* products: export position */
.form-row__position { margin: 0 0 1.25rem; padding-top: .9rem; border-top: 1px solid var(--rule); display: grid; gap: .35rem; }
.form-row__position dt { font: 600 .6875rem/1.2 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--gold); }
.form-row__position dd { margin: 0; color: var(--graphite); font-size: .9375rem; }

/* buyers */
.buyers__text p { margin: 0 0 1.75rem; font-size: 1.1875rem; line-height: 1.6; color: var(--ink); max-width: 46ch; }
.checklist { list-style: none; padding: 0; margin: 0 0 2.5rem; max-width: none; border-top: 1px solid var(--rule); }
.checklist li { position: relative; padding: 1.1rem 0 1.1rem 1.75rem; border-bottom: 1px solid var(--rule); font-weight: 500; color: var(--ink); }
.checklist li::before { content: ""; position: absolute; left: 0; top: 1.62rem; width: .45rem; height: .45rem; background: var(--gold); }

/* footer: an international business */
.site-footer { padding: clamp(4rem, 7vw, 6rem) 0 2.5rem; color: var(--on-dark-2); font-size: .875rem; }
.footer { display: grid; grid-template-columns: minmax(0, 2.2fr) repeat(3, minmax(0, 1fr)); gap: 3rem clamp(2rem, 4vw, 4rem); }
.footer__mark { margin: 0; font: 400 1.05rem/1 var(--serif); letter-spacing: .22em; text-transform: uppercase; color: var(--on-dark); }
.footer__line { margin: 1.5rem 0 2rem; font: 400 clamp(1.7rem, 2.6vw, 2.2rem)/1.1 var(--serif); color: var(--on-dark); max-width: 16ch; }
.footer__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; }
.footer__email { color: var(--on-dark); text-decoration: none; border-bottom: 1px solid var(--gold-soft); padding-bottom: .15rem; }
.footer__col { display: flex; flex-direction: column; gap: .8rem; }
.footer__h { margin: 0 0 .5rem; padding-top: 1rem; border-top: 1px solid var(--rule-dark); font: 600 .6875rem/1.2 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gold-soft); }
.footer__col a { color: var(--on-dark-2); text-decoration: none; }
.footer__col a:hover { color: var(--on-dark); }
/* Official social channels: a row of monoline icons in the footer brand block (founder request, 17 Sep 2026). */
.site-footer .footer__social { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.site-footer .footer__social a { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border: 1px solid var(--rule-dark); border-radius: 50%; color: var(--on-dark-2); text-decoration: none; transition: color .2s, border-color .2s; }
.site-footer .footer__social a:hover { color: var(--on-dark); border-color: var(--gold-soft); }
.site-footer .footer__social svg { display: block; width: 1.25rem; height: 1.25rem; }
@media (prefers-reduced-motion: reduce) { .site-footer .footer__social a { transition: none; } }
.footer__legal { margin-top: clamp(3rem, 6vw, 4.5rem); padding-top: 1.5rem; border-top: 1px solid var(--rule-dark); display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem 3rem; font-size: .78rem; color: var(--stone); }
.footer__legal p { margin: 0; max-width: 64ch; }

@media (max-width: 60rem) {
  .terms__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .terms__grid div:nth-child(3) { border-left: 0; padding-left: 0; }
  .terms__grid div:nth-child(n+3) { border-top: 1px solid var(--rule-dark); }
  .footer { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 40rem) {
  .nav { gap: .9rem 1.4rem; }
  .terms__grid div { padding: 1.4rem 1rem 1.5rem; }
  .terms__grid dd { font-size: 1.3rem; }
  .footer { grid-template-columns: minmax(0, 1fr); gap: 2.25rem; }
  .form-row__title { font-size: 1.75rem; }
}

/* ==========================================================================
   Commercial v3: gold business desk (14 Sep 2026, D89/D90)
   Utility bar, two header CTAs, on-site B2B forms, desk pages.
   ========================================================================== */
.util-bar { background: #08090a; color: var(--stone); font-size: .75rem; letter-spacing: .05em; }
.util-bar__inner { display: flex; justify-content: space-between; gap: 1rem; padding-top: .45rem; padding-bottom: .45rem; }
.util-bar a { color: var(--on-dark-2); text-decoration: none; }
.header-ctas { display: flex; gap: .5rem; }
.header-cta--gold { background: var(--gold-soft); color: var(--night); border-color: var(--gold-soft); }
.header-cta--gold:hover { background: #cdb07a; color: var(--night); }
/* Header refinement (17 Sep 2026, layout fix): at desktop widths brand, navigation and "Request a quote" sit on one row
   (they previously wrapped by 26px at every desktop width). The compliance-file entry stays in the hero, quote bands and footer. */
.site-header__inner .header-cta:not(.header-cta--gold) { display: none; }
@media (min-width: 80rem) { .site-header__inner .nav { column-gap: 1.75rem; margin-inline-start: auto; } }
/* Responsive fix (17 Sep 2026, final visual review): with a classic 17px scrollbar a 1280px window leaves 1183px, and the
   English row needs 1200px, so the quote button dropped to a second row; 1024-1279px gave three rows with the button
   orphaned. Tighter navigation spacing only up to 90rem; below 80rem brand and button share row one, navigation row two. */
@media (min-width: 80rem) and (max-width: 89.9375rem) { .site-header__inner .nav { column-gap: 1.4rem; } }
@media (min-width: 40.0625rem) and (max-width: 79.9375rem) {
  .site-header__inner .brand { order: 1; }
  .site-header__inner .header-ctas { order: 2; margin-inline-start: auto; }
  .site-header__inner .nav { order: 3; flex: 1 0 100%; }
}
.btn--gold { background: var(--gold-soft); color: var(--night); }
.btn--gold:hover { background: #cdb07a; }
/* desk pages */
.desk-head { background: var(--night); color: var(--on-dark); padding: clamp(3rem, 6vw, 4.5rem) 0 clamp(2.5rem, 5vw, 3.5rem); }
.desk-crumbs { font-size: .75rem; color: var(--stone); margin: 0 0 1.75rem; }
.desk-crumbs a { color: var(--stone); }
.desk-head h1 { font: 400 clamp(2.6rem, 5.4vw, 4.6rem)/1.02 var(--serif); color: #f5f1e9; margin: 0 0 1.25rem; max-width: 16ch; }
.desk-lede p { max-width: 58ch; color: var(--on-dark-2); font-size: 1.1rem; margin: 0; }
.desk-estab { margin: 1.75rem 0 0; max-width: 64ch; border-left: 1px solid var(--gold-soft); padding: .15rem 0 .15rem 1.1rem; color: var(--on-dark-2); font-size: .92rem; }
.desk-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: clamp(2rem, 4vw, 3.5rem); padding-top: clamp(2.5rem, 5vw, 4rem); padding-bottom: clamp(4rem, 7vw, 6rem); align-items: start; }
.desk-side { position: sticky; top: 1.5rem; display: grid; gap: 1rem; }
.desk-side__block { background: var(--ivory); border: 1px solid var(--rule); padding: 1.4rem 1.5rem; }
.desk-side__block h2 { font: 600 .6875rem/1.2 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gold); margin: 0 0 .9rem; }
.desk-side__block p, .desk-side__block li { font-size: .88rem; color: var(--graphite); }
.desk-side__block p { margin: 0 0 .75rem; }
.desk-side__block ol, .desk-side__block ul { margin: 0; padding-left: 1.1rem; max-width: none; }
.desk-side__block li { margin-bottom: .55rem; }
.desk-side__block strong { color: var(--ink); }
.desk-sent { background: #fff; border: 1px solid var(--rule); border-top: 3px solid var(--gold-soft); padding: 2rem 2rem 2.25rem; }
.desk-sent h2 { font: 400 2rem/1.1 var(--serif); margin: 0 0 1rem; }
.desk-ref { font-size: 1rem; margin: 0 0 1rem; }
/* form */
.bform { display: grid; gap: 1.25rem; }
.bform__group { border: 1px solid var(--rule); background: #fff; margin: 0; padding: 1.5rem 1.6rem 1.7rem; min-width: 0; }
.bform__group > legend { font: 600 .6875rem/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gold); padding: 0 .5rem; }
.bform__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem 1.25rem; }
.bform__field { display: flex; flex-direction: column; gap: .4rem; min-width: 0; }
.bform__field--full { grid-column: 1 / -1; }
.bform__label, .bform__choice > legend { font: 600 .82rem/1.35 var(--sans); color: var(--ink); padding: 0; }
.bform__label em, .bform__choice > legend em { font-style: normal; font-weight: 400; color: var(--muted); }
.bform input[type=text], .bform input[type=email], .bform input[type=tel], .bform input[type=url], .bform input[type=number], .bform input[type=month], .bform select, .bform textarea {
  font: 400 .95rem/1.35 var(--sans); color: var(--ink); background: var(--paper); border: 1px solid #cbc4b6; border-radius: 0; padding: .72rem .8rem; width: 100%; min-height: 2.9rem; }
.bform textarea { min-height: 7rem; resize: vertical; }
.bform input:focus, .bform select:focus, .bform textarea:focus { outline: 2px solid var(--gold-soft); outline-offset: 1px; border-color: var(--gold); background: #fff; }
.bform__choice { border: 0; margin: 0; padding: 0; min-width: 0; }
.bform__opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem 1rem; margin-top: .45rem; }
.bform__opts label, .bform__check { display: flex; gap: .55rem; align-items: flex-start; font-size: .88rem; line-height: 1.4; color: var(--graphite); cursor: pointer; }
.bform__opts input, .bform__check input { margin: .2rem 0 0; accent-color: var(--gold); flex: none; width: 1rem; height: 1rem; }
.bform__help { margin: 0; font-size: .76rem; color: var(--muted); }
.bform__err { margin: 0; font-size: .8rem; color: #9b2d1f; font-weight: 600; }
.is-error input, .is-error select, .is-error textarea { border-color: #9b2d1f; }
.bform__summary { border: 1px solid #9b2d1f; border-left-width: 4px; background: #fbf1ee; padding: 1rem 1.2rem; }
.bform__summary p { margin: 0 0 .35rem; color: #6d1f14; }
.bform__hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.bform__submit { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; }
.bform__submit .btn { min-height: 3.3rem; padding: .9rem 2rem; font-size: .8rem; }
.bform__submit p { margin: 0; font-size: .8rem; color: var(--muted); max-width: 44ch; }
@media (max-width: 60rem) {
  .desk-grid { grid-template-columns: minmax(0, 1fr); }
  .desk-side { position: static; }
}
@media (max-width: 40rem) {
  .util-bar__inner { flex-direction: column; gap: .15rem; }
  .bform__grid, .bform__opts { grid-template-columns: minmax(0, 1fr); }
  .bform__group { padding: 1.2rem 1.1rem 1.3rem; }
  .header-ctas { width: 100%; }
  .header-ctas .header-cta { flex: 1; text-align: center; display: block; }
  .header-cta { display: block; }
}

/* Commercial v3: homepage (home3), commercial pages and quote band */
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.btn--ink { background: var(--ink); color: var(--on-dark); }
.btn--ink:hover { background: #2a2b2e; }
.btn--line-ink { border: 1px solid var(--ink); color: var(--ink); }
.btn--line-ink:hover { border-color: var(--gold); color: var(--gold); }
.home3 .hero__inner { padding-top: 7rem; padding-bottom: 0; }
.h3-lede p { max-width: 46ch; font-size: clamp(1.1rem, 1.6vw, 1.3rem); line-height: 1.55; color: #e6e1d7; margin: 1.75rem 0 0; }
.home3 .hero__actions { margin-top: 2.1rem; }
.h3-facts { margin: clamp(3rem, 6vw, 4.5rem) 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgba(239,234,224,.18); }
.h3-facts div { padding: 1.4rem 1.4rem 1.7rem 0; }
.h3-facts div + div { padding-left: 1.4rem; border-left: 1px solid rgba(239,234,224,.14); }
.h3-facts dt { font: 400 1.45rem/1.15 var(--serif); color: var(--on-dark); }
.h3-facts dd { margin: .45rem 0 0; font-size: .8rem; color: var(--stone); }
.h3-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem 3rem; align-items: end; margin-bottom: clamp(2rem, 4vw, 3rem); }
.h3-head .tag { border-top: 0; padding-top: 0; margin-bottom: 1rem; }
.h3-head h2 { margin: 0; max-width: 17ch; }
.h3-head > p { margin: 0; color: var(--muted); max-width: 46ch; justify-self: end; }
.h3-cards { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 1.25rem; }
.h3-card { background: #fff; border: 1px solid var(--rule); padding: 1.9rem 1.7rem 1.7rem; display: flex; flex-direction: column; gap: .95rem; }
.h3-card h3 { font: 400 2rem/1.05 var(--serif); margin: 0; color: var(--ink); }
.h3-card p { margin: 0; font-size: .95rem; color: var(--graphite); }
.h3-card .h3-card__k { font: 600 .66rem/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gold); }
.h3-card--feat { background: var(--night); border-color: var(--night); }
.h3-card--feat h3 { color: var(--on-dark); font-size: 2.5rem; }
.h3-card--feat p { color: var(--on-dark-2); }
.h3-card--feat .h3-card__k { color: var(--gold-soft); }
.h3-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.h3-chips span { font: 500 .72rem/1 var(--sans); letter-spacing: .03em; padding: .45rem .6rem; border: 1px solid var(--rule); color: var(--graphite); }
.h3-card--feat .h3-chips span { border-color: rgba(239,234,224,.22); color: var(--on-dark); }
.h3-more { margin-top: auto; padding-top: .85rem; border-top: 1px solid var(--rule); font: 600 .86rem/1 var(--sans); text-decoration: none; color: var(--ink); }
.h3-more::after { content: "\2002\2192"; color: var(--gold); }
.h3-card--feat .h3-more { color: var(--gold-soft); border-top-color: rgba(239,234,224,.15); }
.h3-inline-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; margin: 2.25rem 0 0; max-width: none; }
.h3-inline-cta span { font-size: .88rem; color: var(--muted); }
.h3-spec-wrap { overflow-x: auto; border: 1px solid var(--rule); background: #fff; }
.h3-spec { width: 100%; border-collapse: collapse; font-size: .92rem; min-width: 52rem; }
.h3-spec th, .h3-spec td { text-align: left; vertical-align: top; padding: 1rem 1.1rem; border-bottom: 1px solid var(--rule); }
.h3-spec thead th { font: 600 .66rem/1.2 var(--sans); letter-spacing: .15em; text-transform: uppercase; color: var(--muted); background: var(--paper); }
.h3-spec tbody th { font: 400 1.2rem/1.2 var(--serif); color: var(--ink); white-space: nowrap; }
.h3-spec td { color: var(--graphite); }
.h3-spec td.is-open { color: #8a4b12; }
.h3-spec__link a { font-weight: 600; text-decoration: none; white-space: nowrap; }
.h3-spec tbody tr:last-child th, .h3-spec tbody tr:last-child td { border-bottom: 0; }
.h3-small { font-size: .78rem; color: var(--muted); margin: .9rem 0 0; max-width: none; }
.h3-three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; }
.h3-three > div { border-top: 1px solid var(--ink); padding-top: 1.3rem; }
.h3-three h3 { font: 400 1.6rem/1.15 var(--serif); margin: 0 0 .7rem; letter-spacing: 0; }
.h3-three p { margin: 0 0 1rem; color: var(--graphite); font-size: .95rem; }
.h3-steps { list-style: none; counter-reset: st; padding: 0; margin: 0; max-width: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; }
.h3-steps li { counter-increment: st; border-top: 1px solid var(--ink); padding-top: 1.2rem; }
.h3-steps li::before { content: counter(st, decimal-leading-zero); display: block; font: 400 2.3rem/1 var(--serif); color: var(--gold); margin-bottom: .9rem; }
.h3-steps h3 { font: 600 1.0625rem/1.35 var(--sans); margin: 0 0 .45rem; }
.h3-steps p { margin: 0; font-size: .92rem; color: var(--graphite); }
.h3-who { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4rem; }
.h3-who h3 { font: 600 .7rem/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--muted); margin: 0 0 1rem; }
.h3-list { list-style: none; padding: 0; margin: 0; max-width: none; border-top: 1px solid var(--rule); }
.h3-list li { position: relative; padding: .95rem 0 .95rem 1.6rem; border-bottom: 1px solid var(--rule); font-weight: 500; }
.h3-list li::before { content: ""; position: absolute; left: 0; top: 1.45rem; width: .42rem; height: .42rem; background: var(--gold); }
.h3-list--no li { font-weight: 400; color: var(--graphite); }
.h3-list--no li::before { background: transparent; border: 1px solid var(--muted); }
.h3-standards { margin-top: 3.5rem; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--ink); }
.h3-standards div { padding: 1.3rem 1.2rem 0 0; }
.h3-standards strong { display: block; font: 400 1.5rem/1.15 var(--serif); font-weight: 400; }
.h3-standards span { display: block; margin-top: .45rem; font-size: .84rem; color: var(--muted); }
.h3-res { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--rule); border-left: 1px solid var(--rule); }
.h3-res a { display: block; background: #fff; padding: 1.4rem 1.35rem 1.6rem; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); text-decoration: none; }
.h3-res a:hover strong { color: var(--gold); }
.h3-res strong { display: block; font: 400 1.22rem/1.2 var(--serif); font-weight: 400; margin-bottom: .45rem; color: var(--ink); }
.h3-res span { font-size: .82rem; color: var(--muted); }
.h3-co { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 4rem; align-items: start; }
.h3-co h2 { max-width: 18ch; }
.h3-co__text p { color: var(--graphite); max-width: 50ch; margin: 0 0 1.75rem; }
.h3-terms { margin: 0; border: 1px solid var(--rule); background: #fff; padding: .4rem 1.6rem; }
.h3-terms div { padding: 1rem 0; border-bottom: 1px solid var(--rule); }
.h3-terms div:last-child { border-bottom: 0; }
.h3-terms dt { font: 600 .66rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.h3-terms dd { margin: .4rem 0 0; font-size: .95rem; }
.commerce-head h1 { max-width: 20ch; }
.commerce-head__cta { margin-top: 2rem; }
.commerce-body { padding-top: clamp(2.5rem, 5vw, 4rem); padding-bottom: clamp(3rem, 6vw, 5rem); }
.commerce-prose h2 { font: 400 clamp(1.8rem, 3vw, 2.4rem)/1.1 var(--serif); margin: 2.75rem 0 1rem; }
.commerce-prose h3 { font: 600 1.1rem/1.3 var(--sans); margin: 1.75rem 0 .5rem; }
.commerce-prose table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--rule); font-size: .92rem; margin: 1.25rem 0; }
.commerce-prose th, .commerce-prose td { text-align: left; vertical-align: top; padding: .85rem 1rem; border-bottom: 1px solid var(--rule); }
.commerce-prose thead th { font: 600 .66rem/1.2 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); background: var(--paper); }
.commerce-prose > * { max-width: 72ch; }
.commerce-prose > table { max-width: none; }
.commerce-children { margin-top: 3.5rem; }
.commerce-body > .commerce-children:first-child { margin-top: 0; margin-bottom: 3rem; }
.commerce-children h2 { font: 400 1.9rem/1.1 var(--serif); margin: 0 0 1.25rem; }
.quote-band { background: var(--night); color: var(--on-dark-2); padding: clamp(3.5rem, 7vw, 5.5rem) 0; }
.quote-band__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 2rem 4rem; align-items: end; }
.quote-band h2 { font: 400 clamp(2.3rem, 4.6vw, 4rem)/1.02 var(--serif); color: var(--on-dark); margin: 0; max-width: 13ch; }
.quote-band p { margin: 0 0 1.75rem; color: var(--on-dark-2); max-width: 46ch; }
@media (max-width: 60rem) {
  .h3-cards, .h3-three, .h3-co, .quote-band__grid { grid-template-columns: minmax(0, 1fr); }
  .h3-steps, .h3-res, .h3-standards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .h3-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .h3-facts div:nth-child(3) { padding-left: 0; border-left: 0; }
  .h3-facts div:nth-child(n+3) { border-top: 1px solid rgba(239,234,224,.14); }
  .h3-head { grid-template-columns: minmax(0, 1fr); }
  .h3-head > p { justify-self: start; }
  .commerce-prose table { display: block; overflow-x: auto; }
}
@media (max-width: 40rem) {
  .h3-steps, .h3-res, .h3-standards, .h3-who { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .home3 .hero__inner { padding-top: 5.5rem; }
  .h3-facts dt { font-size: 1.2rem; }
  .h3-card--feat h3 { font-size: 2.1rem; }
}
.header-cta--gold[aria-current] { background: #cdb07a; border-color: #cdb07a; color: var(--night); }
.h3-estab { margin: 1.1rem 0 0; font-size: .82rem; color: var(--stone); }
.h3-estab a { color: var(--on-dark-2); }
.bform__note { margin: 0; font-size: .82rem; color: var(--muted); }
.guide-sources { margin-top: 3rem; padding-left: 0; padding-right: 0; }

/* ==========================================================================
   Mobile QA (14 Sep 2026, CLAUDE.md s.14): compact header, hero above the
   fold, 16px form inputs (no iOS zoom), 44px touch targets, legible labels.
   ========================================================================== */
.bform input[type=text], .bform input[type=email], .bform input[type=tel], .bform input[type=url], .bform input[type=number], .bform select, .bform textarea { font-size: 1rem; }
.h3-spec thead th, .h3-card .h3-card__k, .h3-terms dt { font-size: .72rem; }
.bform__errlist { margin: .35rem 0 0; padding-left: 1.1rem; }
.bform__errlist li { margin: .2rem 0; }
.bform__errlist a { color: #6d1f14; font-weight: 600; }
@media (max-width: 40rem) {
  .util-bar { display: none; }
  .site-header__inner { min-height: 0; padding-top: .75rem; padding-bottom: 0; gap: .5rem .75rem; flex-wrap: wrap; }
  .brand { order: 1; flex: 1 1 auto; min-width: 0; min-height: 2.75rem; }
  .brand__name { font-size: .74rem; letter-spacing: .14em; line-height: 1.3; }
  .header-ctas { order: 2; width: auto; flex: none; }
  .header-ctas .header-cta { flex: none; display: block; }
  .header-ctas .header-cta:not(.header-cta--gold) { display: none; }
  .header-cta--gold { padding: .85rem .8rem; font-size: .66rem; letter-spacing: .1em; }
  .nav { order: 3; flex: 1 0 100%; width: auto; margin: 0 calc(-1 * var(--space)); padding: 0 var(--space); flex-wrap: nowrap; overflow-x: auto; gap: 1.35rem; scrollbar-width: none; border-top: 1px solid var(--rule-dark); }
  .nav::-webkit-scrollbar { display: none; }
  .nav a { flex: none; padding: 1rem 0 .9rem; white-space: nowrap; font-size: .68rem; letter-spacing: .12em; }
  .photo--hero .photo__caption { top: auto; bottom: .6rem; font-size: .66rem; }
  .hero__inner, .home3 .hero__inner { padding-top: 2.25rem; padding-bottom: 3rem; }
  .bform__opts label, .bform__check { min-height: 2.75rem; align-items: center; padding: .15rem 0; font-size: .95rem; }
  .bform__opts input, .bform__check input { width: 1.25rem; height: 1.25rem; margin: 0; }
  .bform__label, .bform__choice > legend { font-size: .9rem; }
  .bform__help, .bform__submit p { font-size: .82rem; }
  .bform__submit .btn { width: 100%; }
}
@media (max-width: 40rem) {
  .nav { gap: 1.1rem; }
  .prose td:nth-child(2):last-child { color: inherit; font-size: inherit; }
  .prose td[data-label]:not(:first-child)::before { font-size: .7rem; margin-bottom: .1rem; }
}
@media (max-width: 40rem) { .nav { gap: 1rem; } }

/* Commercial IA v4 (14 Sep 2026): product quote links, how-to-enquire steps, nav scroll hint */
.h3-more--quote { margin-left: 1.25rem; color: var(--gold); }
.h3-card--feat .h3-more--quote { color: var(--gold-soft); }
.h3-enquire { list-style: none; counter-reset: enq; display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; margin: 1.1rem 0 0; padding: 0; font-size: .82rem; color: var(--on-dark-2); }
.h3-enquire li { counter-increment: enq; display: flex; gap: .45rem; align-items: baseline; }
.h3-enquire li::before { content: counter(enq); font: 600 .7rem/1 var(--sans); color: var(--gold-soft); border: 1px solid rgba(184,153,92,.55); border-radius: 50%; width: 1.25rem; height: 1.25rem; display: inline-flex; align-items: center; justify-content: center; flex: none; }
@media (max-width: 40rem) {
  .nav { -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); padding-right: 2rem; }
  .h3-enquire { flex-direction: column; gap: .45rem; }
  .h3-more--quote { margin-left: 0; display: inline-block; margin-top: .6rem; }
}

/* D91: company-only form fields hidden for private buyers */
.bform__field[hidden]{display:none!important}

/* ==========================================================================
   Multilingual prototype (D92): Arabic, right-to-left. System Arabic fonts (no font
   downloads, £0). Arabic script never takes letter-spacing (it breaks the joins);
   physical sides are mirrored; English evidence tables stay left-to-right.
   ========================================================================== */
.lang-note { font-size: .82em; font-weight: 400; color: var(--muted); white-space: nowrap; text-transform: none; }
.nav-lang { font-weight: 600 !important; color: var(--gold-soft) !important; }
.ltr-block { direction: ltr; text-align: left; }
[dir="rtl"] {
  --serif: "Libre Caslon Display", "Noto Naskh Arabic", "Amiri", "Traditional Arabic", "Sakkal Majalla", "Times New Roman", serif;
  --sans: "Instrument Sans", "Noto Sans Arabic", "Segoe UI", Tahoma, "Geeza Pro", system-ui, sans-serif;
}
[dir="rtl"] *, [dir="rtl"] *::before, [dir="rtl"] *::after { letter-spacing: 0 !important; }
[dir="rtl"] body { line-height: 1.75; }
[dir="rtl"] h1, [dir="rtl"] h2, [dir="rtl"] h3 { line-height: 1.4; }
[dir="rtl"] .hero__title { line-height: 1.28; font-size: clamp(2.5rem, 7vw, 5.4rem); max-width: 16ch; }
[dir="rtl"] .home h2, [dir="rtl"] .quote-band h2, [dir="rtl"] .commerce-prose h2, [dir="rtl"] .commerce-children h2 { line-height: 1.3; }
[dir="rtl"] .h3-card h3, [dir="rtl"] .h3-three h3, [dir="rtl"] .h3-standards strong, [dir="rtl"] .h3-res strong { line-height: 1.35; }
[dir="rtl"] .h3-spec th, [dir="rtl"] .h3-spec td, [dir="rtl"] .prose th, [dir="rtl"] .prose td,
[dir="rtl"] .commerce-prose th, [dir="rtl"] .commerce-prose td, [dir="rtl"] .patterns__table th, [dir="rtl"] .patterns__table td { text-align: right; }
[dir="rtl"] .h3-spec tbody th { white-space: normal; }
[dir="rtl"] .answer { border-left: 0; border-right: 3px solid var(--gold); }
[dir="rtl"] .prose blockquote { border-left: 0; border-right: 2px solid var(--rule); margin-right: 0; padding-left: 0; padding-right: 1rem; }
[dir="rtl"] .hero__status { padding-left: 0; padding-right: 1.25rem; border-left: 0; border-right: 1px solid var(--gold-soft); }
[dir="rtl"] .desk-estab { border-left: 0; border-right: 1px solid var(--gold-soft); padding: .15rem 1.1rem .15rem 0; }
[dir="rtl"] .desk-side__block ol, [dir="rtl"] .desk-side__block ul, [dir="rtl"] .bform__errlist { padding-left: 0; padding-right: 1.1rem; }
[dir="rtl"] .bform__summary { border-left-width: 1px; border-right-width: 4px; }
[dir="rtl"] .h3-facts div { padding: 1.4rem 0 1.7rem 1.4rem; }
[dir="rtl"] .h3-facts div + div { padding-right: 1.4rem; border-left: 0; border-right: 1px solid rgba(239,234,224,.14); }
[dir="rtl"] .h3-standards div { padding: 1.3rem 0 0 1.2rem; }
[dir="rtl"] .h3-list li, [dir="rtl"] .checklist li { padding-left: 0; padding-right: 1.6rem; }
[dir="rtl"] .h3-list li::before, [dir="rtl"] .checklist li::before { left: auto; right: 0; }
[dir="rtl"] .h3-res { border-left: 0; border-right: 1px solid var(--rule); }
[dir="rtl"] .h3-res a { border-right: 0; border-left: 1px solid var(--rule); }
[dir="rtl"] .h3-more--quote { margin-left: 0; margin-right: 1.25rem; }
[dir="rtl"] .arrow-link::after, [dir="rtl"] .h3-more::after, [dir="rtl"] .index-links a::after { content: "\2002\2190"; }
[dir="rtl"] .photo--hero .photo__caption { right: auto; left: var(--space); text-align: left; }
[dir="rtl"] .bform input[type=email], [dir="rtl"] .bform input[type=url], [dir="rtl"] .bform input[type=tel], [dir="rtl"] .bform input[type=number] { direction: ltr; text-align: right; }
[dir="rtl"] .bform__check input, [dir="rtl"] .bform__opts input { margin-left: .5rem; margin-right: 0; }
@media (max-width: 60rem) {
  [dir="rtl"] .h3-facts div:nth-child(3) { padding-right: 0; border-right: 0; }
}
@media (max-width: 40rem) {
  [dir="rtl"] .nav { -webkit-mask-image: linear-gradient(270deg, #000 88%, transparent); mask-image: linear-gradient(270deg, #000 88%, transparent); padding-right: var(--space); padding-left: 2rem; }
  [dir="rtl"] .nav a { font-size: .8rem; }
  [dir="rtl"] .h3-more--quote { margin-right: 0; }
  [dir="rtl"] .photo--hero .photo__caption { left: var(--space); right: var(--space); text-align: right; justify-content: flex-start; }
  [dir="rtl"] .header-cta--gold { font-size: .8rem; }
  [dir="rtl"] .hero__title { font-size: 2.35rem; }
}

/* D92 RTL fix: off-screen helpers must sit beyond the inline-END side. In RTL, content pushed
   to the left is scrollable, so the skip link and the form honeypot move to the right. */
[dir="rtl"] .skip { left: auto; right: -999px; }
[dir="rtl"] .skip:focus { right: 1rem; left: auto; }
[dir="rtl"] .bform__hp { left: auto !important; right: -10000px; }

/* Contain absolutely positioned helpers (visually-hidden header) inside the scrolling spec table, so it cannot widen the page on phones */
.h3-spec-wrap { position: relative; }

/* ==========================================================================
   D93: language bar (all screen sizes) and script-specific type for Chinese and Cyrillic.
   System fonts only (no downloads, £0). The Latin webfont subsets have no Cyrillic or CJK glyphs.
   ========================================================================== */
.lang-bar { background: #08090a; border-bottom: 1px solid rgba(239,234,224,.08); font-size: .78rem; line-height: 1.2; }
.lang-bar__inner { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .15rem 1.15rem; padding-top: .35rem; padding-bottom: .35rem; }
.lang-bar a { color: var(--stone); text-decoration: none; padding: .45rem 0; }
.lang-bar a:hover { color: var(--on-dark); }
.lang-bar a[aria-current] { color: var(--gold-soft); font-weight: 600; }
.nav-lang { display: none; }
@media (max-width: 40rem) {
  .lang-bar__inner { justify-content: center; gap: .1rem 1rem; }
  .lang-bar a { padding: .6rem 0; font-size: .8rem; }
}
html:lang(zh) {
  --serif: "Libre Caslon Display", "Songti SC", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif;
  --sans: "Instrument Sans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;
}
html:lang(zh) *, html:lang(zh) *::before, html:lang(zh) *::after { letter-spacing: 0 !important; }
html:lang(zh) body { line-height: 1.8; }
html:lang(zh) h1, html:lang(zh) h2, html:lang(zh) h3 { line-height: 1.35; }
html:lang(zh) .hero__title { line-height: 1.25; font-size: clamp(2.4rem, 7vw, 5.2rem); max-width: 14ch; }
html:lang(zh) .home h2, html:lang(zh) .quote-band h2, html:lang(zh) .commerce-prose h2 { line-height: 1.3; }
html:lang(ru), html:lang(uk) {
  --serif: "Libre Caslon Display", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;
  --sans: "Instrument Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
html:lang(ru) .hero__title, html:lang(uk) .hero__title { font-size: clamp(2.3rem, 6.6vw, 5.4rem); line-height: 1.06; max-width: 17ch; }
html:lang(ru) .h3-card h3, html:lang(uk) .h3-card h3 { font-size: 1.7rem; line-height: 1.15; }
html:lang(ru) .h3-card--feat h3, html:lang(uk) .h3-card--feat h3 { font-size: 2rem; }
html:lang(ru) h1, html:lang(ru) h2, html:lang(ru) h3, html:lang(uk) h1, html:lang(uk) h2, html:lang(uk) h3 { overflow-wrap: break-word; hyphens: auto; }
@media (max-width: 40rem) {
  html:lang(ru) .hero__title, html:lang(uk) .hero__title { font-size: 2.2rem; }
  html:lang(zh) .hero__title { font-size: 2.3rem; }
  html:lang(ru) .nav a, html:lang(uk) .nav a { font-size: .66rem; }
}

/* ==========================================================================
   Post-launch audit fixes (8 Oct 2026). Accessibility, RTL and CTA placement only:
   no colour, typography, spacing scale or layout-style changes to the approved design.
   ========================================================================== */
/* Guide pages: the quote route near the top and once mid-page, matching the commercial template. */
.guide-actions { margin: 1.75rem 0 0; }
.guide-midcta { margin: 2rem 0 0; }
/* RTL: the table follows the page language; only Latin source citations are isolated left-to-right. */
[dir="rtl"] .evidence__src { direction: ltr; text-align: right; unicode-bidi: isolate; }
/* 1.4.11 Non-text contrast: form control boundary 1.73:1 → 3.30:1 (same hue, darker). */
.bform input[type=text], .bform input[type=email], .bform input[type=tel], .bform input[type=url],
.bform input[type=number], .bform input[type=month], .bform select, .bform textarea { border-color: #928d83; }
/* 1.4.11 / 2.4.7: the form's own focus ring was 2.71:1; --gold gives 5.87:1 and keeps the metal tone. */
.bform input:focus, .bform select:focus, .bform textarea:focus { outline-color: var(--gold); }
/* 1.4.3: placeholders had no authored colour (UA default ≈3.8:1); --muted gives 5.15:1. */
.bform ::placeholder { color: var(--muted); opacity: 1; }
/* 1.3.2 / 2.4.3: the quote button appears above the navigation below 1280px, so it now precedes it in the
   markup; at 1280px and wider the row keeps its approved order (brand · navigation · Request a quote). */
@media (min-width: 80rem) { .site-header__inner .nav { order: 2; } .site-header__inner .header-ctas { order: 3; } }
/* 2.4.7: the mobile navigation's fade mask also faded the keyboard focus ring at the right edge. */
@media (max-width: 40rem) {
  .nav:focus-within { -webkit-mask-image: none; mask-image: none; }
}
