/* ==========================================================================
   AAAnow site footer, the single source of truth.
   One footer, one code base: this file and assets/site-footer.js are the ONLY
   place the footer exists. Pages carry one line:
     <script id="site-footer" src="assets/site-footer.js" defer></script>
   Never paste footer CSS or footer markup into a page again.
   Baked from footer-options 6a, 13 Aug 2026. Consolidated 4 September 2026.
   ========================================================================== */
/* ---- Footer (shared standard, baked 13 Aug 2026 · from footer-options 6a) ---- */
.site-footer .h { font-weight: 600; font-size: 9.5px; letter-spacing: 1.8px; text-transform: uppercase; color: #e8c56b; margin: 0 0 12px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
.site-footer .h .hl { color: inherit; }
.site-footer .h.sub { margin-top: 24px; }
.site-footer .links { display: flex; flex-direction: column; gap: 8px; }
.site-footer a { text-decoration: none; }
.site-footer .links a { font-size: 12.5px; line-height: 1.5; color: #c4d2ce; }
.site-footer .links a:hover { color: #f4f1ea; }
.site-footer .status { display: inline-flex; align-items: center; gap: 7px; }
.site-footer .dot { display: inline-block; width: 7px; height: 7px; border-radius: 999px; background: #2f8a4c; }
.site-footer .sh { font-weight: 600; font-size: 9.5px; letter-spacing: 1.8px; text-transform: uppercase; color: #a3c0ba; margin: 0 0 8px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
.site-footer .txt { font-size: 10.5px; line-height: 1.7; color: #9db8b3; margin: 0; max-width: 106ch; }
.site-footer .txt em { font-style: normal; }
  .site-footer { display: block; background: #f8f7f0; padding: 40px 0 34px; font-family: 'Funnel Display', Candara, sans-serif; font-weight: 300; }
  .site-footer .in { max-width: 1400px; margin: 0 auto; padding: 0 44px; }
  .site-footer .plate { position: relative; background: #082f2f; border-radius: clamp(16px, 1.8vw, 26px); padding: clamp(26px, 2.7vw, 36px) clamp(32px, 3.8vw, 58px) clamp(22px, 2.4vw, 32px); overflow: hidden; display: grid; grid-template-columns: 190px 1px minmax(0,1fr); grid-template-rows: auto 1fr auto; grid-template-areas: "brand . ." "rail vrule field" "bottoml vrule bottomr"; gap: 0 clamp(32px, 3vw, 52px); }
  .site-footer .plate::before { content: ""; position: absolute; inset: 0; border-radius: inherit; border: 1px solid rgba(244,241,234,.12); pointer-events: none; }
  .site-footer .plate::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(80% 120% at 100% 0%, rgba(255,255,255,.05) 0%, transparent 60%); }
  .site-footer .plate > * { position: relative; z-index: 1; }
  .site-footer .brandrow { grid-area: brand; padding-bottom: 30px; }
  .site-footer .brandrow svg { height: 28px; width: auto; display: block; }
  .site-footer .vrule { grid-area: vrule; background: rgba(244,241,234,.12); margin: 6px 0 2px; }
  .site-footer .rail { grid-area: rail; }
  /* left-side spacing halved: heading-to-item 5px, label-to-value 2px */
  .site-footer .rail .h { margin: 0 0 5px; }
  .site-footer .rail .h.ab { margin-top: 0; }
  .site-footer .rail .h.ct { margin: 26px 0 8px; }
  .site-footer .pl { margin: 0 0 2px; font-weight: 600; font-size: 9.5px; letter-spacing: 1.8px; text-transform: uppercase; color: #9db8b3; }
  .site-footer .pair { margin: 0 0 14px; }
  .site-footer .pair:last-of-type { margin-bottom: 0; }
  .site-footer .sysv { margin-top: 8px; }
  .site-footer .pv { margin: 0; font-size: 12.5px; line-height: 1.55; color: #c4d2ce; }
  .site-footer .pv a { color: #c4d2ce; text-decoration: none; padding-bottom: 1px; transition: color .15s ease; }
  .site-footer .pv a:hover { color: #f4f1ea; }
  .site-footer .field { grid-area: field; }
  .site-footer .cols { display: grid; grid-template-columns: minmax(0,0.95fr) minmax(0,1fr) minmax(0,1.35fr) minmax(0,1.15fr); gap: 50px clamp(30px, 2.6vw, 42px); }
  .site-footer .h.sub { margin-top: 34px; }
  /* column nudges, 23 Aug 2026 */
  @media (min-width: 1181px) {
    .site-footer .cols .col:nth-child(2) { position: relative; left: -5px; }
    .site-footer .cols .col:nth-child(3) { position: relative; left: 11px; }
    .site-footer .cols .col:nth-child(4) { position: relative; left: 31px; }
  }
  .site-footer .links { gap: 6px; }
  .site-footer .links a { padding-bottom: 2px; transition: color .15s ease; align-self: start; display: inline-block; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: top; }
  .site-footer .links a.status { display: inline-flex; max-width: none; }
  /* sector labels (Use cases column, 7 Sep 2026) wrap rather than truncate */
  .site-footer #foot-usecases .links a { white-space: normal; overflow: visible; text-overflow: clip; }
  .site-footer .status .ext { width: 10px; height: 10px; margin-left: 6px; opacity: .65; flex: none; }
  .site-footer .pv .ext { display: inline-block; width: 10px; height: 10px; margin-left: 6px; opacity: .65; vertical-align: -1px; }
  .site-footer .links a:hover { color: #f4f1ea; }
  .site-footer .h .hl { transition: color .15s ease; }
  .site-footer .h .hl:hover { color: #f4f1ea; }
  /* the underline BUILDS from the left on hover: 1px soft gold, quick but subtle */
  .site-footer .pv a, .site-footer .links a, .site-footer .h .hl { position: relative; }
  .site-footer .pv a::after, .site-footer .links a::after, .site-footer .h .hl::after { content: ""; position: absolute; left: 0; bottom: -2px; height: 1px; width: 0; background: rgba(232,197,107,.55); transition: width .45s cubic-bezier(.22,.61,.36,1); }
  .site-footer .pv a:hover::after, .site-footer .links a:hover::after, .site-footer .h .hl:hover::after { width: 100%; }
  .site-footer .links a::after { bottom: 0; }
  @media (prefers-reduced-motion: reduce) { .site-footer .pv a::after, .site-footer .links a::after, .site-footer .h .hl::after { transition: none; } }
  /* articles: one line only, ellipsised when longer */
  /* the closing row: copyright lower left, strapline lower right, a little more air beneath */
  .site-footer .bottoml { grid-area: bottoml; align-self: end; padding-top: 36px; }
  .site-footer .bottomr { grid-area: bottomr; align-self: end; padding-top: 36px; display: flex; justify-content: flex-end; }
  .site-footer .microline { font-size: 10.5px; color: #8aa8a2; margin: 0; }
  .site-footer .strapline { margin: 0; font-weight: 600; font-size: 10.5px; letter-spacing: 1.6px; text-transform: uppercase; color: rgba(232,197,107,.72); text-align: right; }
  @media (max-width: 1180px) {
    .site-footer .plate { grid-template-columns: minmax(0,1fr); grid-template-rows: auto; grid-template-areas: "brand" "rail" "field" "bottoml" "bottomr"; }
    .site-footer .vrule { display: none; }
    .site-footer .rail { margin-bottom: 36px; }
    .site-footer .cols { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .site-footer .bottoml { padding-top: 32px; }
    .site-footer .bottomr { padding-top: 10px; justify-content: flex-start; }
    .site-footer .strapline { text-align: left; }
  }
  @media (max-width: 640px) { .site-footer .cols { grid-template-columns: minmax(0,1fr); } .site-footer .in { padding: 0 20px; } }
  /* stacked order, 23 Aug 2026: menu columns first, About and Contact last */
  @media (max-width: 1180px) {
    .site-footer .plate { grid-template-areas: "brand" "field" "rail" "bottoml" "bottomr"; }
    .site-footer .rail { margin: 40px 0 0; }
    .site-footer .cols .col:nth-child(1) { order: 4; }
    .site-footer .cols .col:nth-child(2) { order: 1; }
    .site-footer .cols .col:nth-child(3) { order: 2; }
    .site-footer .cols .col:nth-child(4) { order: 3; }
  }
  /* statements as the site's ruled ledger, not a dump: gold label rail, ruled rows */
  .site-footer .statements { max-width: 1400px; margin: 30px auto 0; display: block; gap: 0; padding-left: clamp(32px, 3.8vw, 58px); }
  .site-footer .stmt { display: block; padding: 0 0 20px; }
  .site-footer .statements .sh { margin: 0 0 8px; color: #715316; }
  .site-footer .statements .txt { margin: 0; font-size: 11.5px; line-height: 1.75; color: #4f4d47; max-width: 92ch; }
  /* Legal block, moved beside the disclaimer 23 Aug 2026 */
  .site-footer .stmt-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(260px, 32%); gap: 0 clamp(40px, 4vw, 76px); align-items: start; }
  .site-footer .legal-blk .sh { margin: 0 0 10px; }
  .site-footer .legal-blk .lgl { display: flex; flex-wrap: wrap; gap: 9px 22px; }
  .site-footer .legal-blk .lgl a { font-size: 11.5px; line-height: 1.75; color: #4f4d47; transition: color .15s ease; }
  .site-footer .legal-blk .lgl a:hover { color: #715316; }
  .site-footer .links span.na { font-size: 12.5px; line-height: 1.5; color: #9db8b3; align-self: start; }
  .site-footer .links span.split { font-size: 12.5px; line-height: 1.5; color: #9db8b3; align-self: start; }
  .site-footer .links span.split a { display: inline; max-width: none; }
  @media (max-width: 900px) { .site-footer .stmt-row { grid-template-columns: 1fr; } .site-footer .legal-blk { padding-bottom: 22px; } }

/* Target size (WCAG 2.2 SC 2.5.8), 14 September 2026: the paired benchmark links sat at 22 by 18 px with 4 px between them. */
.site-footer .links span.split a { display: inline-block; box-sizing: content-box; min-width: 20px; height: 18px; max-width: none; padding: 3px 2px; line-height: 18px; text-align: center; vertical-align: middle; }

/* Benchmarks not yet complete (30 Sep. 2026, temporary): the menu entry is plain text with the branded tooltip, set exactly as the links around it. */
.site-footer .links span.bm-soon { font-size: 12.5px; line-height: 1.5; color: #c4d2ce; padding-bottom: 2px; align-self: start; display: inline-block; max-width: 100%; white-space: nowrap; vertical-align: top; cursor: help; transition: color .15s ease; }
.site-footer .links span.bm-soon:hover, .site-footer .links span.bm-soon:focus-visible { color: #f4f1ea; }
.site-footer .links span.bm-soon:focus-visible { outline: 1px solid rgba(232,197,107,.55); outline-offset: 2px; }
.site-footer .links span.split span.bm-soon { display: inline-block; box-sizing: content-box; min-width: 20px; height: 18px; max-width: none; padding: 3px 2px; line-height: 18px; text-align: center; vertical-align: middle; }

/* Mouse-over line at 3px below the letters (9 Oct. 2026). */
.site-footer .h .hl::after{bottom:-3px}
.site-footer .lgl a::after{bottom:0}
