/*!
 * vantage-pages.css — v13.6
 * Every rule the rebuilt pages depend on. Loaded by the child theme so
 * that page content can stay markup-only: WordPress strips CSS custom
 * property declarations out of post content, and this stylesheet is
 * entirely token-driven.
 *
 * Namespaces, all mutually exclusive:
 *   .vp     page shell (header, sections, rows, stats, CTA)
 *   .vsv    searchable service catalog, collapsible (.vsv__grp* grouping
 *           sub-namespace added v13.6, still .vsv)
 *   .vh     fractional FAQ (+ .vh__roles/.vh__role scoping cards, v13.8)
 *   .vfaq   collapsible Q&A accordion — added v13.8 (Fractional page, id 329)
 *   .vfr    fractional IH/safety toggle (Fractional page, id 329)
 *   .vtg    Both/IH/Safety toggle — added v13.6 (IH & Safety hub, id 323)
 *   .vf     Jetpack form styling
 *   .vnav   header nav      .vfoot  footer
 *   .vhr    Home hero (Direction B) — added v13.5
 *
 * v13.7 — Home hero (.vhr) becomes self-adjusting when there is no photo.
 * .vhr__media has always rendered as an empty graphite panel (owner call,
 * v13.5) — this used to permanently reserve a blank right-hand column.
 * Now `.vhr-b:has(.vhr__media:empty)` collapses to one centered column and
 * hides the empty panel; the two-column layout returns automatically the
 * moment a photo is ever placed inside .vhr__media. Pure CSS, no markup
 * change on the Home page. Also this session: removed the "Placement"
 * row from Home's "Three delivery modes" list (page content, not CSS) —
 * direct staffing/placement is treated as Staff Aug for a fixed period,
 * not a fourth mode; the heading already said "Three."
 *
 * v13.6 — Industrial Hygiene & Safety hub (323) rebuilt as a single toggle
 * page per owner direction 2026-08-13: hero rewritten (new eyebrow/H1/sub,
 * "Book a call" not "20-minute call", ladder removed, "What we offer"
 * scroll link replaces it), "Three Services"/"What Vantage does" renamed
 * to "Our Solutions"/"What Vantage offers" ON THIS PAGE ONLY (Home's own
 * copy is unchanged), three index rows (Industrial Hygiene / Occupational Safety /
 * Fractional CIH & CSP) rolled down from the old hub content, then a
 * Both/IH/Safety toggle (.vtg, new namespace — .vfr stays reserved for the
 * Fractional page's rate-table layout) holding two full .vsv catalog
 * instances (all 50 services preserved — the uploaded 8-11 toggle draft's
 * asbestos/lead/mold exclusion was NOT carried over; that content
 * exclusion question is closed, see DECISIONS-LOG.md), reorganized under
 * four buyer-question groups per catalog via new .vsv__grp/.vsv__grp-list
 * classes (2-column, click-to-expand — .vsv__grp-list uses CSS
 * column-count, not grid, so independent accordion rows can expand without
 * forcing row-height alignment across the two columns). Standalone catalog
 * pages 332/333 keep their own URLs and content; their "Related — OSHA
 * citation priorities" note also moved from the page bottom to a short
 * intro above the "25 SERVICES" controls (new .vsv__topnote class, dark
 * header context), same visit. The bottom "Not sure which of these you
 * need?" scoping CTA and the cross-link to the sibling catalog are
 * unchanged, still at the bottom.
 *
 * v13.3 — .vnav dropped position:sticky. The header was pinned to the top of
 * the viewport for the entire scroll (inherited from the parent theme's
 * `header{position:sticky}`, unchanged since 2026-07-29). Owner call
 * 2026-08-13: header should scroll away with the page like normal content,
 * not stay parked at the top eating space over everything below it.
 *
 * v13.4 — the v13.3 fix only touched .vnav. The parent theme's
 * `header{position:sticky}` (vantage.css lines 69/275/389/668) is a bare
 * TAG selector — it grabs every `<header>` element on the site, not just
 * the nav. Page content pastes in `.vp__header` (the hero block on every
 * rebuilt page) as an actual `<header>` tag too, so it inherited the same
 * sticky behaviour untouched: pins at the top of the viewport, later
 * sections scroll under it, gets shoved off only when the footer reaches
 * it. Confirmed live via screen recording 2026-08-13 — hero stuck through
 * the whole homepage scroll. Fixed at the root instead of per-class: this
 * rule overrides the parent's bare `header` selector directly, so no
 * `<header>`-tagged element anywhere on the site — now or in any future
 * pasted page — can inherit sticky from the parent again.
 *
 * v13.5 — adds .vhr, the Home hero from the 2026-08-11
 * "Hero-Direction-B" draft (two-column: copy panel + photo panel), ported
 * to replace the plain .vp__header on the Home page only. Two changes from
 * the draft, both owner calls 2026-08-13: (1) the photo panel is dropped —
 * .vhr__media renders as an empty graphite panel, no image; (2) the
 * draft's speculative "Crimson" accent hue is replaced with the site's
 * actual live brand accent, Oxblood (--vp-accent-dk), so the hero matches
 * the nav, footer and every other .vp--brand page instead of introducing a
 * seventh, never-adopted hue. Tokens are NOT redeclared — .vhr sits inside
 * `.vp.vp--brand` in the page markup and inherits --vp-graphite, --vp-paper,
 * --vp-accent-dk etc. directly. Also renamed the draft's "Embedded" tier
 * label to "Staff Aug" per Decision #29 (2026-08-11, DECISIONS-LOG.md),
 * and repointed "How engagements work" from the draft's dead /services/
 * link to /industrial-hygiene-safety/.
 */

header { position: static; }


/* ====================================================================
   1. PAGE SHELL — .vp
   ==================================================================== */

