/* Self-hosted site enhancement: accessibility toolbar + language menu.
   No third-party overlay. No external dependencies. */
.enh-bar{position:fixed;left:16px;bottom:16px;z-index:2147483000;display:flex;gap:8px;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.enh-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:44px;padding:8px 12px;border:1px solid rgba(0,0,0,.18);border-radius:10px;background:#ffffff;color:#1a1a1a;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.18)}
.enh-btn:hover{background:#f3f3f3}
.enh-btn:focus-visible{outline:3px solid #1f44c4;outline-offset:2px}
.enh-btn svg{width:20px;height:20px;flex:0 0 auto}
.enh-panel{position:fixed;left:16px;bottom:72px;z-index:2147483001;width:288px;max-width:calc(100vw - 32px);background:#ffffff;color:#1a1a1a;border:1px solid rgba(0,0,0,.18);border-radius:14px;box-shadow:0 8px 30px rgba(0,0,0,.28);padding:14px;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.enh-panel[hidden]{display:none}
.enh-panel h2{margin:0 0 10px;font-size:15px;font-weight:700;color:#1a1a1a}
.enh-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;border-top:1px solid #eee}
.enh-row:first-of-type{border-top:0}
.enh-row span{font-size:14px}
.enh-ctrl{display:inline-flex;gap:6px}
.enh-toggle{min-width:64px;min-height:38px;padding:6px 12px;border:1px solid rgba(0,0,0,.22);border-radius:8px;background:#f5f5f5;color:#1a1a1a;font-size:13px;font-weight:600;cursor:pointer}
.enh-toggle[aria-pressed="true"]{background:#1f44c4;border-color:#1f44c4;color:#fff}
.enh-toggle:focus-visible,.enh-step:focus-visible,.enh-reset:focus-visible,.enh-lang a:focus-visible{outline:3px solid #1f44c4;outline-offset:2px}
.enh-step{width:40px;height:38px;border:1px solid rgba(0,0,0,.22);border-radius:8px;background:#f5f5f5;color:#1a1a1a;font-size:17px;font-weight:700;cursor:pointer}
.enh-reset{margin-top:12px;width:100%;min-height:40px;border:1px solid rgba(0,0,0,.22);border-radius:8px;background:#fff;color:#1a1a1a;font-size:14px;font-weight:600;cursor:pointer}
.enh-reset:hover{background:#f3f3f3}
.enh-lang{position:fixed;left:16px;bottom:72px;z-index:2147483001;width:220px;max-width:calc(100vw - 32px);background:#fff;color:#1a1a1a;border:1px solid rgba(0,0,0,.18);border-radius:14px;box-shadow:0 8px 30px rgba(0,0,0,.28);padding:8px}
.enh-lang[hidden]{display:none}
.enh-lang ul{list-style:none;margin:0;padding:0}
.enh-lang a{display:block;padding:9px 10px;border-radius:8px;color:#1a1a1a;text-decoration:none;font-size:14px}
.enh-lang a:hover{background:#f3f3f3}
.enh-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* User toggles applied to <html> */
html.enh-contrast,html.enh-contrast body{background:#000 !important;color:#fff !important}
html.enh-contrast a{color:#ffe14d !important}
html.enh-contrast img{filter:none}
html.enh-links a{text-decoration:underline !important;outline:1px dashed currentColor;outline-offset:2px}
html.enh-readable body,html.enh-readable p,html.enh-readable li,html.enh-readable span,html.enh-readable a,html.enh-readable td,html.enh-readable div{font-family:Verdana,"Segoe UI",Tahoma,Arial,sans-serif !important;letter-spacing:.01em;line-height:1.7 !important}
@media (prefers-reduced-motion:no-preference){.enh-panel,.enh-lang{animation:enh-in .12s ease-out}}
@keyframes enh-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media print{.enh-bar,.enh-panel,.enh-lang{display:none !important}}


/* ============================================================
   SECTION LABELS - eyebrow / page-eyebrow / topic badge
   Added 2026-06-29. Token-adaptive, collision-free (lbl- prefix).
   Inherits each site palette via CSS variable fallbacks.
   ============================================================ */
.lbl-eyebrow{
  display:block;
  font-family:var(--sans,var(--body,ui-sans-serif,system-ui,sans-serif));
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  line-height:1.4;
  color:var(--accent,var(--gold,var(--cobalt,var(--navy,#8C6E4D))));
  margin:0 0 .55rem;
}
.lbl-pageeyebrow{
  display:block;
  font-family:var(--sans,var(--body,ui-sans-serif,system-ui,sans-serif));
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  line-height:1.4;
  color:var(--ink-2,var(--ink-mid,var(--ink-quiet,#5A635E)));
  margin:0 0 .85rem;
}
.lbl-badges{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  justify-content:center;
  margin:.7rem 0 0;
  padding:0;
  list-style:none;
}
.lbl-badge{
  display:inline-flex;
  align-items:center;
  font-family:var(--sans,var(--body,ui-sans-serif,system-ui,sans-serif));
  font-size:.7rem;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  line-height:1;
  color:var(--ink-2,var(--ink-mid,var(--ink-quiet,#5A635E)));
  background:transparent;
  border:1px solid var(--line,var(--rule,var(--hairline,rgba(0,0,0,.16))));
  border-radius:999px;
  padding:.5em .9em;
}
.lbl-badge--accent{
  color:var(--accent,var(--gold,var(--cobalt,var(--navy,#8C6E4D))));
}
@media (max-width:480px){
  .lbl-pageeyebrow{letter-spacing:.16em}
  .lbl-eyebrow{letter-spacing:.13em}
}


/* ============================================================
   BOTTOM-OF-PAGE FINE PRINT
   Applied 2026-07-11, 10:12 AM CT (America/Chicago).
   Scope: footer, trust layer / structured summary, disclosures,
   last-updated stamp, copyright and legal lines, citation notes.
   Changes SIZE, WEIGHT and COLOR only. No wording, no link
   targets, no JSON-LD, no markup, no structure changed.

   ACCESSIBILITY FLOOR, enforced, not optional:
     minimum effective size  13px  (0.8125rem)
     minimum contrast        4.5:1 WCAG AA, normal text
   Several bottom-of-page values shipped BELOW AA before this
   change. They are corrected here, not preserved.

   Selectors are prefixed html body and carry !important so they
   win over the inline styles on the trust layer regardless of
   stylesheet order. No HTML file is modified.
   ============================================================ */
html body{
  --fp-size:13.5px;    /* fine print body copy                */
  --fp-min:13px;       /* hard floor, never smaller           */
  --fp-sub:14px;       /* sub-heading inside the trust layer  */
  --fp-ink:#5A6070;    /* AA: 6.28:1 on #FFF, 5.92:1 on #FAF8F2,
                              6.02:1 on #FAFAFA, 5.27:1 on #EEEBE3 */
  --fp-strong:#1D1D1F; /* emphasis, 16.12:1 on #FAFAFA        */
}

/* ---- Trust layer, Institutional Identity, Structured Summary ----
   Was 14.5px. Now 13.5px. Inline styled, so !important is required. */
html body aside[data-trust-layer]{
  font-size:var(--fp-size) !important;
  line-height:1.62 !important;
  font-weight:400 !important;
  color:var(--fp-ink) !important;
}
html body aside[data-trust-layer] p,
html body aside[data-trust-layer] li,
html body aside[data-trust-layer] ul,
html body aside[data-trust-layer] span{
  font-size:var(--fp-size) !important;
  color:var(--fp-ink) !important;
}
/* Eyebrow labels were 11px at #8a8f98, 3.11:1, an AA failure and below
   the 13px floor. Raised to the floor and recoloured to AA. Weight,
   tracking and uppercase are kept, so the hierarchy inside the block
   still reads. */
html body aside[data-trust-layer] div[style*="letter-spacing"]{
  font-size:var(--fp-min) !important;
  color:var(--fp-ink) !important;
}
/* Sub-headings inside the block: 16px down to 14px, weight held at 600. */
html body aside[data-trust-layer] div[style*="font-weight:600"]{
  font-size:var(--fp-sub) !important;
  color:var(--fp-strong) !important;
}
html body aside[data-trust-layer] strong{ color:var(--fp-strong) !important; }
/* Source links keep their existing colour, #586173 at 5.97:1, already AA. */

/* ---- Footer legal, disclaimer and copyright lines ----
   Were 12.5px, below the floor, at 3.64:1 / 2.95:1 / 2.78:1, all AA
   failures. Now at the 13px floor and AA compliant. */
html body footer .legal{
  font-size:var(--fp-min) !important;
  font-weight:400 !important;
  line-height:1.55 !important;
  color:var(--fp-ink) !important;
}
html body footer .pl a{
  font-size:var(--fp-min) !important;
  color:var(--fp-ink) !important;
}
html body footer .note,
html body footer small{
  font-size:var(--fp-min) !important;
  color:var(--fp-ink) !important;
}
/* Network eyebrow in the footer, was 11px at 2.47:1. */
html body footer .fnet-h{
  font-size:var(--fp-min) !important;
  color:var(--fp-ink) !important;
}
/* Policy link row, inline styled at 12.5px and #8a8a8a, 3.45:1 on white
   and 2.90:1 on paper, both AA failures. */
html body div[data-legal="links"],
html body div[data-legal="links"] a{
  font-size:var(--fp-min) !important;
  color:var(--fp-ink) !important;
}

/* ---- Footer base text floor ----
   Subpage footers render their copyright and stamp line at 0.72rem
   (11.52px), below the 13px accessibility floor. Raised to the floor.
   hillmanv.com uses a separate large dark footer (.bigfoot) whose
   children are already sized at or above the floor, so it is excluded. */
html body footer:not(.bigfoot){ font-size:13px !important; }
/* Footer base colour floor. Some subpage footers ship a washed value, for
   example #9690A8 on #FAF9FE at 2.93:1, an AA failure. Held at the muted
   but AA-passing fine-print ink. Size down, do not wash out. */
html body footer:not(.bigfoot){ color:var(--fp-ink) !important; }

/* ---- Retaining-counsel disclosure band ----
   Inline styled at 11.5px and #9aa0ab: 2.29:1 on paper, 2.63:1 on white,
   2.47:1 on tint. Hard AA failures, and below the 13px floor. Raised to the
   floor and held at the AA-passing fine-print ink. Accent link colours are
   left as they are, all already pass AA. */
html body div[data-legal="atty"]{
  font-size:13px !important;
  line-height:1.5 !important;
  color:var(--fp-ink) !important;
}
html body div[data-legal="atty"] a{ font-size:13px !important; }

/* ---- Footer locality and clock line ---- was 11px, below the floor. */
html body .dallas-clock{
  font-size:13px !important;
  color:var(--fp-ink) !important;
}