/* Default: brand. A .vp with no modifier renders Oxblood. */
.vp{--vp-accent:#8C3038;--vp-accent-dk:#E89497;}
/* Oxblood — Home, About, Projects, and any page not owned by a service line */
.vp.vp--brand{--vp-accent:#8C3038;--vp-accent-dk:#E89497;}
/* Steel — Industrial Hygiene & Safety */
.vp.vp--ihs{--vp-accent:#3B6EA5;--vp-accent-dk:#8DB3DE;}
/* Plum — Staffing */
.vp.vp--staffing{--vp-accent:#6B4079;--vp-accent-dk:#BE9BD9;}
/* Gold — Training */
.vp.vp--training{--vp-accent:#8A7310;--vp-accent-dk:#F0D53F;}
/* Steel — Industrial Hygiene & Safety */
.vp .vp__row--ih{--row-hue:#3B6EA5;}
/* Plum — Staffing */
.vp .vp__row--staffing{--row-hue:#6B4079;}
/* Gold — Training */
.vp .vp__row--training{--row-hue:#8A7310;}
.vp{
  --vp-graphite:#101418; --vp-paper:#F6F5F2; --vp-white:#FFFFFF;
  --vp-rule:#E4E1D9; --vp-rule-dk:#2A2E33;
  --vp-body:#45443F; --vp-body-dk:#D6D4CC;
  --vp-muted:#6C6A64; --vp-muted-dk:#B8B6AE;
  --vp-sans:Archivo,Helvetica,Arial,sans-serif;
  --vp-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --vp-max:880px;
  font-family:var(--vp-sans); color:var(--vp-body); background:var(--vp-white);
  line-height:1.55; -webkit-font-smoothing:antialiased;
}
.vp *,.vp *::before,.vp *::after{box-sizing:border-box;}
.vp p,.vp h1,.vp h2,.vp h3,.vp h4,.vp ul,.vp ol,.vp dl,.vp dd,.vp dt{margin:0;}
.vp p{text-wrap:pretty;}
.vp__wrap{max-width:var(--vp-max);margin:0 auto;padding:0 24px;}
.vp__eyebrow{font-family:var(--vp-mono);font-size:11px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;display:block;}

/* dark page header */
.vp__header{background:var(--vp-graphite);color:var(--vp-paper);padding:68px 0 60px;}
.vp__header .vp__eyebrow{color:var(--vp-accent-dk);}
.vp .vp__h1{font-size:40px;font-weight:600;line-height:1.1;letter-spacing:-.02em;
  color:var(--vp-paper);margin-top:18px;max-width:20ch;}
.vp .vp__lede{font-size:17px;color:var(--vp-body-dk);margin-top:22px;max-width:66ch;}
.vp .vp__lede b{color:var(--vp-paper);font-weight:600;}

/* header actions */
.vp__acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px;}
.vp__btn{display:inline-block;font-family:var(--vp-sans);font-size:15px;font-weight:600;
  padding:12px 20px;border-radius:0;text-decoration:none;border:1px solid transparent;
  transition:background .14s linear,color .14s linear;}
.vp__btn--pri{background:var(--vp-accent-dk);color:var(--vp-graphite);}
.vp__btn--pri:hover{background:var(--vp-paper);}
.vp__btn--sec{background:transparent;color:var(--vp-paper);border-color:var(--vp-rule-dk);}
.vp__btn--sec:hover{border-color:var(--vp-accent-dk);color:var(--vp-accent-dk);}
.vp__btn--light{background:var(--vp-graphite);color:var(--vp-paper);}
.vp__btn--light:hover{background:#2A2E33;border-color:var(--vp-accent-dk);}
.vp__btn:focus-visible{outline:2px solid var(--vp-accent-dk);outline-offset:2px;}

/* proof strip */
.vp__proof{border-top:1px solid var(--vp-rule-dk);margin-top:38px;padding-top:18px;
  font-family:var(--vp-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--vp-muted-dk);line-height:1.9;}

/* section */
.vp__sec{padding:56px 0;border-bottom:1px solid var(--vp-rule);}
.vp__sec:last-of-type{border-bottom:0;}
.vp__sec .vp__eyebrow{color:var(--vp-accent);padding-bottom:10px;
  border-bottom:2px solid var(--vp-rule);margin-bottom:26px;}
.vp .vp__h2{font-size:27px;font-weight:600;line-height:1.2;letter-spacing:-.015em;
  color:var(--vp-graphite);max-width:26ch;}
.vp .vp__h3{font-size:17px;font-weight:600;color:var(--vp-graphite);line-height:1.3;}
.vp .vp__p{font-size:16px;color:var(--vp-body);margin-top:16px;max-width:68ch;}
.vp .vp__p b,.vp .vp__p strong{color:var(--vp-graphite);font-weight:600;}
.vp__p + .vp__p{margin-top:14px;}

/* definition rows — services, modes */
.vp__rows{margin-top:28px;border-top:1px solid var(--vp-rule);}
.vp__row{display:grid;grid-template-columns:210px 1fr;gap:26px;
  padding:22px 0;border-bottom:1px solid var(--vp-rule);}
.vp__row dt{font-size:17px;font-weight:600;color:var(--vp-graphite);line-height:1.3;}
.vp__row dt small{display:block;font-family:var(--vp-mono);font-size:11px;font-weight:400;
  letter-spacing:.12em;text-transform:uppercase;color:var(--vp-accent);margin-top:7px;}
.vp__row dd{font-size:15px;color:var(--vp-body);}
.vp__row dd a{color:var(--vp-accent);font-weight:500;text-decoration:none;
  border-bottom:1px solid currentColor;}
@media(max-width:719px){.vp__row{grid-template-columns:1fr;gap:10px;}}

/* service-identifying rows — BRAND-SPEC: a family-overview page may carry all
   service hues as FLAT IDENTIFYING SWATCHES. The hue names the service; it is
   never decoration. Page chrome stays the brand hue. */
.vp__row--id{padding-left:18px;border-left:3px solid var(--row-hue);}
.vp__row--id dt small{color:var(--row-hue);}
.vp__row--id dd a{color:var(--row-hue);}
@media(max-width:719px){.vp__row--id{padding-left:14px;}}

/* chevron bullet list */
.vp__list{list-style:none;padding:0;margin:22px 0 0;}
.vp__list li{position:relative;padding-left:24px;font-size:16px;color:var(--vp-body);
  margin-bottom:13px;max-width:68ch;}
.vp__list li b{color:var(--vp-graphite);font-weight:600;}
.vp__list li::before{content:"";position:absolute;left:0;top:.52em;width:10px;height:9px;
  background:var(--vp-accent);
  clip-path:polygon(50% 0,100% 62%,88% 78%,50% 30%,12% 78%,0 62%);}

/* inline term list */
.vp__terms{font-size:15px;color:var(--vp-body);margin-top:14px;max-width:70ch;}
.vp__terms b{color:var(--vp-graphite);font-weight:600;}

/* stat grid */
.vp__stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin-top:28px;
  background:var(--vp-rule);border:1px solid var(--vp-rule);}
.vp__stat{background:var(--vp-white);padding:24px 22px;}
.vp__stat b{display:block;font-size:32px;font-weight:600;letter-spacing:-.02em;
  color:var(--vp-accent);line-height:1;}
.vp__stat span{display:block;font-family:var(--vp-mono);font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--vp-muted);margin-top:10px;}
.vp__stat p{font-size:14px;color:var(--vp-body);margin-top:12px;}
@media(max-width:719px){.vp__stats{grid-template-columns:1fr;}}

/* totals bar */
.vp__totals{display:flex;flex-wrap:wrap;gap:8px 34px;margin-top:26px;padding:20px 22px;
  background:var(--vp-paper);border:1px solid var(--vp-rule);}
.vp__totals div{font-size:15px;color:var(--vp-body);}
.vp__totals div b{display:block;font-size:22px;font-weight:600;color:var(--vp-graphite);
  letter-spacing:-.01em;}
.vp__totals div span{font-family:var(--vp-mono);font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--vp-muted);}

/* definition callout */
.vp__def{margin-top:24px;padding:20px 22px;background:var(--vp-paper);
  border-left:3px solid var(--vp-accent);}
.vp__def b{font-size:17px;font-weight:600;color:var(--vp-graphite);}
.vp__def i{font-family:var(--vp-mono);font-size:12px;font-style:normal;
  color:var(--vp-muted);margin-left:8px;}
.vp__def p{font-size:15px;color:var(--vp-body);margin-top:8px;}

/* footnote */
.vp__note{font-size:13px;color:var(--vp-muted);margin-top:18px;max-width:70ch;line-height:1.5;}

/* CTA band */
.vp__cta{background:var(--vp-graphite);color:var(--vp-paper);padding:54px 0;}
.vp__cta .vp__eyebrow{color:var(--vp-accent-dk);margin-bottom:16px;}
.vp .vp__cta-h{font-size:27px;font-weight:600;color:var(--vp-paper);line-height:1.2;
  letter-spacing:-.015em;max-width:24ch;}
.vp .vp__cta-p{font-size:16px;color:var(--vp-body-dk);margin-top:16px;max-width:62ch;}
.vp__cta-note{font-size:14px;color:var(--vp-muted-dk);margin-top:24px;}
.vp__cta-note b{color:var(--vp-paper);font-weight:600;}

@media(max-width:719px){
  .vp .vp__h1{font-size:31px;}
  .vp .vp__h2,.vp .vp__cta-h{font-size:23px;}
  .vp__header{padding:52px 0 46px;}
  .vp__sec{padding:44px 0;}
}
@media(prefers-reduced-motion:reduce){.vp *{transition:none !important;}}


/* ====================================================================
   2. SERVICE CATALOG — .vsv
   ==================================================================== */

/* Sage — Industrial Hygiene */
#vsv-ih{--c:#37795B;--c-dk:#74B898;--c-txt:#37795B;}
/* Sunset — Occupational Safety */
#vsv-sf{--c:#D2521A;--c-dk:#FF7A1A;--c-txt:#B24512;}
/* Gold — Training */
#vsv-tr{--c:#8A7310;--c-dk:#F0D53F;--c-txt:#8A7310;}
/* Steel — OSHA citation priorities */
#vsv-ct{--c:#3B6EA5;--c-dk:#8DB3DE;--c-txt:#3B6EA5;}

.vsv {
  --vsv-steel:#3B6EA5; --vsv-steel-dk:#8DB3DE;
  --vsv-graphite:#101418; --vsv-paper:#F6F5F2; --vsv-white:#FFFFFF;
  --vsv-rule:#E4E1D9; --vsv-rule-dk:#2A2E33;
  --vsv-body:#45443F; --vsv-body-dk:#D6D4CC;
  --vsv-muted:#6C6A64; --vsv-muted-dk:#B8B6AE;
  --vsv-sans:Archivo,Helvetica,Arial,sans-serif;
  --vsv-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --vsv-max:880px;
  font-family:var(--vsv-sans); color:var(--vsv-body); background:var(--vsv-white);
  line-height:1.55; -webkit-font-smoothing:antialiased;
}
.vsv *,.vsv *::before,.vsv *::after{box-sizing:border-box;}
.vsv p,.vsv h1,.vsv h2,.vsv h3,.vsv ul,.vsv ol{margin:0;}
.vsv p{text-wrap:pretty;}
.vsv__wrap{max-width:var(--vsv-max);margin:0 auto;padding:0 24px;}
.vsv__eyebrow{font-family:var(--vsv-mono);font-size:11px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;display:block;}

/* ── dark page header ── */
.vsv__header{background:var(--vsv-graphite);color:var(--vsv-paper);padding:68px 0 60px;}
.vsv__header .vsv__eyebrow{color:var(--c-dk);}
.vsv .vsv__h1{font-size:40px;font-weight:600;line-height:1.1;letter-spacing:-.02em;
  color:var(--vsv-paper);margin-top:18px;max-width:19ch;}
.vsv .vsv__lede{font-size:17px;color:var(--vsv-body-dk);margin-top:22px;max-width:64ch;}
.vsv .vsv__lede b{color:var(--vsv-paper);font-weight:600;}
.vsv .vsv__topnote{font-size:14.5px;color:var(--vsv-body-dk);margin-top:16px;max-width:64ch;}
.vsv .vsv__topnote a{color:var(--c-dk);font-weight:600;text-decoration:none;}
.vsv .vsv__topnote a:hover{text-decoration:underline;}

/* ── controls ── */
.vsv__controls{display:flex;gap:14px;align-items:center;flex-wrap:wrap;
  padding:22px 0;border-bottom:2px solid var(--vsv-rule);margin-bottom:2px;}
.vsv__count{font-family:var(--vsv-mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--vsv-muted);margin-right:auto;}
.vsv__filter{font-family:var(--vsv-sans);font-size:14px;color:var(--vsv-graphite);
  border:1px solid var(--vsv-rule);background:var(--vsv-white);padding:9px 12px;
  min-width:230px;border-radius:0;}
.vsv__filter:focus{outline:2px solid var(--c-txt);outline-offset:-1px;}
.vsv__btn{appearance:none;border:1px solid var(--vsv-rule);background:var(--vsv-white);
  font-family:var(--vsv-sans);font-size:13px;font-weight:600;color:var(--vsv-graphite);
  padding:9px 14px;cursor:pointer;border-radius:0;}
.vsv__btn:hover{background:var(--vsv-paper);}
.vsv__btn:focus-visible{outline:2px solid var(--c-txt);outline-offset:-1px;}

/* ── accordion item ── */
.vsv__item{border-bottom:1px solid var(--vsv-rule);}
.vsv__item[hidden]{display:none;}
.vsv__head{width:100%;appearance:none;background:none;border:0;border-radius:0;
  text-align:left;cursor:pointer;padding:19px 0;display:flex;gap:14px;
  align-items:baseline;font-family:var(--vsv-sans);}
.vsv__head:hover .vsv__name{color:var(--c-txt);}
.vsv__head:focus-visible{outline:2px solid var(--c-txt);outline-offset:2px;}
.vsv__num{font-family:var(--vsv-mono);font-size:12px;color:var(--vsv-muted);
  flex:none;width:26px;padding-top:2px;}
.vsv__name{font-size:17px;font-weight:600;color:var(--vsv-graphite);
  line-height:1.3;flex:1 1 auto;transition:color .15s linear;}
.vsv__chev{flex:none;align-self:center;color:var(--c-txt);
  transition:transform .28s cubic-bezier(.4,0,.2,1);}
.vsv__head[aria-expanded="true"] .vsv__chev{transform:rotate(180deg);}
.vsv__head[aria-expanded="true"] .vsv__name{color:var(--c-txt);}

/* ── THE MOTION ──
   0fr -> 1fr on a grid row animates to the content's natural height without
   measuring it in JS and without a max-height guess that clips long panels. */
.vsv__panel{display:grid;grid-template-rows:0fr;
  transition:grid-template-rows .32s cubic-bezier(.4,0,.2,1);}
.vsv__head[aria-expanded="true"] + .vsv__panel{grid-template-rows:1fr;}
.vsv__panel > .vsv__inner{overflow:hidden;min-height:0;}
.vsv__body{padding:2px 0 26px 40px;max-width:68ch;}
.vsv__body p{font-size:15px;}

/* ── inside the panel ── */
.vsv__meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.vsv__code{font-family:var(--vsv-mono);font-size:11.5px;letter-spacing:.02em;
  color:var(--vsv-graphite);background:var(--vsv-paper);
  border-left:3px solid var(--c);padding:6px 10px;}
.vsv__flag{font-family:var(--vsv-mono);font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--vsv-white);background:var(--c-txt);
  padding:7px 10px;}
.vsv .vsv__failhead{font-family:var(--vsv-mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--vsv-muted);margin:20px 0 10px;}
.vsv__fails{list-style:none;padding:0;}
.vsv__fails li{display:flex;gap:11px;align-items:flex-start;font-size:14.5px;padding:6px 0;}
.vsv__fails li svg{flex:none;margin-top:7px;color:var(--c-txt);}
.vsv__xlink{display:inline-flex;gap:11px;align-items:flex-start;font-size:14.5px;
  font-weight:600;color:var(--c-txt);text-decoration:none;}
.vsv__xlink:hover{text-decoration:underline;}
.vsv__xlink svg{flex:none;margin-top:6px;}
.vsv__rel{border:1px solid var(--vsv-rule);background:var(--vsv-paper);
  border-left:3px solid var(--c);padding:18px 20px;margin:34px 0 0;}
.vsv .vsv__rel-h{font-family:var(--vsv-mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--vsv-muted);margin-bottom:8px;}
.vsv .vsv__rel-p{font-size:14.5px;margin:0;}
.vsv__rel a{color:var(--c-txt);font-weight:600;}

/* ── CTA ── */
.vsv__cta{background:var(--vsv-graphite);margin-top:64px;padding:60px 0;}
.vsv .vsv__cta-h{font-size:27px;font-weight:600;line-height:1.15;letter-spacing:-.02em;color:var(--vsv-paper);}
.vsv .vsv__cta-p{font-size:15px;color:var(--vsv-body-dk);margin-top:12px;max-width:56ch;}
.vsv__cta-a{display:inline-block;margin-top:24px;padding:11px 18px;font-size:15px;
  font-weight:600;text-decoration:none;background:var(--c-dk);color:var(--vsv-graphite);}
.vsv__cta-a:hover{background:var(--vsv-paper);}
.vsv__sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.vsv .vsv__none{padding:34px 0;color:var(--vsv-muted);font-size:15px;}

/* draft banner — REMOVE BEFORE PORTING */
.vsv .vsv__draft{font-family:var(--vsv-mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--vsv-white);background:var(--c-txt);
  padding:10px 24px;text-align:center;}

@media (prefers-reduced-motion: reduce){
  .vsv__panel{transition:none;}
  .vsv__chev{transition:none;}
}
@media (max-width:640px){
  .vsv .vsv__h1{font-size:32px;}
  .vsv .vsv__cta-h{font-size:20px;}
  .vsv__header{padding:46px 0 42px;}
  .vsv__body{padding-left:0;}
  .vsv__filter{min-width:0;flex:1 1 100%;}
}

/* ── grouped, 2-column catalog list — added v13.6 ──
   Wraps .vsv__item rows under a buyer-question heading, laid out in two
   CSS columns so a 25-item catalog reads as a compact index instead of one
   long list. break-inside:avoid keeps an accordion row (collapsed OR
   expanded) from splitting across the column break. Requires nothing new
   from vantage-pages.js — catalog() finds .vsv__item via querySelectorAll
   regardless of nesting depth, so filter/expand-all/collapse-all and the
   accordion motion all work unchanged inside a group. */
.vsv__grp{margin-top:6px;}
.vsv__grp:first-child{margin-top:0;}
.vsv__grp-h{padding:30px 0 2px;}
.vsv .vsv__grp-q{font-size:19px;font-weight:600;letter-spacing:-.01em;
  color:var(--vsv-graphite);margin:0;}
.vsv__grp-list{column-count:2;column-gap:44px;column-fill:balance;}
.vsv__grp-list > .vsv__item{break-inside:avoid;-webkit-column-break-inside:avoid;}
@media (max-width:760px){
  .vsv__grp-list{column-count:1;}
}


/* ====================================================================
   2b. IH / SAFETY TOGGLE — .vtg  (Both / Industrial Hygiene / Safety
   switch — Industrial Hygiene & Safety hub page only) — added v13.6
   Same tested pattern as .vfr (Fractional toggle): a data-view attribute
   on the root, set by JS, drives which panel(s) show via plain CSS
   attribute selectors — no panel-hiding logic lives in JS. New namespace
   because .vfr is styled specifically for the Fractional page's two-
   column rate tables; this switch instead shows/hides two full, independent
   .vsv catalogs (each with its own header, controls, filter and grouped
   list) stacked in the page, not paired side-by-side columns.
   ==================================================================== */
.vtg__tabs{display:flex;gap:0;border-bottom:1px solid var(--vp-rule);
  flex-wrap:wrap;margin-top:8px;}
.vtg__tab{appearance:none;background:none;border:0;border-bottom:2px solid transparent;
  font-family:var(--vp-sans);font-size:15px;font-weight:600;color:var(--vp-muted);
  padding:12px 22px 11px;cursor:pointer;margin-bottom:-1px;}
.vtg__tab:first-child{padding-left:0;}
.vtg__tab:hover{color:var(--vp-graphite);}
.vtg__tab:focus-visible{outline:2px solid var(--vp-accent);outline-offset:-2px;}
.vtg__tab[aria-pressed="true"]{color:var(--vp-graphite);border-bottom-color:var(--vp-accent);}
.vtg__panel{margin-top:0;}
.vtg[data-view="ih"] .vtg__panel[data-disc="safety"]{display:none;}
.vtg[data-view="safety"] .vtg__panel[data-disc="ih"]{display:none;}
.vtg__sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* ── plain-English glossary, 2-column — added v13.6, IH & Safety hub only.
   Reuses .vp tokens; lives directly in a .vp__sec, not inside .vsv/.vtg. */
.vp__gloss-p{font-size:15px;color:var(--vp-body);max-width:66ch;margin-top:14px;}
.vp__gl{list-style:none;margin:26px 0 0;padding:0;display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));gap:0 44px;}
.vp__gl li{padding:0 0 22px;}
.vp .vp__gl h4{font-size:15px;font-weight:600;color:var(--vp-graphite);margin:0 0 5px;}
.vp .vp__gl p{font-size:14px;color:var(--vp-body);margin:0;text-wrap:pretty;}
@media (max-width:719px){.vp__gl{grid-template-columns:1fr;}}


/* ====================================================================
   3. FRACTIONAL FAQ — .vh
   ==================================================================== */

.vh {
  /* service hue — Industrial Hygiene & Safety */
  --vh-steel: #3B6EA5;
  --vh-steel-on-dark: #8DB3DE;
  /* neutrals */
  --vh-graphite: #101418;
  --vh-paper: #F6F5F2;
  --vh-rule: #E4E1D9;
  --vh-rule-dark: #2A2E33;
  --vh-body: #45443F;
  --vh-body-dark: #D6D4CC;
  --vh-muted: #6C6A64;
  --vh-muted-dark: #B8B6AE;
  --vh-white: #FFFFFF;

  --vh-sans: Archivo, Helvetica, Arial, sans-serif;
  --vh-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  --vh-max: 860px;

  font-family: var(--vh-sans);
  color: var(--vh-body);
  background: var(--vh-white);
  -webkit-font-smoothing: antialiased;
  line-height: 1.55;
}
.vh *, .vh *::before, .vh *::after { box-sizing: border-box; }
.vh p, .vh h1, .vh h2, .vh h3, .vh ul, .vh ol, .vh table, .vh figure { margin: 0; }
.vh p { text-wrap: pretty; }
.vh a { color: var(--vh-steel); }

.vh__wrap { max-width: var(--vh-max); margin: 0 auto; padding: 0 24px; }

/* ── eyebrow ───────────────────────────────────────────── */
.vh__eyebrow {
  font-family: var(--vh-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* ── page header, dark band ────────────────────────────── */
.vh__header {
  background: var(--vh-graphite);
  color: var(--vh-paper);
  padding: 72px 0 64px;
}
.vh__header .vh__eyebrow { color: var(--vh-steel-on-dark); }
.vh__h1 {
  font-size: 40px;
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--vh-paper);
  margin-top: 20px;
  max-width: 17ch;
}
.vh__lede {
  font-size: 17px;
  color: var(--vh-body-dark);
  margin-top: 24px;
  max-width: 62ch;
}
.vh__lede + .vh__lede { margin-top: 14px; }

/* ── section heading: mono eyebrow over 2px rule ───────── */
.vh__section { padding: 64px 0 0; }
.vh__section-head {
  border-bottom: 2px solid var(--vh-rule);
  padding-bottom: 10px;
  margin-bottom: 40px;
}
.vh__section-head .vh__eyebrow { color: var(--vh-muted); }

/* ── Q&A ───────────────────────────────────────────────── */
.vh__qa { border-top: 1px solid var(--vh-rule); padding: 32px 0; }
.vh__qa:first-of-type { border-top: 0; padding-top: 0; }
.vh__q {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--vh-graphite);
  margin-bottom: 14px;
}
.vh__a { font-size: 15px; }
.vh__a + .vh__a { margin-top: 12px; }

/* ── chevron bullets ───────────────────────────────────── */
.vh__list { list-style: none; padding: 0; margin-top: 16px; }
.vh__list li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-size: 15px;
  padding: 7px 0;
}
.vh__list li svg { flex: none; margin-top: 8px; }

/* ── tables ────────────────────────────────────────────── */
.vh__table-wrap { margin-top: 24px; overflow-x: auto; }
.vh__table { width: 100%; border-collapse: collapse; font-size: 15px; }
.vh__table th, .vh__table td {
  text-align: left;
  padding: 13px 16px 13px 0;
  border-bottom: 1px solid var(--vh-rule);
  vertical-align: top;
}
.vh__table th {
  font-family: var(--vh-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--vh-muted);
  border-bottom: 2px solid var(--vh-rule);
  white-space: nowrap;
}
.vh__table thead th:first-child { padding-left: 0; }
.vh__table td:last-child, .vh__table th:last-child { padding-right: 0; }
.vh__num { font-family: var(--vh-mono); font-size: 14px; color: var(--vh-graphite); white-space: nowrap; }
.vh__table tbody tr:last-child td { border-bottom: 2px solid var(--vh-rule); }
.vh__mode { font-weight: 600; color: var(--vh-graphite); }

/* ── disclaimer ────────────────────────────────────────── */
.vh__note {
  margin-top: 20px;
  padding: 16px 18px;
  background: var(--vh-paper);
  border-left: 3px solid var(--vh-steel);
  font-size: 13px;
  color: var(--vh-muted);
}

/* ── credential block ──────────────────────────────────── */
.vh__cred {
  margin-top: 20px;
  padding: 22px 24px;
  background: var(--vh-paper);
  border: 1px solid var(--vh-rule);
}
.vh__cred-name {
  font-family: var(--vh-mono);
  font-size: 13px;
  letter-spacing: 0.08em;
  color: var(--vh-graphite);
  text-transform: uppercase;
  margin-bottom: 10px;
}

/* ── CTA strip, dark band ──────────────────────────────── */
.vh__cta { background: var(--vh-graphite); margin-top: 72px; padding: 64px 0; }
.vh__cta-h {
  font-size: 27px;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--vh-paper);
}
.vh__cta-p { font-size: 15px; color: var(--vh-body-dark); margin-top: 12px; max-width: 52ch; }
.vh__btn {
  display: inline-block;
  margin-top: 26px;
  padding: 11px 18px;
  font-family: var(--vh-sans);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  background: var(--vh-steel-on-dark);
  color: var(--vh-graphite);
  border: 0;
}
.vh__btn:hover { background: var(--vh-paper); }

/* ── role-scoping cards, "Who do you need?" (v13.8) ─────── */
.vh__roles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin-top: 8px;
  border-top: 1px solid var(--vh-rule);
}
.vh__role {
  padding: 28px 22px 8px 0;
  border-right: 1px solid var(--vh-rule);
}
.vh__role:last-child { border-right: 0; }
.vh__role-name {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--vh-graphite);
  margin-bottom: 10px;
}
.vh__role-lede { font-size: 14px; color: var(--vh-muted); }
.vh__role .vh__list { margin-top: 14px; }
.vh__role .vh__list li { font-size: 13.5px; padding: 6px 0; }

@media (max-width: 760px) {
  .vh__roles { grid-template-columns: 1fr; border-top: 0; }
  .vh__role {
    padding: 24px 0 8px;
    border-right: 0;
    border-top: 1px solid var(--vh-rule);
  }
  .vh__role:first-child { border-top: 0; }
}

/* ── collapsible Q&A accordion, page-bottom FAQ (v13.8) ─── */
.vfaq { border-top: 1px solid var(--vh-rule); }
.vfaq__item { border-bottom: 1px solid var(--vh-rule); }
.vfaq__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 20px 0;
  background: none;
  border: 0;
  cursor: pointer;
  text-align: left;
  font-family: var(--vh-sans);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--vh-graphite);
}
.vfaq__q:hover { color: var(--vh-steel); }
.vfaq__q:focus-visible { outline: 2px solid var(--vh-steel); outline-offset: 2px; }
.vfaq__chev { flex: none; transition: transform .15s ease; color: var(--vh-muted); }
.vfaq__q[aria-expanded="true"] .vfaq__chev { transform: rotate(180deg); }
.vfaq__panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .18s ease;
}
.vfaq__q[aria-expanded="true"] + .vfaq__panel { grid-template-rows: 1fr; }
.vfaq__inner { overflow: hidden; }
.vfaq__a { font-size: 15px; padding-bottom: 22px; max-width: 68ch; }
.vfaq__a + .vfaq__a { margin-top: 10px; }
@media (prefers-reduced-motion: reduce) { .vfaq__panel, .vfaq__chev { transition: none; } }

/* ── draft banner — REMOVE BEFORE PORTING ──────────────── */
.vh__draft {
  background: var(--vh-steel);
  color: var(--vh-white);
  font-family: var(--vh-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 10px 24px;
  text-align: center;
}

@media (max-width: 640px) {
  .vh__h1 { font-size: 32px; }
  .vh__cta-h { font-size: 20px; }
  .vh__header { padding: 48px 0 44px; }
  .vh__section { padding-top: 48px; }
}


/* ====================================================================
   4. FRACTIONAL TOGGLE — .vfr
   ==================================================================== */

:root{
  --vh-graphite:#101418; --vh-paper:#F6F5F2; --vh-rule:#2A2E33;
  --vh-body:#D6D4CC; --vh-muted:#B8B6AE;
  --vh-steel:#8DB3DE; --vh-pine:#74B898; --vh-sunset:#FF7A1A;
  --vh-sans:'Archivo',Helvetica,Arial,sans-serif;
  --vh-mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
}
.vfr *,.vfr *::before,.vfr *::after{box-sizing:border-box;}
.vfr{
  font-family:var(--vh-sans); background:var(--vh-graphite); color:var(--vh-paper);
  padding:clamp(44px,5vw,72px) clamp(20px,5vw,56px) 80px;
  -webkit-font-smoothing:antialiased; line-height:1.55;
}
.vfr p,.vfr h2,.vfr h3,.vfr h4,.vfr ul,.vfr table{margin:0;}
.vfr__wrap{max-width:1080px;margin:0 auto;}

/* ── page head ─────────────────────────────────────────── */
.vfr__eyebrow{
  font-family:var(--vh-mono);font-weight:500;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;display:block;
}
.vfr__head-eyebrow{
  color:var(--vh-steel);padding-bottom:12px;
  border-bottom:1px solid var(--vh-rule);margin-bottom:20px;
}
.vfr__h2{font-size:clamp(26px,3vw,34px);font-weight:600;letter-spacing:-.02em;line-height:1.13;margin-bottom:14px;}
.vfr__lede{font-size:17px;color:var(--vh-body);max-width:66ch;margin-bottom:30px;text-wrap:pretty;}
.vfr__lede b{color:var(--vh-paper);font-weight:600;}

/* ── segmented control ─────────────────────────────────── */
.vfr__tabs{display:flex;border-bottom:1px solid var(--vh-rule);flex-wrap:wrap;}
.vfr__tab{
  appearance:none;background:none;border:0;border-bottom:2px solid transparent;
  font-family:var(--vh-sans);font-size:15px;font-weight:600;color:var(--vh-muted);
  padding:12px 20px 11px;cursor:pointer;margin-bottom:-1px;
  display:inline-flex;align-items:center;gap:8px;
  transition:color .15s linear,border-color .15s linear;
}
.vfr__tab:first-child{padding-left:0;}
.vfr__tab:hover{color:var(--vh-paper);}
.vfr__tab:focus-visible{outline:2px solid var(--vh-steel);outline-offset:-2px;}
.vfr__tab[aria-pressed="true"]{color:var(--vh-paper);border-bottom-color:var(--vh-steel);}
.vfr__tab svg{opacity:0;transition:opacity .15s linear;flex:none;}
.vfr__tab[aria-pressed="true"] svg{opacity:1;}

/* ── two-column grid ───────────────────────────────────── */
.vfr__cols{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(28px,4vw,56px);padding-top:34px;}
.vfr[data-view="ih"]     .vfr__cols,
.vfr[data-view="safety"] .vfr__cols{grid-template-columns:1fr;max-width:70ch;}
.vfr[data-view="ih"]     .vfr__col[data-disc="safety"]{display:none;}
.vfr[data-view="safety"] .vfr__col[data-disc="ih"]{display:none;}

/* column accent — flat identifying swatch only */
.vfr__col{display:flex;flex-direction:column;border-top:3px solid var(--c);padding-top:20px;}
.vfr__col[data-disc="ih"]{--c:var(--vh-pine);}
.vfr__col[data-disc="safety"]{--c:var(--vh-sunset);}
.vfr__col .vfr__eyebrow{color:var(--c);margin-bottom:12px;}
.vfr__h3{font-size:20px;font-weight:600;line-height:1.2;letter-spacing:-.01em;margin-bottom:12px;}
.vfr__col-lede{font-size:15px;color:var(--vh-body);margin-bottom:6px;text-wrap:pretty;}
.vfr__col-lede b{color:var(--vh-paper);font-weight:600;}

.vfr__grp{border-top:1px solid var(--vh-rule);margin-top:26px;padding-top:18px;}
.vfr__grp-h{
  font-family:var(--vh-mono);font-weight:500;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--vh-muted);margin-bottom:12px;
}
.vfr__list{list-style:none;padding:0;}
.vfr__list li{display:flex;gap:11px;align-items:flex-start;font-size:14.5px;color:var(--vh-body);padding:6px 0;}
.vfr__list li svg{flex:none;margin-top:7px;color:var(--c);}
.vfr__list b{color:var(--vh-paper);font-weight:600;}

/* ── rate table, pinned to the bottom of each column ───── */
.vfr__spacer{flex:1 1 auto;min-height:22px;}
.vfr__rates{border-top:1px solid var(--vh-rule);padding-top:18px;}
.vfr__table{width:100%;border-collapse:collapse;}
.vfr__table th{
  font-family:var(--vh-mono);font-weight:500;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--vh-muted);text-align:left;
  padding:0 12px 9px 0;border-bottom:1px solid var(--vh-rule);white-space:nowrap;
}
.vfr__table td{
  font-family:var(--vh-mono);font-size:13.5px;color:var(--vh-paper);text-align:left;
  padding:10px 12px 10px 0;border-bottom:1px solid var(--vh-rule);white-space:nowrap;
}
.vfr__table th:last-child,.vfr__table td:last-child{padding-right:0;}
.vfr__table tbody tr:last-child td{border-bottom:0;}
.vfr__table td.vfr__rate{color:var(--c);font-weight:500;}

.vfr__link{
  display:inline-flex;align-items:center;gap:8px;margin-top:18px;
  font-size:14px;font-weight:600;color:var(--c);text-decoration:none;
}
.vfr__link:hover{text-decoration:underline;}

/* ── shared footer under the columns ───────────────────── */
.vfr__foot{border-top:1px solid var(--vh-rule);margin-top:38px;padding-top:22px;}
.vfr__fine{font-size:13px;color:var(--vh-muted);max-width:78ch;text-wrap:pretty;}
.vfr__fine + .vfr__fine{margin-top:10px;}
.vfr__fine em{color:var(--vh-body);font-style:normal;}
.vfr__cta{
  display:inline-block;margin-top:26px;padding:11px 18px;
  font-size:15px;font-weight:600;text-decoration:none;
  background:var(--vh-steel);color:var(--vh-graphite);
}
.vfr__cta:hover{background:var(--vh-paper);}

.vfr__sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* ── draft banner — REMOVE BEFORE PORTING ──────────────── */
.vfr__draft{
  font-family:var(--vh-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--vh-graphite);background:var(--vh-steel);padding:9px 16px;margin-bottom:34px;
}

@media (max-width:900px){
  .vfr__cols{grid-template-columns:1fr;gap:0;}
  .vfr__col{margin-top:30px;}
  .vfr__col:first-child{margin-top:0;}
}


/* ====================================================================
   5. FORMS — .vf
   ==================================================================== */

/* ============================================================
   VANTAGE FORMS — scoped to .vf only. Nothing leaks site-wide.
   BRAND-SPEC: Archivo + IBM Plex Mono, square corners,
   1px hairlines, no shadows, no pills.
   ============================================================ */
.vf{--vf-accent:#3B6EA5;--vf-graphite:#101418;--vf-paper:#F6F5F2;--vf-rule:#E4E1D9;
    --vf-body:#45443F;--vf-muted:#6C6A64;--vf-req:#8C3038;
    font-family:Archivo,Helvetica,Arial,sans-serif;color:var(--vf-body);
    max-width:720px;font-size:15px;line-height:1.55}
.vf--network{--vf-accent:#37795B}

/* labels */
.vf label,.vf .wp-block-jetpack-label{display:block;font-weight:500;font-size:15px;
    color:var(--vf-graphite);margin:0 0 6px}
.vf .required,.vf .wp-block-jetpack-label .required{color:var(--vf-req);font-weight:600}

/* text, email, tel, number, textarea */
.vf input[type=text],.vf input[type=email],.vf input[type=tel],
.vf input[type=number],.vf input[type=url],.vf textarea{
    width:100%;box-sizing:border-box;border:1px solid var(--vf-rule);border-radius:0;
    background:#fff;padding:11px 12px;font:400 15px/1.4 Archivo,Helvetica,Arial,sans-serif;
    color:var(--vf-graphite);transition:border-color .12s ease}
.vf input:focus,.vf textarea:focus{outline:2px solid var(--vf-accent);outline-offset:-1px;
    border-color:var(--vf-accent)}
.vf textarea{min-height:132px;resize:vertical}

/* field spacing */
.vf .wp-block-jetpack-contact-form>div,.vf>div{margin-bottom:22px}

/* ---- radio / checkbox CARDS ---- */
.vf .wp-block-jetpack-options{list-style:none;margin:0;padding:0;display:grid;gap:8px}
@media(min-width:768px){
  .vf .wp-block-jetpack-options{grid-template-columns:1fr 1fr}
  .vf .wp-block-jetpack-options:has(li:nth-child(-n+4):last-child){grid-template-columns:1fr}
}
.vf .wp-block-jetpack-options li{margin:0;padding:0;list-style:none}
.vf .wp-block-jetpack-options li label,
.vf .wp-block-jetpack-options li>*{display:flex;align-items:center;gap:10px;
    min-height:52px;box-sizing:border-box;padding:12px 14px;margin:0;
    border:1px solid var(--vf-rule);background:#fff;cursor:pointer;font-weight:400;
    color:var(--vf-body);transition:border-color .12s ease,background .12s ease}
.vf .wp-block-jetpack-options li label:hover{border-color:var(--vf-accent);background:var(--vf-paper)}
.vf .wp-block-jetpack-options input[type=radio],
.vf .wp-block-jetpack-options input[type=checkbox]{flex:0 0 auto;width:16px;height:16px;
    accent-color:var(--vf-accent);margin:0}
.vf .wp-block-jetpack-options li:has(input:checked) label,
.vf .wp-block-jetpack-options li label:has(input:checked){
    border-color:var(--vf-accent);box-shadow:inset 0 0 0 1px var(--vf-accent);
    background:var(--vf-paper)}
.vf .wp-block-jetpack-options li:focus-within label{outline:2px solid var(--vf-accent);
    outline-offset:-1px}

/* single checkbox (per diem, consent) */
.vf .wp-block-jetpack-contact-form>div:has(>input[type=checkbox]) label{
    display:flex;align-items:center;gap:10px;min-height:52px;padding:12px 14px;
    border:1px solid var(--vf-rule);background:#fff;cursor:pointer}

/* file dropzone */
.vf .wp-block-jetpack-dropzone{border:1px dashed var(--vf-rule);background:var(--vf-paper);
    padding:22px 16px;text-align:center;border-radius:0}
.vf .wp-block-jetpack-dropzone p{margin:0;color:var(--vf-muted);font-size:14px}

/* helper / legend / note lines */
.vf__legend{font:500 11px/1 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.14em;
    text-transform:uppercase;color:var(--vf-req);margin:0 0 20px;padding-bottom:10px;
    border-bottom:2px solid var(--vf-rule)}
.vf__help{margin:-14px 0 22px;font-size:13px;color:var(--vf-muted)}
.vf__note{margin:10px 0 0;font-size:13px;color:var(--vf-muted);line-height:1.5}
.vf__urgent{margin:-8px 0 22px;padding:12px 14px;background:var(--vf-paper);
    border-left:3px solid var(--vf-accent);font-size:14px;color:var(--vf-graphite)}

/* submit button — solid graphite on light, per BRAND-SPEC */
.vf .wp-block-button__link,.vf button[type=submit]{display:block;width:100%;
    background:var(--vf-graphite);color:var(--vf-paper);border:0;border-radius:0;
    padding:15px 18px;font:600 16px/1 Archivo,Helvetica,Arial,sans-serif;cursor:pointer;
    letter-spacing:.01em;transition:background .12s ease}
.vf .wp-block-button__link:hover,.vf button[type=submit]:hover{background:var(--vf-accent)}
.vf .wp-block-button{width:100%;margin-top:8px}

/* cross-banner */
.vf-banner{max-width:720px;margin:0 0 28px;padding:14px 16px;border:1px solid var(--vf-rule);
    background:#F6F5F2;font:400 14px/1.5 Archivo,Helvetica,Arial,sans-serif;color:#45443F}
.vf-banner a{color:#3B6EA5;font-weight:500;text-decoration:none;border-bottom:1px solid currentColor}
.vf-banner--network a{color:#37795B}

@media(prefers-reduced-motion:reduce){.vf *{transition:none!important}}


/* ====================================================================
   6. NAV AND FOOTER — .vnav / .vfoot
   ==================================================================== */

.vnav,.vfoot{
  --vn-brand:#8C3038; --vn-brand-dk:#E89497;
  --vn-graphite:#101418; --vn-paper:#F6F5F2; --vn-rule-dk:#2A2E33;
  --vn-body-dk:#D6D4CC; --vn-muted-dk:#B8B6AE;
  --vn-sans:Archivo,Helvetica,Arial,sans-serif;
  --vn-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --vn-max:1180px;
  font-family:var(--vn-sans); line-height:1.55; -webkit-font-smoothing:antialiased;
}
.vnav *,.vfoot *,.vnav *::before,.vfoot *::before{box-sizing:border-box;}
.vnav ul,.vfoot ul{list-style:none;margin:0;padding:0;}
.vnav p,.vfoot p{margin:0;}
.vn__wrap{max-width:var(--vn-max);margin:0 auto;padding:0 24px;}

/* skip link */
.vn__skip{position:absolute;left:-9999px;top:0;background:var(--vn-paper);color:var(--vn-graphite);
  padding:11px 18px;font-weight:600;z-index:200;}
.vn__skip:focus{left:0;}

/* ── HEADER ── */
/* position:static explicitly overrides the parent theme's header{position:
   sticky;top:0} (vantage.css line 69/275/389/668) — .vnav has higher
   specificity than the parent's bare `header` selector, but only for
   properties it actually declares. Leaving `position` unset here would let
   the parent's sticky rule fall straight through. */
.vnav{background:var(--vn-graphite);color:var(--vn-paper);
  border-bottom:1px solid var(--vn-rule-dk);position:static;}
.vn__bar{display:flex;align-items:center;gap:24px;min-height:76px;}
.vn__brand{display:flex;align-items:center;gap:13px;text-decoration:none;flex:none;margin-right:auto;}
.vn__wm{display:block;font-size:21px;font-weight:700;letter-spacing:.02em;color:var(--vn-paper);line-height:1;}
.vn__desc{display:block;font-size:9px;font-weight:500;letter-spacing:.2em;
  color:var(--vn-brand-dk);margin-top:5px;line-height:1;}
.vn__brand:focus-visible{outline:2px solid var(--vn-brand-dk);outline-offset:4px;}

.vn__menu{display:flex;align-items:center;gap:2px;}
.vn__menu a{display:block;font-size:14px;font-weight:500;color:var(--vn-body-dk);
  text-decoration:none;padding:9px 11px;border:1px solid transparent;transition:color .12s linear;}
.vn__menu a:hover{color:var(--vn-paper);}
.vn__menu a:focus-visible{outline:2px solid var(--vn-brand-dk);outline-offset:-1px;}
.vn__menu a[aria-current="page"]{color:var(--vn-paper);border-bottom-color:var(--vn-brand-dk);}

.vn__cta{flex:none;display:inline-block;font-size:14px;font-weight:600;
  background:var(--vn-brand-dk);color:var(--vn-graphite);text-decoration:none;
  padding:11px 17px;border:1px solid transparent;transition:background .12s linear;}
.vn__cta:hover{background:var(--vn-paper);}
.vn__cta:focus-visible{outline:2px solid var(--vn-paper);outline-offset:2px;}

.vn__toggle{display:none;appearance:none;background:none;border:1px solid var(--vn-rule-dk);
  color:var(--vn-paper);font-family:var(--vn-sans);font-size:13px;font-weight:600;
  padding:10px 14px;cursor:pointer;border-radius:0;align-items:center;gap:9px;}
.vn__toggle:hover{border-color:var(--vn-brand-dk);}
.vn__toggle:focus-visible{outline:2px solid var(--vn-brand-dk);outline-offset:2px;}
.vn__bars{display:block;width:16px;height:2px;background:currentColor;position:relative;}
.vn__bars::before,.vn__bars::after{content:"";position:absolute;left:0;width:16px;height:2px;background:currentColor;}
.vn__bars::before{top:-5px;} .vn__bars::after{top:5px;}
.vn__toggle[aria-expanded="true"] .vn__bars{background:transparent;}
.vn__toggle[aria-expanded="true"] .vn__bars::before{top:0;transform:rotate(45deg);}
.vn__toggle[aria-expanded="true"] .vn__bars::after{top:0;transform:rotate(-45deg);}

@media(max-width:1023px){
  .vn__toggle{display:inline-flex;}
  .vn__menu,.vn__bar .vn__cta{display:none;}
  .vn__panel[data-open="true"] .vn__menu{display:flex;flex-direction:column;align-items:stretch;gap:0;}
  .vn__panel[data-open="true"] .vn__cta{display:block;text-align:center;margin-top:14px;}
  .vn__panel[data-open="true"]{display:block;padding:8px 0 24px;border-top:1px solid var(--vn-rule-dk);}
  .vn__panel{display:none;}
  .vn__menu a{padding:14px 0;border-bottom:1px solid var(--vn-rule-dk);font-size:16px;}
  .vn__menu a[aria-current="page"]{border-bottom-color:var(--vn-brand-dk);}
}

/* ── FOOTER ── */
.vfoot{background:var(--vn-graphite);color:var(--vn-body-dk);padding:56px 0 30px;}
.vfoot__top{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:44px;
  padding-bottom:34px;border-bottom:1px solid var(--vn-rule-dk);}
.vfoot__wm{display:block;font-size:19px;font-weight:700;letter-spacing:.02em;color:var(--vn-paper);line-height:1;}
.vfoot__desc{display:block;font-size:9px;font-weight:500;letter-spacing:.2em;
  color:var(--vn-brand-dk);margin-top:5px;line-height:1;}
.vfoot__blurb{font-size:14px;margin-top:18px;max-width:40ch;color:var(--vn-body-dk);}
.vfoot__h{font-family:var(--vn-mono);font-size:10px;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;color:var(--vn-muted-dk);display:block;margin-bottom:15px;}
.vfoot li{margin-bottom:9px;}
.vfoot a{color:var(--vn-body-dk);text-decoration:none;font-size:14px;}
.vfoot a:hover{color:var(--vn-brand-dk);}
.vfoot a:focus-visible{outline:2px solid var(--vn-brand-dk);outline-offset:2px;}
.vfoot__strong a{color:var(--vn-paper);font-weight:500;}
.vfoot__bot{display:flex;flex-wrap:wrap;gap:10px 30px;padding-top:24px;
  font-size:12.5px;color:var(--vn-muted-dk);}
.vfoot__bot p{max-width:62ch;}
.vfoot__legal{margin-left:auto;}
@media(max-width:859px){
  .vfoot__top{grid-template-columns:1fr;gap:34px;}
  .vfoot__legal{margin-left:0;}
}
@media(prefers-reduced-motion:reduce){.vnav *,.vfoot *{transition:none !important;}}
/* ====================================================================
   HOME HERO — .vhr  (Direction B, two-column, graphite panel, no photo)
   Lives inside .vp.vp--brand and inherits its --vp-* tokens; see the
   v13.5 note at the top of this file for what changed from the draft.
   ==================================================================== */
.vhr *,.vhr *::before,.vhr *::after{box-sizing:border-box;}
.vhr{position:relative;isolation:isolate;overflow:hidden;-webkit-font-smoothing:antialiased;}
.vhr-b{
  min-height:min(680px,88vh);
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  background:var(--vp-graphite);
}
.vhr__panel{position:relative;z-index:2;display:flex;align-items:center;
  padding:clamp(48px,6vw,88px) clamp(24px,4.4vw,68px);background:var(--vp-graphite);}
.vhr__media{background:var(--vp-graphite);border-left:1px solid var(--vp-rule-dk);}
.vhr__inner{max-width:560px;width:100%;}

.vhr__eyebrow{font-family:var(--vp-mono);font-weight:500;font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--vp-accent-dk);
  margin:0 0 18px;padding-bottom:12px;border-bottom:1px solid var(--vp-rule-dk);display:block;}
.vhr__h1{font-family:var(--vp-sans);font-weight:600;font-size:clamp(27px,3.3vw,40px);
  line-height:1.1;letter-spacing:-.02em;margin:0 0 18px;text-wrap:balance;color:var(--vp-paper);}
.vhr__sub{font-weight:400;font-size:17px;line-height:1.55;color:var(--vp-body-dk);
  max-width:52ch;margin:0 0 28px;text-wrap:pretty;}
.vhr__sub strong{color:var(--vp-paper);font-weight:500;}

.vhr__ctarow{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;}
.vhr__cta{display:inline-flex;align-items:center;gap:10px;background:var(--vp-accent-dk);
  color:var(--vp-graphite);font-family:var(--vp-sans);font-size:15px;font-weight:600;
  padding:11px 18px;border:0;text-decoration:none;transition:background .15s linear;}
.vhr__cta:hover{background:var(--vp-paper);}
.vhr__cta:focus-visible{outline:2px solid var(--vp-paper);outline-offset:3px;}
.vhr__cta svg{flex:none;}
.vhr__link{font-size:15px;font-weight:500;color:var(--vp-accent-dk);text-decoration:none;
  border-bottom:1px solid var(--vp-rule-dk);padding-bottom:2px;transition:border-color .15s linear;}
.vhr__link:hover{border-bottom-color:var(--vp-accent-dk);}
.vhr__link:focus-visible{outline:2px solid var(--vp-accent-dk);outline-offset:3px;}

.vhr__ladder{display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  margin:32px 0 0;border-top:1px solid var(--vp-rule-dk);}
.vhr__rung{padding:16px 20px 0 0;}
.vhr__rung h3{margin:0 0 6px;font-family:var(--vp-sans);font-size:15px;font-weight:600;
  color:var(--vp-paper);letter-spacing:-.01em;display:flex;align-items:center;gap:8px;}
.vhr__rung p{margin:0;font-size:13px;line-height:1.5;color:var(--vp-muted-dk);text-wrap:pretty;}
.vhr__mode{display:block;font-family:var(--vp-mono);font-weight:500;font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--vp-accent-dk);margin:0 0 8px;}

/* No photo: collapse the reserved media column and center the copy panel.
   Reverts automatically the moment .vhr__media gets real content. */
.vhr-b:has(.vhr__media:empty){grid-template-columns:1fr;}
.vhr-b:has(.vhr__media:empty) .vhr__media{display:none;}
.vhr-b:has(.vhr__media:empty) .vhr__panel{justify-content:center;}
.vhr-b:has(.vhr__media:empty) .vhr__inner{max-width:640px;}

@media (max-width:960px){
  .vhr-b{grid-template-columns:1fr;}
  .vhr__media{display:none;}
  .vhr__inner{max-width:none;}
}
@media (max-width:640px){
  .vhr-b{min-height:auto;}
  .vhr__ladder{grid-template-columns:1fr;}
  .vhr__rung{padding:16px 0 0;}
  .vhr__rung + .vhr__rung{border-top:1px solid var(--vp-rule-dk);}
  .vhr__cta{width:100%;justify-content:center;}
}
@media (prefers-reduced-motion:reduce){.vhr__cta,.vhr__link{transition:none;}}


/* ====================================================================
   DARK SITE + HUE REASSIGNMENT  —  appended 2026-08-18
   Decisions #51 (brand = Steel) and #52 (IH/Safety split, four services).
   This whole block is additive. To revert the site to light, delete from
   this comment to the end of the file. Nothing above it was changed.
   Contrast audited in-browser: every text node on Home, Contact,
   Staffing, the catalogs and the forms clears WCAG AA on graphite.
==================================================================== */

/* ---- 1. grounds ---- */
html,body{background:#101418;}
.vp{--vp-white:#101418;--vp-body:#D6D4CC;--vp-muted:#B8B6AE;--vp-rule:#2A2E33;}
.vsv{--vsv-white:#101418;--vsv-body:#D6D4CC;--vsv-muted:#B8B6AE;--vsv-rule:#2A2E33;
     --vsv-steel:#74B898;--vsv-steel-dk:#74B898;}

/* ---- 2. hues. Every service uses its LIFTED variant on graphite. ---- */
.vp,.vp.vp--brand{--vp-accent:#8DB3DE;--vp-accent-dk:#8DB3DE;}      /* Vantage — Steel   #51 */
.vp.vp--ihs,.vp.vp--ih{--vp-accent:#74B898;--vp-accent-dk:#74B898;} /* Industrial Hygiene — Pine  #52 */
.vp.vp--safety{--vp-accent:#FF7A1A;--vp-accent-dk:#FF7A1A;}         /* Occupational Safety — Sunset  #52 */
.vp.vp--staffing{--vp-accent:#BE9BD9;--vp-accent-dk:#BE9BD9;}       /* Staffing — Plum */
.vp.vp--training{--vp-accent:#F0D53F;--vp-accent-dk:#F0D53F;}       /* Training — Gold, usable at last */
.vp.vp--talent{--vp-accent:#E89497;--vp-accent-dk:#E89497;}         /* Talent Network — Oxblood   #52 */
.vp .vp__row--ih{--row-hue:#74B898;}
.vp .vp__row--safety{--row-hue:#FF7A1A;}
.vp .vp__row--staffing{--row-hue:#BE9BD9;}
.vp .vp__row--training{--row-hue:#F0D53F;}
#vsv-ih{--c:#74B898;--c-dk:#74B898;--c-txt:#74B898;}
#vsv-sf{--c:#FF7A1A;--c-dk:#FF7A1A;--c-txt:#FF7A1A;}
#vsv-tr{--c:#F0D53F;--c-dk:#F0D53F;--c-txt:#F0D53F;}

/* ---- 3. text that was graphite-on-white is now paper-on-graphite ---- */
.vp .vp__h2,.vp .vp__h3,.vp .vp__p b,.vp .vp__p strong,.vp__row dt,.vp__list li b,
.vp__terms b,.vp__totals div b,.vp__def b,.vp .vp__gl h4,
.vsv__name,.vsv .vsv__grp-q,.vsv__filter,.vsv__btn,.vsv__code,.vsv__cta-a{color:#F6F5F2;}

/* ---- 4. panels that were Paper are now one step up from the ground ---- */
.vp__totals,.vp__def,.vp__stat,.vsv__code,.vsv__rel{background:#171B20;}
.vsv__filter,.vsv__btn{background:#171B20;border-color:#2A2E33;}
.vsv__btn:hover,.vsv__cta-a:hover{background:#22262B;}

/* ---- 5. dark bands no longer contrast with a white body, so separate
          them with a hairline instead ---- */
.vp__header,.vsv__header{border-bottom:1px solid #2A2E33;}
.vp__cta,.vsv__cta{border-top:1px solid #2A2E33;}
.vp__sec{border-bottom-color:#2A2E33;}

/* ---- 6. forms. This is where dark mode usually breaks: Jetpack fields
          default to light styling and go white-on-white. ---- */
.vf{--vf-accent:#8DB3DE;--vf-req:#8DB3DE;--vf-graphite:#F6F5F2;--vf-paper:#171B20;--vf-rule:#2A2E33;}
.vf,.vf p,.vf li,.vf .vf-banner{color:#D6D4CC;}
.vf h1,.vf h2,.vf h3,.vf label,.vf legend{color:#F6F5F2;}
.vf__help,.vf__note,.vf__legend,.vf small{color:#D6D4CC;}
.vf input,.vf select,.vf textarea,
form.wp-block-jetpack-contact-form input,form.wp-block-jetpack-contact-form select,
form.wp-block-jetpack-contact-form textarea,
.wp-block-jetpack-contact-form input[type=text],.wp-block-jetpack-contact-form input[type=email],
.wp-block-jetpack-contact-form input[type=tel],.wp-block-jetpack-contact-form input[type=number],
.wp-block-jetpack-contact-form input[type=date],.wp-block-jetpack-contact-form input[type=url],
.wp-block-jetpack-contact-form textarea,.wp-block-jetpack-contact-form select{
  background:#171B20 !important;color:#F6F5F2 !important;border:1px solid #3A3F46 !important;}
.wp-block-jetpack-contact-form ::placeholder{color:#B8B6AE !important;}
.wp-block-jetpack-contact-form label,.wp-block-jetpack-contact-form .grunion-field-label{color:#F6F5F2 !important;}
.wp-block-button__link,.wp-block-jetpack-button button,button[type=submit]{
  background:#8DB3DE !important;color:#101418 !important;border-color:#8DB3DE !important;}

/* ---- 7. print. A graphite site prints as a solid black page. ---- */
@media print{
  html,body,.vp,.vsv{background:#FFFFFF !important;color:#101418 !important;}
  .vp__header,.vp__cta,.vsv__header,.vsv__cta{background:#FFFFFF !important;color:#101418 !important;}
  .vp .vp__h1,.vp .vp__h2,.vp .vp__h3,.vsv .vsv__h1,.vsv__name{color:#101418 !important;}
  .vp__totals,.vp__def,.vp__stat,.vsv__code,.vsv__rel{background:#F6F5F2 !important;}
}

/* ---- 8. page-local stylesheets. Contact (315) and Talent Network (314)
        each ship their own inline <style> in page content, which loads
        AFTER the theme stylesheet and therefore wins. These need
        !important. Found by contrast-auditing every text node on the
        page rather than by eye. ---- */
.prose,.prose p,.prose li,.prose dd,.prose td,
[class^="vf-"],[class*=" vf-"],[class^="vf-"] p,[class^="vf-"] li{color:#D6D4CC !important;}
.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose strong,.prose b,.prose dt,
[class^="vf-"] h1,[class^="vf-"] h2,[class^="vf-"] h3,[class^="vf-"] h4,
[class^="vf-"] strong,[class^="vf-"] b{color:#F6F5F2 !important;}
.prose a:not(.wp-block-button__link),[class^="vf-"] a:not(.wp-block-button__link){color:#8DB3DE !important;}

/* light panels inside those pages, flipped so the text rules above are correct */
.vf-card,.vf-flag,.vf-banner,.vf-intro,.vf-note,.vf-box,
[class^="vf-"][class*="card"],[class^="vf-"][class*="flag"],[class^="vf-"][class*="banner"]{
  background:#171B20 !important;border-color:#2A2E33 !important;}
.vf-card h3,.vf-card h4,.vf-flag strong,.vf-banner strong{color:#F6F5F2 !important;}
.vf-flag,.vf-banner,.vf-card p,.vf-card li{color:#D6D4CC !important;}

/* Jetpack file-upload dropzone on the Talent Network form */
.wp-block-jetpack-dropzone,.jetpack-form-file-field__dropzone,
.jetpack-form-file-field__container,[class*="file-field"]{
  background:#171B20 !important;border-color:#3A3F46 !important;}
.wp-block-jetpack-dropzone p,.wp-block-jetpack-dropzone span,
[class*="file-field"],[class*="file-field"] *{color:#D6D4CC !important;}


/* ---- 9. corrections found by the audit ---- */
.vsv__cta-a{color:#101418 !important;}
.vsv__cta-a:hover{background:#F6F5F2 !important;color:#101418 !important;}
.vsv__flag,.vsv__tag,.vsv__pill,.vsv__badge{background:#171B20 !important;color:#D6D4CC !important;border-color:#2A2E33 !important;}
.vsv__flag b,.vsv__flag strong{color:#F6F5F2 !important;}


/* ---- 10. final audit corrections ---- */
.vsv__cta-a{background:#F6F5F2 !important;color:#101418 !important;border-color:#F6F5F2 !important;}
.vsv__cta-a:hover{background:#FFFFFF !important;color:#101418 !important;}
.vp__btn--pri{background:var(--vp-accent-dk) !important;color:#101418 !important;}
.vp__btn--light{background:#F6F5F2 !important;color:#101418 !important;}
.vtg__tab{color:#D6D4CC !important;background:#171B20 !important;border-color:#2A2E33 !important;}
.vtg__tab:hover{color:#F6F5F2 !important;}
.vtg__tab[aria-pressed="true"]{background:var(--vp-accent-dk) !important;color:#101418 !important;}
.vf__help,.vf__note,.vf__legend{color:#D6D4CC !important;}


/* ---- 11. specificity escalation. The catalog and hub pages ship their own
        inline <style> in page content, which carries !important of its own.
        These rules outrank it. ---- */
html body .vsv .vsv__cta-a,html body a.vsv__cta-a{
  background:#F6F5F2 !important;color:#101418 !important;border-color:#F6F5F2 !important;}
html body .vp .vp__btn--pri,html body a.vp__btn--pri{
  background:var(--vp-accent-dk) !important;color:#101418 !important;}
html body .vp .vp__btn--light,html body a.vp__btn--light{
  background:#F6F5F2 !important;color:#101418 !important;}

/* ==================== end dark block ==================== */

/* Locations map footnote — added 2026-09-08 with the PNW footprint change. */
.usmap-note{max-width:760px;margin:14px auto 0;font-size:13.5px;line-height:1.55;
  color:#B8B6AE;text-align:center;}

/* v13.15 - 2026-10-14 (Pacific) - decisions #61, #62. Header and footer mark follow the page hue; "Get in touch" is Claret on every page. CSS outranks the stroke attributes in header.php and footer.php, so no PHP changes. Default = Steel. */
.vnav,.vfoot{--vn-brand-dk:#8DB3DE;}
body.page-id-332 .vnav,body.page-id-332 .vfoot{--vn-brand-dk:#74B898;}
body.page-id-333 .vnav,body.page-id-333 .vfoot,body.page-id-331 .vnav,body.page-id-331 .vfoot{--vn-brand-dk:#FF7A1A;}
body.page-id-325 .vnav,body.page-id-325 .vfoot,body.page-id-360 .vnav,body.page-id-360 .vfoot,body.page-id-362 .vnav,body.page-id-362 .vfoot,body.page-id-363 .vnav,body.page-id-363 .vfoot,body.page-id-365 .vnav,body.page-id-365 .vfoot{--vn-brand-dk:#BE9BD9;}
body.page-id-330 .vnav,body.page-id-330 .vfoot{--vn-brand-dk:#F0D53F;}
body.page-id-314 .vnav,body.page-id-314 .vfoot{--vn-brand-dk:#DC6266;}
.vnav svg polyline,.vfoot svg polyline{stroke:var(--vn-brand-dk);}
.vn__cta{background:#DC6266;}
/* end v13.15 */

/* v13.16 - 2026-10-14 (Pacific) - decision #63. Readability: every text size under 19px in this stylesheet goes up 2px (body copy 15 -> 17, notes 13 -> 15, labels 11 -> 13). Headings unchanged. Button: Oxblood with light bold text (#62 revised). */
.vp__eyebrow{font-size:13px;}
.vp .vp__lede{font-size:19px;}
.vp__btn{font-size:17px;}
.vp__proof{font-size:13px;}
.vp .vp__h3{font-size:19px;}
.vp .vp__p{font-size:18px;}
.vp__row dt{font-size:19px;}
.vp__row dt small{font-size:13px;}
.vp__row dd{font-size:17px;}
.vp__list li{font-size:18px;}
.vp__terms{font-size:17px;}
.vp__stat span{font-size:13px;}
.vp__stat p{font-size:16px;}
.vp__totals div{font-size:17px;}
.vp__totals div span{font-size:12px;}
.vp__def b{font-size:19px;}
.vp__def i{font-size:14px;}
.vp__def p{font-size:17px;}
.vp__note{font-size:15px;}
.vp .vp__cta-p{font-size:18px;}
.vp__cta-note{font-size:16px;}
.vsv__eyebrow{font-size:13px;}
.vsv .vsv__lede{font-size:19px;}
.vsv .vsv__topnote{font-size:16.5px;}
.vsv__count{font-size:13px;}
.vsv__filter{font-size:16px;}
.vsv__btn{font-size:15px;}
.vsv__num{font-size:14px;}
.vsv__name{font-size:19px;}
.vsv__body p{font-size:17px;}
.vsv__code{font-size:13.5px;}
.vsv__flag{font-size:12.5px;}
.vsv .vsv__failhead{font-size:13px;}
.vsv__fails li{font-size:16.5px;}
.vsv__xlink{font-size:16.5px;}
.vsv .vsv__rel-h{font-size:13px;}
.vsv .vsv__rel-p{font-size:16.5px;}
.vsv .vsv__cta-p{font-size:17px;}
.vsv__cta-a{font-size:17px;}
.vsv .vsv__none{font-size:17px;}
.vsv .vsv__draft{font-size:13px;}
.vtg__tab{font-size:17px;}
.vp__gloss-p{font-size:17px;}
.vp .vp__gl h4{font-size:17px;}
.vp .vp__gl p{font-size:16px;}
.vh__eyebrow{font-size:13px;}
.vh__lede{font-size:19px;}
.vh__a{font-size:17px;}
.vh__list li{font-size:17px;}
.vh__table{font-size:17px;}
.vh__table th{font-size:13px;}
.vh__num{font-size:16px;}
.vh__note{font-size:15px;}
.vh__cred-name{font-size:15px;}
.vh__cta-p{font-size:17px;}
.vh__btn{font-size:17px;}
.vh__role-name{font-size:20px;}
.vh__role-lede{font-size:16px;}
.vh__role .vh__list li{font-size:15.5px;}
.vfaq__q{font-size:18px;}
.vfaq__a{font-size:17px;}
.vh__draft{font-size:13px;}
.vfr__eyebrow{font-size:13px;}
.vfr__lede{font-size:19px;}
.vfr__tab{font-size:17px;}
.vfr__col-lede{font-size:17px;}
.vfr__grp-h{font-size:13px;}
.vfr__list li{font-size:16.5px;}
.vfr__table th{font-size:13px;}
.vfr__table td{font-size:15.5px;}
.vfr__link{font-size:16px;}
.vfr__fine{font-size:15px;}
.vfr__cta{font-size:17px;}
.vfr__draft{font-size:13px;}
.vf{font-size:17px;}
.vf label,.vf .wp-block-jetpack-label{font-size:17px;}
.vf .wp-block-jetpack-dropzone p{font-size:16px;}
.vf__help{font-size:15px;}
.vf__note{font-size:15px;}
.vf__urgent{font-size:16px;}
.vn__desc{font-size:11px;}
.vn__menu a{font-size:16px;}
.vn__cta{font-size:16px;}
.vn__toggle{font-size:15px;}
.vfoot__desc{font-size:11px;}
.vfoot__blurb{font-size:16px;}
.vfoot__h{font-size:12px;}
.vfoot a{font-size:16px;}
.vfoot__bot{font-size:14.5px;}
.vhr__eyebrow{font-size:13px;}
.vhr__sub{font-size:19px;}
.vhr__cta{font-size:17px;}
.vhr__link{font-size:17px;}
.vhr__rung h3{font-size:17px;}
.vhr__rung p{font-size:15px;}
.vhr__mode{font-size:12px;}
.usmap-note{font-size:15.5px;}
/* Oxblood replaces Claret (#62 revised): Talent Network mark is lifted Oxblood; Get in touch buttons are Oxblood with light bold text. */
body.page-id-314 .vnav,body.page-id-314 .vfoot{--vn-brand-dk:#E89497;}
.vn__cta{background:#8C3038;color:#F6F5F2;font-weight:700;}
.vn__cta:hover{background:#F6F5F2;color:#101418;}
.vp a.vp__btn--pri[href*="contact"]{background:#8C3038 !important;color:#F6F5F2 !important;font-weight:700;}
.vp a.vp__btn--pri[href*="contact"]:hover{background:#F6F5F2 !important;color:#101418 !important;}
/* Header: Get in touch sits on the same row as the menu (it had been wrapping to a second row). */
@media(min-width:1024px){.vn__panel{display:flex;align-items:center;gap:18px;}}
@media(min-width:1024px) and (max-width:1239px){.vn__menu a{font-size:15px;padding:9px 7px;}.vn__bar{gap:16px;}}
@media(min-width:1024px) and (max-width:1099px){.vn__menu a{font-size:14px;padding:9px 5px;}.vn__cta{padding:10px 12px;}.vn__wrap{padding:0 18px;}}
/* end v13.16 */

/* v13.17 - 2026-10-13 (Pacific) - decisions #66-#68. */
/* Staffing (325) on the dark site — replaces the page's own light-theme <style> (#67). */
.vp__jump{display:flex;flex-wrap:wrap;margin-top:34px;border-top:1px solid #2A2E33;}
.vp__jump a{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:#D6D4CC;text-decoration:none;padding:14px 20px 0 0;margin-right:20px;border-top:2px solid transparent;margin-top:-1px;}
.vp__jump a:hover{color:var(--vp-accent-dk);border-top-color:var(--vp-accent-dk);}
.vp__cmp{margin-top:28px;overflow-x:auto;}
.vp__cmp table{width:100%;border-collapse:collapse;min-width:640px;}
.vp__cmp th,.vp__cmp td{text-align:left;padding:14px 16px;border-bottom:1px solid #2A2E33;font-size:16.5px;color:#D6D4CC;vertical-align:top;}
.vp__cmp thead th{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#F6F5F2;border-bottom:2px solid var(--vp-accent-dk);background:#171B20;}
.vp__cmp tbody th{font-weight:600;color:#F6F5F2;font-size:16.5px;background:#171B20;white-space:nowrap;}
.vp__cmp tbody tr:last-child td,.vp__cmp tbody tr:last-child th{border-bottom:none;}
.vp__rates{margin-top:24px;overflow-x:auto;}
.vp__rates table{width:100%;border-collapse:collapse;min-width:560px;}
.vp__rates th,.vp__rates td{text-align:left;padding:11px 14px;border-bottom:1px solid #2A2E33;font-size:16.5px;color:#D6D4CC;}
.vp__rates thead th{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:#B8B6AE;border-bottom:1px solid #F6F5F2;}
.vp__rates td b,.vp__rates th b{color:#F6F5F2;}
.vp__rates tbody tr:last-child td{border-bottom:none;}
.vp__rates-cap{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--vp-accent-dk);margin-bottom:8px;display:block;}
.vp__roles{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:26px;background:#2A2E33;border:1px solid #2A2E33;}
.vp__roles--4{grid-template-columns:repeat(4,1fr);}
.vp__role{background:#171B20;padding:22px 20px;}
.vp__role b{display:block;font-size:18px;color:#F6F5F2;margin-bottom:10px;}
.vp__role p{font-size:16px;color:#D6D4CC;}
@media(max-width:900px){.vp__roles--4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:800px){.vp__roles{grid-template-columns:1fr;}}
/* "Contact Us" buttons in the service catalogs match the header button (#62). */
html body .vsv a.vsv__cta-a[href*="contact"]{background:#8C3038 !important;color:#F6F5F2 !important;border-color:#8C3038 !important;font-weight:700;}
html body .vsv a.vsv__cta-a[href*="contact"]:hover{background:#F6F5F2 !important;color:#101418 !important;border-color:#F6F5F2 !important;}
/* Home hero lines up with every other page: same left edge, same top spacing (#68). */
.vhr-b,.vhr-b:has(.vhr__media:empty){display:block;min-height:0;}
.vhr-b .vhr__media,.vhr-b:has(.vhr__media:empty) .vhr__media{display:none;}
.vhr-b .vhr__panel,.vhr-b:has(.vhr__media:empty) .vhr__panel{display:block;padding:68px 0 60px;}
.vhr-b .vhr__inner,.vhr-b:has(.vhr__media:empty) .vhr__inner{max-width:var(--vp-max);margin:0 auto;padding:0 24px;}
@media(max-width:719px){.vhr-b .vhr__panel,.vhr-b:has(.vhr__media:empty) .vhr__panel{padding:52px 0 46px;}}
.vhr-b .vhr__eyebrow{padding-bottom:0;border-bottom:0;margin-bottom:0;}
.vhr-b .vhr__h1{margin-top:18px;}
.vhr-b .vhr__sub{margin-top:22px;}
/* end v13.17 */

/* v13.18 - 2026-10-14 (Pacific) - decision #70. Forms (Join our Network 314, Contact 315):
   same left edge as the page title, same text sizes as other pages, fields and tick boxes that are obvious on the dark ground, a normal-sized submit button. */
html body .vf{--vf-tick:#8DB3DE;}
html body.page-id-314 .vf{--vf-tick:#E89497;}
html body .vf,html body .vf-intro,html body .vf-banner{max-width:832px;}
@media(max-width:880px){html body .vf,html body .vf-intro,html body .vf-banner{width:calc(100% - 48px);}}
html body .vf-intro p{font-size:18px;line-height:1.6;}
html body .vf-intro li{font-size:17px;}
html body .vf{font-size:17px;color-scheme:dark;}
html body .vf label,html body .vf .wp-block-jetpack-label,html body .vf legend{font-size:17px;color:#F6F5F2;font-weight:600;}
html body .vf .grunion-checkbox-multiple-label,html body .vf .grunion-radio-label,html body .vf .grunion-option-label,html body .vf label.grunion-field-label.checkbox-multiple,html body .vf label.grunion-field-label.radio{font-weight:400;}
html body .vf input[type=text],html body .vf input[type=email],html body .vf input[type=tel],html body .vf input[type=url],html body .vf input[type=number],html body .vf textarea,html body .vf select{
  background:#1E232A !important;border:1px solid #B8B6AE !important;color:#F6F5F2 !important;font-size:17px !important;padding:12px 14px !important;min-height:50px;box-sizing:border-box;}
html body .vf textarea{min-height:130px;}
html body .vf input::placeholder,html body .vf textarea::placeholder{color:#B8B6AE;opacity:1;}
html body .vf input[type=text]:focus,html body .vf input[type=email]:focus,html body .vf input[type=tel]:focus,html body .vf input[type=url]:focus,html body .vf input[type=number]:focus,html body .vf textarea:focus,html body .vf select:focus{
  border-color:var(--vf-tick) !important;outline:2px solid var(--vf-tick) !important;outline-offset:0;}
html body .vf input[type=checkbox],html body .vf input[type=radio]{
  -webkit-appearance:none !important;appearance:none !important;width:20px !important;height:20px !important;min-width:20px;margin:0 10px 0 0 !important;padding:0 !important;
  background:#1E232A !important;border:2px solid #D6D4CC !important;border-radius:0;vertical-align:middle;cursor:pointer;display:inline-grid;place-content:center;flex:none;}
html body .vf input[type=radio]{border-radius:50% !important;}
html body .vf input[type=checkbox]::before{content:"";width:10px;height:6px;border-left:3px solid #101418;border-bottom:3px solid #101418;transform:translateY(-2px) rotate(-45deg);opacity:0;}
html body .vf input[type=radio]::before{content:"";width:8px;height:8px;border-radius:50%;background:#101418;opacity:0;}
html body .vf input[type=checkbox]:checked,html body .vf input[type=radio]:checked{background:var(--vf-tick) !important;border-color:var(--vf-tick) !important;}
html body .vf input[type=checkbox]:checked::before,html body .vf input[type=radio]:checked::before{opacity:1;}
html body .vf input[type=checkbox]:focus-visible,html body .vf input[type=radio]:focus-visible{outline:2px solid var(--vf-tick);outline-offset:2px;}
html body .vf input[type=checkbox]:hover,html body .vf input[type=radio]:hover{border-color:#F6F5F2 !important;}
html body .vf .wp-block-jetpack-dropzone{background:#1E232A !important;border:1px dashed #B8B6AE !important;color:#F6F5F2 !important;font-size:17px;}
html body .vf .wp-block-button,html body .vf .wp-block-jetpack-button{width:auto !important;}
html body .vf .wp-block-button__link,html body .vf button[type=submit]{width:auto !important;display:inline-block;padding:13px 28px !important;font-size:17px !important;font-weight:700;background:#8C3038 !important;color:#F6F5F2 !important;border:0 !important;}
html body .vf .wp-block-button__link:hover,html body .vf button[type=submit]:hover{background:#F6F5F2 !important;color:#101418 !important;}
html body .vf-intro h2{font-size:13px;}
html body .vf-intro h3{font-size:19px;}
html body .vf-banner{font-size:17px;}
html body .vf-intro{background:transparent !important;}
html body .vf .wp-block-jetpack-options li:has(input:checked) label,html body .vf .wp-block-jetpack-options li label:has(input:checked){background:transparent !important;box-shadow:none !important;color:#F6F5F2 !important;}
html body .vf .vf__legend{font-size:13px;}
html body .vf .vf__note{font-size:15px;}
html body .vf .wp-block-jetpack-dropzone p{font-size:16px;}
/* end v13.18 */

/* v13.19 - 2026-10-13 (Pacific) - decision #71. Join our Network (314): green accents become the page's red.
   Number badges Oxblood with light text; bullets, section labels, side rule and links lifted Oxblood (#E89497, the page's mark color). */
html body.page-id-314 .vf,html body.page-id-314 .vf-intro,html body.page-id-314 .vf-banner{--vf-accent:#E89497;}
html body.page-id-314 .vf-steps li::before{background:#8C3038 !important;color:#F6F5F2 !important;width:24px;height:24px;font:700 13px/24px Archivo,Helvetica,Arial,sans-serif !important;}
html body.page-id-314 .vf-roles li::before{color:#E89497 !important;}
html body.page-id-314 .vf-intro h2{color:#E89497 !important;border-bottom-color:#8C3038 !important;}
html body.page-id-314 .vf .vf__legend{color:#E89497 !important;border-bottom-color:#8C3038 !important;}
html body.page-id-314 .vf-flag{border-left:3px solid #E89497 !important;}
html body.page-id-314 .vf-banner a{color:#E89497 !important;}
html body.page-id-314 .vf-banner a:hover{color:#F6F5F2 !important;}
/* end v13.19 */

/* v13.20 - 2026-10-13 (Pacific) - decision #72. Form answer choices in two columns, filled top-to-bottom (3 options = 2+1, 6 = 3+3, 8 = 4+4). One column on phones. */
html body .vf .wp-block-jetpack-options{display:grid !important;grid-template-columns:1fr 1fr;grid-auto-flow:column;grid-template-rows:auto;column-gap:40px;row-gap:12px;}
html body .vf .wp-block-jetpack-options:has(>:nth-child(3)){grid-template-rows:repeat(2,auto);}
html body .vf .wp-block-jetpack-options:has(>:nth-child(5)){grid-template-rows:repeat(3,auto);}
html body .vf .wp-block-jetpack-options:has(>:nth-child(7)){grid-template-rows:repeat(4,auto);}
html body .vf .wp-block-jetpack-options:has(>:nth-child(9)){grid-template-rows:repeat(5,auto);}
html body .vf .wp-block-jetpack-options>*{display:flex !important;align-items:center;margin:0 !important;}
@media(max-width:600px){html body .vf .wp-block-jetpack-options{grid-template-columns:1fr;grid-auto-flow:row;grid-template-rows:none !important;}}
/* end v13.20 */

/* v13.21 - 2026-10-13 (Pacific) - decision #73. Resume upload is visible: Jetpack's drag overlay was painted solid and hid the drop-zone text.
   Overlay made transparent; an Oxblood "Upload resume" button sits inside the drop zone (the whole zone stays clickable). */
html body .vf .jetpack-form-file-field__container,html body .vf .jetpack-form-file-field__dropzone,html body .vf .jetpack-form-file-field__dropzone-inner{background:transparent !important;}
html body .vf .jetpack-form-file-field__dropzone-inner{cursor:pointer;}
html body .vf .wp-block-jetpack-dropzone{display:flex !important;align-items:center;gap:18px;padding:16px 18px !important;min-height:76px;box-sizing:border-box;}
html body .vf .wp-block-jetpack-dropzone::before{content:"Upload resume";flex:none;display:inline-block;background:#8C3038;color:#F6F5F2;font:700 16px/1 Archivo,Helvetica,Arial,sans-serif;padding:12px 20px;}
html body .vf .wp-block-jetpack-dropzone p{margin:0 !important;color:#D6D4CC !important;font-size:16px !important;}
html body .vf .jetpack-form-file-field__dropzone:hover .wp-block-jetpack-dropzone{border-style:solid !important;border-color:var(--vf-tick) !important;}
/* end v13.21 */

/* v13.22 - 2026-10-14 (Pacific) - decision #76. Brighter colors on the dark site, applied by value across this file:
   body grey #B8B6AE -> #D6D4CC; small/muted grey #8E8C84 -> #B8B6AE;
   Safety/OSHA Sunset #FB4F14 -> Safety orange #FF7A1A; IH Pine #5EA483 -> #74B898; Staffing Plum #A67FC2 -> #BE9BD9;
   Steel #6D9CD1 -> #8DB3DE; Join coral #DE787B -> #E89497. Gold, Oxblood buttons and white unchanged. */

/* v13.24 - 2026-10-14 (Pacific) - decision #80. Links inside body text and lists were plain grey and did not read as links. They now take the page color with an underline, like the "Explore ..." links. */
.vp .vp__p a,.vp .vp__list a,.vp .vp__terms a,.vp .vp__note a,.vp .vp__cta-p a{color:var(--vp-accent-dk,#8DB3DE);text-decoration:none;border-bottom:1px solid currentColor;}
.vp .vp__p a:hover,.vp .vp__list a:hover,.vp .vp__terms a:hover,.vp .vp__note a:hover,.vp .vp__cta-p a:hover{color:#F6F5F2;}
/* end v13.24 */

/* v13.25 - 2026-10-14 (Pacific) - decision #82. Wider text on large screens: paragraphs and intros up to 720px (about 75-80 characters a line); page titles, section headings and closing headings up to 720px so they wrap less. Phones unchanged (text already fills the screen). */
html body .vhr .vhr__sub,html body .vp .vp__p,html body .vp .vp__lede,html body .vp .vp__cta-p,html body .vp .vp__note,html body .vp .vp__terms,html body .vsv .vsv__lede,html body .vsv .vsv__topnote{max-width:720px;}
html body .vp .vp__h1,html body .vsv .vsv__h1,html body .vp .vp__h2,html body .vp .vp__cta-h{max-width:720px;}
/* end v13.25 */

/* v13.26 (2026-10-15 Pacific) - decision #86. Industrial Hygiene catalog: "Common starting points" links above the search bar, five group headings in the catalog (a heading hides when a search leaves its group empty), "What the fix produces" line in each service, and a row of cross-links at the bottom. Safety and Training reuse these classes in their passes. */
.vsv .vsv__start{padding:26px 0 4px;}
.vsv .vsv__start-h{font-family:var(--vsv-mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--vsv-muted);margin:0 0 12px;}
.vsv .vsv__chips{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px;}
.vsv .vsv__chip{display:inline-block;font-family:var(--vsv-sans);font-size:15px;font-weight:600;color:#F6F5F2;text-decoration:none;background:#171B20;border:1px solid #2A2E33;border-left:3px solid var(--c-dk);padding:9px 14px;}
.vsv .vsv__chip:hover{background:#22262B;color:var(--c-dk);}
.vsv .vsv__chip:focus-visible{outline:2px solid var(--c-dk);outline-offset:2px;}
.vsv .vsv__start-p{font-size:16.5px;color:var(--vsv-body-dk,#D6D4CC);margin:0 0 6px;max-width:720px;}
.vsv .vsv__start-p a{color:var(--c-dk);font-weight:600;text-decoration:none;border-bottom:1px solid currentColor;}
.vsv .vsv__start-p a:hover{color:#F6F5F2;}
.vsv .vsv__group{margin-top:30px;}
.vsv .vsv__grouphead{font-family:var(--vsv-mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--c-dk);padding:0 0 10px;border-bottom:2px solid var(--vsv-rule);}
.vsv .vsv__group:not(:has(.vsv__item:not([hidden]))){display:none;}
.vsv .vsv__item{scroll-margin-top:110px;}
.vsv .vsv__body p.vsv__outcome{color:#F6F5F2;border-left:3px solid var(--c-dk);padding:4px 0 4px 14px;}
.vsv .vsv__xlinks{display:flex;flex-wrap:wrap;gap:14px 32px;margin:28px 0;}
/* end v13.26 */

/* v13.27 (2026-10-15 Pacific) - decision #89. Starting-point links: two-word labels stack on two lines (line break in page content) so the row fits one line on desktop; every link matches the tallest one and its text is centred vertically. */
.vsv .vsv__chip{display:inline-flex;align-items:center;line-height:1.25;}
/* end v13.27 */

/* v13.28 (2026-10-15 Pacific) - decision #97. Join our Network intro layout moved from the page's own style block into the theme: two cards side by side, role list in two columns, card padding and section spacing. Phones stay one column. */
html body .vf-intro{margin-top:40px;}
html body .vf-intro h2{margin:28px 0 12px;padding-bottom:8px;}
html body .vf-split{display:grid;gap:14px;margin:0;}
html body .vf-card{padding:16px 18px;}
html body .vf-roles{display:grid;gap:8px;margin:0;padding:0;list-style:none;}
html body .vf-roles li{padding-left:18px;}
@media(min-width:768px){html body .vf-split,html body .vf-roles{grid-template-columns:1fr 1fr;}}
html body .vf-intro + .vf-banner{margin-top:28px;}
/* end v13.28 */

/* v13.29 (2026-10-15 Pacific) - decision #97 fix. With the page-local style blocks gone from Contact and Join, the theme now centers the form, intro and banner on the title's left edge, and restores the spacing those blocks used to set. Phones keep a 16px gutter. */
html body .vf,html body .vf-intro,html body .vf-banner{margin-left:auto;margin-right:auto;box-sizing:border-box;}
html body .vf{margin-bottom:48px;}
html body .vf-intro p{margin:0 0 14px;}
html body .vf-card p{margin:0;}
html body .vf-card h3{margin:0 0 6px;}
@media(max-width:760px){html body .vf,html body .vf-intro,html body .vf-banner{width:calc(100% - 32px);}}
/* end v13.29 */

/* v13.36 (#113), swapped v13.39 (#116): DOE Sites page Copper, About page Chartreuse (Colby 2026-10-17). */
.vp.vp--doe{--vp-accent:#D9925B;--vp-accent-dk:#D9925B;}
.vp.vp--about{--vp-accent:#A6D65A;--vp-accent-dk:#A6D65A;}

/* v13.39 (#116): logo mark and nav accent take the page hue on DOE Sites (Copper) and About (Chartreuse). */
body.page-id-640 .vnav,body.page-id-640 .vfoot{--vn-brand-dk:#D9925B;}
body.page-id-326 .vnav,body.page-id-326 .vfoot{--vn-brand-dk:#A6D65A;}

/* v13.39 (#116): page-color audit fixes.
   1. Location pages and Service Areas: the parent's light panels (services, exposures,
      state requirements) and its gold --teal accents came from the old light theme.
      Dark grounds, Steel accents, Oxblood button. */
.shero,.locsvc,.local,.lochaz,.band{--teal:#8DB3DE;--teald:#8DB3DE;}
.locsvc,.local{background:#101418;border-color:#2A2E33;}
.eyebrow2{color:#8DB3DE;}
.loch3,.local .h2,.local h2{color:#F6F5F2;}
.locp,.local p{color:#D6D4CC;}
.loclist li{border-bottom-color:#2A2E33;}
.loclist li:before{background:#8DB3DE;}
.loclist a{color:#D6D4CC;}
.loclist a:hover{color:#8DB3DE;}
.lochaz{border-top-color:#2A2E33;}
.hazitem{background:#171B20;border-color:#2A2E33;}
.hazitem:hover{border-color:#8DB3DE;}
.hazitem span{color:#F6F5F2;}
.regbox{background:#171B20;border-left-color:#8DB3DE;color:#D6D4CC;}
.regbox b{color:#F6F5F2;}
.band .btn-primary{background:#8C3038;border-color:#8C3038;color:#F6F5F2;}
.band .btn-primary:hover{background:#A33A43;border-color:#A33A43;color:#F6F5F2;}
/* 2. Service Areas map: dark panel, served states Steel. */
.usmap-wrap{background:#101418;border:1px solid #2A2E33;}
.usmap .s-off{fill:#22262B;stroke:#101418;}
.usmap .s-on{fill:#8DB3DE;stroke:#101418;}
.usmap .s-lbl{fill:#101418;}
.usmap-legend{color:#D6D4CC;}
.usmap-legend .ul-on{background:#8DB3DE;}
.usmap-legend .ul-off{background:#22262B;}
/* 3. OSHA citation priorities takes the Safety hue (#76). */
#vsv-ct{--c:#FF7A1A;--c-dk:#FF7A1A;--c-txt:#FF7A1A;}

/* v13.42 (2026-10-28 Pacific): Industries Served page (ID 675), Harbor teal #4FC3C8. */
#vsv-in{--c:#4FC3C8;--c-dk:#4FC3C8;--c-txt:#4FC3C8;}
body.page-id-675 .vnav,body.page-id-675 .vfoot{--vn-brand-dk:#4FC3C8;}
/* Nine menu items: keep one row from 1024px up (tested 1024, 1180, 1280, 1440). */
.vn__menu a{white-space:nowrap;}
@media(min-width:1240px){.vn__menu a{font-size:15px;padding:9px 6px;}.vn__bar{gap:16px;}}
@media(min-width:1100px) and (max-width:1239px){.vn__menu a{font-size:14px;padding:9px 5px;}.vn__cta{padding:10px 12px;}.vn__bar{gap:12px;}.vn__wrap{padding:0 18px;}}
@media(min-width:1024px) and (max-width:1099px){.vn__menu a{font-size:13px;padding:9px 4px;}.vn__cta{padding:10px 10px;font-size:14px;}.vn__bar{gap:10px;}.vn__wrap{padding:0 14px;}}

/* v13.43 (2026-10-29 Pacific, #124): form confirmation readable on dark pages (Join 314, Contact 315).
   Jetpack printed the thank-you in graphite on graphite, so applicants saw nothing after submitting.
   Shows the heading and message only; the echoed field summary is hidden. Steel accent. */
.contact-form-submission{background:#171B20 !important;border:1px solid #2A2E33 !important;border-left:3px solid #8DB3DE !important;padding:22px 24px !important;margin:8px 0 24px !important;}
.contact-form-submission,.contact-form-submission *{color:#D6D4CC !important;}
.contact-form-submission h4{color:#F6F5F2 !important;font-family:Archivo,Helvetica,Arial,sans-serif;font-size:24px;font-weight:600;line-height:1.2;margin:0 0 12px;}
.contact-form-submission .jetpack_forms_contact-form-custom-success-message{font-size:17px;line-height:1.55;}
.contact-form-submission .go-back-message a{color:#8DB3DE !important;font-size:14px;}
.contact-form-submission .jetpack_forms_contact-form-success-summary{display:none !important;}

/* ===== v13.45 (2026-10-30 Pacific, #126): two-column catalogs (IH, Safety, Industries, Training, Expert Witness — any .vsv list).
   Closed items sit two per row on screens 1024px and wider; an opened item spans the full row. List area widens to 1120px.
   TO REVERT: delete this block (from this comment to the END marker) and click Update File. ===== */
@media(min-width:1024px){
.vsv .vsv__wrap{max-width:1120px;}
.vsv .vsv__group{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:40px;align-items:start;}
.vsv .vsv__grouphead{grid-column:1/-1;}
.vsv .vsv__item:has(> .vsv__head[aria-expanded="true"]){grid-column:1/-1;}
.vsv .vsv__item[hidden]{display:none;}
}
/* ===== END v13.45 two-column catalogs ===== */

/* ===== v13.46 (2026-10-30 Pacific): password form for the Rates page. TO REVERT: delete this block. ===== */
.vantage-v13-main .post-password-form{max-width:520px;margin:96px auto 120px;padding:32px 32px 28px;background:#171B20;border:1px solid #2A2E33;border-left:3px solid #8DB3DE;color:#D6D4CC;font-size:17px;line-height:1.55;}
.vantage-v13-main .post-password-form p{color:#D6D4CC;margin:0 0 16px;}
.vantage-v13-main .post-password-form p:empty{display:none;}
.vantage-v13-main .post-password-form label{display:block;color:#F6F5F2;font-size:14px;letter-spacing:.04em;}
.vantage-v13-main .post-password-form input[type=password]{display:block;width:100%;margin-top:8px;padding:10px 12px;background:#0F1215;border:1px solid #3A3F45;color:#F6F5F2;font-size:16px;}
.vantage-v13-main .post-password-form input[type=submit]{margin-top:12px;padding:10px 22px;background:#8DB3DE;border:0;color:#0F1215;font-weight:600;cursor:pointer;}
/* ===== END v13.46 ===== */

/* ===== v13.47 (2026-10-30 Pacific): center the form confirmation box (Contact and Join). TO REVERT: delete this block. ===== */
.contact-form-submission{box-sizing:border-box;width:calc(100% - 48px);max-width:832px;margin-left:auto !important;margin-right:auto !important;}
/* ===== END v13.47 ===== */

/* ===== v13.49 (2026-11-02 Pacific): numbered list with page-color numerals (Staffing: process and example). TO REVERT: delete this block. ===== */
.vp .vp__list--num{counter-reset:vpnum;}
.vp .vp__list--num li{padding-left:30px;}
.vp .vp__list--num li::before{counter-increment:vpnum;content:counter(vpnum) ".";
  background:none;clip-path:none;width:auto;height:auto;top:0;
  color:var(--vp-accent);font-weight:600;}
/* ===== END v13.49 ===== */

/* ===== v13.50 (2026-11-02 Pacific): one content width on every page, matching the header and footer (1180px).
   Before this, .vp pages were 880px and .vsv catalogs 1120px, so sections started at different left edges.
   Body text keeps its own max-width, so line length does not change. TO REVERT: delete this block. ===== */
@media(min-width:1024px){
.vp .vp__wrap,.vsv .vsv__wrap{max-width:1180px;}
}
/* ===== END v13.50 ===== */

/* ===== v13.51 (2026-11-03 Pacific): two follow-ups to v13.50.
   1. The home-page hero uses .vhr__inner, still 880px, so the intro sat right of everything below it. Fixed by
      raising --vp-max, which both .vp__wrap and .vhr__inner read, rather than fighting a more specific rule.
   2. .vsv__start is a flex row; at the wider width its heading no longer wrapped, so on Training and OSHA
      priorities the first line ("All workers:", "Cited most:") sat beside the heading. Only headings that are
      followed by a paragraph are forced onto their own row, so the chip rows on IH, Safety and Industries
      are untouched. TO REVERT: delete this block. ===== */
@media(min-width:1024px){
.vp{--vp-max:1180px;}
}
.vsv .vsv__start>.vsv__start-h:has(+ .vsv__start-p),
.vsv .vsv__start>.vsv__start-p{flex:0 0 100%;}
/* ===== END v13.51 ===== */
/* ===== v13.53 (2026-11-06 Pacific): Home discipline blocks on the merged
   "Services and when to call" section. Each block redefines --vp-accent, so
   its bullet markers and its link take that discipline's color with no
   further rules. TO REVERT: delete this block. ===== */
.vp .vp__disc{margin-top:30px;padding-top:26px;border-top:1px solid var(--vp-rule-dk);}
.vp .vp__disc:first-of-type{margin-top:26px;padding-top:0;border-top:0;}
.vp .vp__disc .vp__h3{font-size:19px;}
.vp .vp__disc .vp__h3 + .vp__p{margin-top:6px;}
.vp .vp__disc--ih{--vp-accent:#74B898;--vp-accent-dk:#74B898;}
.vp .vp__disc--safety{--vp-accent:#FF7A1A;--vp-accent-dk:#FF7A1A;}
.vp .vp__disc--staffing{--vp-accent:#BE9BD9;--vp-accent-dk:#BE9BD9;}
.vp .vp__disc--training{--vp-accent:#F0D53F;--vp-accent-dk:#F0D53F;}
/* ===== END v13.53 ===== */
/* ===== v13.54 (2026-11-06 Pacific): page color band (.vband).
   One component, two fills. Color only by default; add vband--photo and set
   --vband-img on the element for a washed-out photograph behind the same wash.
   The color comes from the modifier class, not the page wrapper, so the same
   component works on .vp pages and on .vsv catalog pages.
   TO REVERT: delete this block and the .vband divs in the page content. ===== */
.vband{--vband:#8DB3DE;position:relative;max-width:1180px;margin:26px auto 0;height:140px;
  border:1px solid #2A2E33;overflow:hidden;
  background:linear-gradient(100deg,color-mix(in srgb,var(--vband) 42%,#101418) 0%,#14181D 62%,#101418 100%);}
.vband::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--vband);}
.vband--photo{background-image:linear-gradient(100deg,color-mix(in srgb,var(--vband) 50%,transparent) 0%,rgba(16,20,24,.72) 68%,rgba(16,20,24,.92) 100%),var(--vband-img);
  background-size:cover;background-position:center;}
@media(max-width:1023px){.vband{height:92px;margin:22px 24px 0;}}
.vband--brand{--vband:#8DB3DE;}
.vband--ih{--vband:#74B898;}
.vband--safety{--vband:#FF7A1A;}
.vband--industries{--vband:#4FC3C8;}
.vband--osha{--vband:#FF7A1A;}
.vband--staffing{--vband:#BE9BD9;}
.vband--training{--vband:#F0D53F;}
.vband--doe{--vband:#D9925B;}
.vband--about{--vband:#A6D65A;}
.vband--talent{--vband:#E89497;}
/* ===== END v13.54 ===== */
/* ===== v13.55 (2026-11-06 Pacific): two corrections to v13.54 and the forms.
   1. The band's color died about a quarter of the way across. Extended with
      two mid stops so it carries most of the width before reaching graphite.
   2. The Join and Contact form blocks sat in an 832px column centred in the
      viewport, while their page header and band sit in the 1180px column at
      the site's left edge. They now start on that same edge and keep their
      readable field width. TO REVERT: delete this block. ===== */
.vband{background:linear-gradient(100deg,
  color-mix(in srgb,var(--vband) 48%,#101418) 0%,
  color-mix(in srgb,var(--vband) 28%,#101418) 44%,
  color-mix(in srgb,var(--vband) 11%,#101418) 74%,
  #101418 100%);}
.vband--photo{background-image:linear-gradient(100deg,
  color-mix(in srgb,var(--vband) 55%,transparent) 0%,
  color-mix(in srgb,var(--vband) 30%,rgba(16,20,24,.55)) 46%,
  rgba(16,20,24,.80) 78%,rgba(16,20,24,.93) 100%),var(--vband-img);}
@media(min-width:1024px){
.vantage-v13-main .vf-intro,
.vantage-v13-main .vf-banner,
.vantage-v13-main .wp-block-jetpack-contact-form{margin-left:max(0px,calc(50% - 590px));margin-right:auto;}
}
/* ===== END v13.55 ===== */
/* ===== v13.56 (2026-11-06 Pacific): Join is always Rose and always secondary.
   Targeted by href, so the header needs no markup change. Sized to match the
   Get in touch button beside it (49px tall, 16px, 11px/17px padding) but
   outlined rather than solid, so the primary action still reads first.
   Desktop only — below 1024px the menu is a panel and a bordered row there
   would read as a box, not a button. .vjoin-line is the quiet "Looking for
   work instead?" aside in the closing block on the client-facing pages.
   TO REVERT: delete this block. ===== */
@media(min-width:1024px){
.vn__menu a[href*="join-our-network"]{display:inline-flex;align-items:center;
  padding:11px 17px;font-size:16px;font-weight:600;line-height:1.55;
  border:1px solid #E89497;color:#E89497;border-radius:0;text-decoration:none;}
.vn__menu a[href*="join-our-network"]:hover{background:#E89497;color:#101418;}
}
.vp__cta a[href*="join-our-network"].vp__btn{background:transparent;
  border:1px solid #E89497;color:#E89497;}
.vp__cta a[href*="join-our-network"].vp__btn:hover{background:#E89497;color:#101418;}
.vjoin-line{font-size:15px;color:#9A978F;margin-top:16px;}
.vjoin-line a{color:#E89497;text-decoration:none;border-bottom:1px solid currentColor;}
/* ===== END v13.56 ===== */
/* ===== v13.57 (2026-11-06 Pacific): sticky header.
   The nav was position:static, so Join and Get in touch scrolled away and a
   reader had no way to reach either without going back to the top. The bar is
   77px and already carries an opaque background and a bottom rule, so nothing
   else is needed to make it read correctly over content.
   scroll-padding-top keeps the jump links (#coverage, #process, #engage and
   the rest) from landing their headings underneath the pinned bar.
   The admin-bar offsets apply only when logged in.
   TO REVERT: delete this block. ===== */
.vnav{position:sticky;top:0;z-index:100;}
html{scroll-padding-top:92px;}
body.admin-bar .vnav{top:32px;}
@media(max-width:782px){body.admin-bar .vnav{top:46px;}}
/* ===== END v13.57 ===== */
/* ===== v13.58 (2026-11-06 Pacific): color the four Home discipline blocks.
   The grey hairline above each block becomes a 2px rule in that discipline's
   own color, and the first block gains one so all four are marked the same
   way. Heading text stays near-white: color was tried on lead-in text on
   11/02 and reverted to keep type consistent site-wide, so the color carries
   on rules, bullets and links instead. TO REVERT: delete this block. ===== */
.vp .vp__disc{border-top:2px solid var(--vp-accent);}
.vp .vp__disc:first-of-type{border-top:2px solid var(--vp-accent);margin-top:28px;padding-top:22px;}
/* ===== END v13.58 ===== */
/* ===== v13.59 (2026-11-06 Pacific): bands halved, plus a closing band.
   1. 140px was taking too much of the page; 70px desktop and 46px on phones.
   2. .vband--bottom is the same band mirrored, sitting above the footer and
      below the closing CTA. The gradient runs right to left and the 4px edge
      moves to the right, so the pair reads as a matched set opening and
      closing the page. Emitted from the child footer, so it is on every page.
   TO REVERT: delete this block (and the footer.php echo for the bottom one). ===== */
.vband{height:52px;}
@media(max-width:1023px){.vband{height:34px;}}
.vband--bottom{margin:44px auto 0;}
.vband--bottom::after{left:auto;right:0;}
.vband--bottom{background:linear-gradient(260deg,
  color-mix(in srgb,var(--vband) 48%,#101418) 0%,
  color-mix(in srgb,var(--vband) 28%,#101418) 44%,
  color-mix(in srgb,var(--vband) 11%,#101418) 74%,
  #101418 100%);}
/* ===== END v13.59 ===== */

/* ---------- v13.60 - band spacing 30/30 + hero rule color (2026-11-06) ----------
   TO REVERT: delete this block.
   1. Equalises the black gap above and below the color band at 30px on all
      three page architectures (.vp header, .vsv header, parent .shero).
   2. Darkens the leftover light-theme hero bottom rule that read as a white
      line under the Home hero.
   ------------------------------------------------------------------------- */
.vband:not(.vband--bottom){margin-top:0;}
.vhr:has(+ .vband),
.vp__header:has(+ .vband),
.vsv__header:has(+ .vband){padding-bottom:30px;}
.vband + .vp__sec,
.vband + .vsv__wrap{padding-top:30px;}
.shero:has(+ .wrap > .vband){padding-bottom:30px;}
.wrap:has(> .vband) + section{padding-top:30px;}
.vhr{border-bottom-color:#2A2E33;}
@media(max-width:1023px){
.vband:not(.vband--bottom){margin:0 24px 0;}
}

/* ---------- v13.61 - band gutter on the parent template (2026-11-06) ----------
   TO REVERT: delete this block.
   On Service Areas and the 28 location pages the band sits inside .wrap,
   which already supplies a 24px gutter. The band's own 24px side margin was
   stacking on top of it, so below 1024px the band started at 48px while all
   text started at 24px. Zero the band margin when .wrap is the parent.
   --------------------------------------------------------------------------- */
@media(max-width:1023px){
.wrap > .vband:not(.vband--bottom){margin-left:0;margin-right:0;}
}

/* ---------- v13.62 - CTA note breathing room (2026-11-06) ----------
   TO REVERT: delete this block.
   .vp p{margin:0} (0,1,1) was beating .vp__cta-note{margin-top:24px} (0,1,0),
   so the 48-hour note computed to margin-top:0 and sat hard against the
   button row on every .vp page. Raised specificity and set 30px to match the
   30/30 band rhythm. .band selector covers the parent page.php template.
   ------------------------------------------------------------------- */
.vp .vp__cta-note,
.vantage-v13-main .vp__cta-note,
.band .vp__cta-note,
.vsv__cta .vp__cta-note{margin-top:30px;font-size:14px;color:#9A978F;}

/* ---------- v13.64 - Home hero gap above the band (2026-11-07) ----------
   TO REVERT: delete this block.
   v13.60 set .vhr padding-bottom to 30px, but .vhr__panel carries its own
   60px padding-bottom INSIDE the hero, so the visible gap above the band on
   Home was 91px against 31px on Staffing and 34px on Industrial Hygiene.
   Zeroing the panel padding only where a band follows brings Home to 30px
   and leaves the hero untouched on any page without one. The selector needs
   .vhr.vhr-b because .vhr-b:has(.vhr__media:empty) .vhr__panel is (0,4,0) and
   beat the first attempt at (0,3,0); this ties at (0,4,0) and wins on order.
   ------------------------------------------------------------------- */
.vhr.vhr-b:has(+ .vband) .vhr__panel{padding-bottom:0;}

/* ---------- v13.65 - service blocks: vertical bar, not a top rule (2026-11-07) ----------
   TO REVERT: delete this block. v13.58 colored top borders come back.
   The colored top rule on each .vp__disc sat directly above its own heading,
   which reads as a divider closing the PREVIOUS block - Occupational Safety's
   orange line looked like it belonged to Industrial Hygiene. Replaced with a
   4px vertical bar down the left of each block, matching the 4px accent edge
   on .vband so the vertical and horizontal accents read as one system.
   v13.53 and v13.58 are left in place on purpose: their border-top rules are
   inert while this block is present, so deleting this block restores the old
   look exactly.
   ------------------------------------------------------------------- */
.vp .vp__disc,
.vp .vp__disc:first-of-type{border-top:0;padding-top:0;padding-left:26px;position:relative;}
.vp .vp__disc{margin-top:34px;}
.vp .vp__disc:first-of-type{margin-top:30px;}
.vp .vp__disc::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:4px;background:var(--vp-accent);}

/* ---------- v13.68 - engagement rows + footer band direction (2026-11-08) ----------
   TO REVERT: delete this block.
   1. The four engagement rows under "Four ways Vantage works with you" take the
      same 4px vertical bar as the service blocks. Steel on Scoped project,
      Lilac on the three coverage models, because Lilac is the Staffing color
      and the split reads as one way to buy consulting, three ways to buy
      coverage. Scoped to page-id 319: Staffing uses .vp__row too and was left
      alone deliberately.
   2. v13.59 mirrored the closing band so it ran right to left. Owner call
      2026-11-08: both bands run the same direction, accent on the left.
   Numbered v13.68 because v13.66 is this date's functions.php change and
   v13.67 is the current build.
   ------------------------------------------------------------------- */
.page-id-319 .vp__row{position:relative;padding-left:26px;}
.page-id-319 .vp__row::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:4px;background:#8DB3DE;}
.page-id-319 .vp__row:not(:first-of-type)::before{background:#BE9BD9;top:0;bottom:0;}
.page-id-319 .vp__row:nth-of-type(2)::before{top:2px;}
.page-id-319 .vp__row:last-of-type::before{bottom:2px;}
.vband--bottom{background:linear-gradient(100deg,
  color-mix(in srgb,var(--vband) 48%,#101418) 0%,
  color-mix(in srgb,var(--vband) 28%,#101418) 44%,
  color-mix(in srgb,var(--vband) 11%,#101418) 74%,
  #101418 100%);}
.vband--bottom::after{left:0;right:auto;}
