/* Contractor directory — derived from the approved prototype.
   Display: Barlow Condensed. Body: Barlow. Identifiers: IBM Plex Mono.
   Setting every identifier in mono is the load-bearing choice: it signals a
   record rather than marketing copy, which is the credibility a reference tool
   needs in order to be cited. */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --red:#BF281F; --red-dark:#8C1B14; --red-light:#F2DADA;
  --ink:#1A1A1A; --ink-mid:#252628; --ink-soft:#444547;
  --rule:#DEDBD6; --surface:#F7F5F2; --white:#FFF;
  --gold:#C4922A; --gold-light:#F7EFDC; --gold-ink:#7A5C0E;
  --steel:#5A6572; --steel-mid:#8A94A0; --steel-light:#EDF0F3;
  --green:#2A7A45; --green-light:#EAF5EE;
  --blue:#1A55B0; --blue-light:#E6F0FF;
}

html { scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important} }

body { font-family:'Barlow',sans-serif; color:var(--ink); background:var(--surface); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; }
a { color:inherit; }
:focus-visible { outline:2px solid var(--red); outline-offset:2px; }
.mono { font-family:'IBM Plex Mono',monospace; font-variant-ligatures:none; }
.skip { position:absolute; left:-9999px; }
.skip:focus { left:8px; top:8px; background:#fff; padding:8px 14px; z-index:999; }

/* nav */
.dnav { position:sticky; top:0; z-index:100; background:var(--ink-mid); display:flex; align-items:center; justify-content:space-between; padding:0 40px; height:58px; border-bottom:3px solid var(--red); }
.dnav-brand { display:flex; align-items:center; gap:10px; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:17px; color:#fff; text-decoration:none; }
.dnav-brand .badge { background:var(--steel); color:#fff; font-size:9px; font-weight:800; letter-spacing:.12em; padding:3px 7px; border-radius:2px; text-transform:uppercase; font-family:'IBM Plex Mono',monospace; }
.dnav-links { display:flex; gap:26px; align-items:center; }
.dnav-links a { color:rgba(255,255,255,.65); text-decoration:none; font-size:14px; font-weight:500; }
.dnav-links a:hover { color:#fff; }
.dnav-cta { background:var(--red); color:#fff!important; padding:7px 18px; border-radius:3px; font-weight:600!important; }
.dnav-cta:hover { background:var(--red-dark); }

/* masthead */
.mast { background:var(--ink-mid); padding:48px 40px 0; position:relative; overflow:hidden; }
.mast::after,.phead::after { content:''; position:absolute; inset:0; pointer-events:none; background-image:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px); background-size:28px 28px; }
.mast-in { max-width:1240px; margin:0 auto; position:relative; z-index:1; }
.eyebrow { display:inline-flex; align-items:center; gap:10px; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--steel-mid); margin-bottom:16px; }
.eyebrow .dot { width:6px; height:6px; border-radius:50%; background:var(--green); box-shadow:0 0 0 3px rgba(42,122,69,.25); }
.mast h1 { font-family:'Barlow Condensed',sans-serif; font-size:clamp(36px,5vw,62px); font-weight:800; line-height:.95; color:#fff; text-transform:uppercase; letter-spacing:-.012em; margin-bottom:18px; max-width:16ch; }
.mast h1 em { font-style:normal; color:var(--red); }
.mast-sub { color:rgba(255,255,255,.55); font-size:16px; line-height:1.7; max-width:620px; margin-bottom:30px; }
.searchrow { display:flex; gap:10px; max-width:720px; margin-bottom:26px; }
.searchrow input[type=text] { flex:1; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.16); border-radius:3px; padding:13px 16px; color:#fff; font-family:'Barlow',sans-serif; font-size:15px; }
.searchrow input::placeholder { color:rgba(255,255,255,.35); }
.searchrow input:focus { outline:none; border-color:var(--red); background:rgba(255,255,255,.1); }
.btn-search { background:var(--red); color:#fff; border:none; cursor:pointer; padding:0 26px; border-radius:3px; font-family:'Barlow Condensed',sans-serif; font-size:15px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.btn-search:hover { background:var(--red-dark); }
.strip { display:flex; flex-wrap:wrap; border-top:1px solid rgba(255,255,255,.1); }
.stat { padding:16px 32px 18px 0; margin-right:32px; border-right:1px solid rgba(255,255,255,.08); }
.stat:last-child { border-right:none; }
.stat-v { font-family:'IBM Plex Mono',monospace; font-size:23px; font-weight:600; color:#fff; line-height:1.1; }
.stat-l { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--steel-mid); letter-spacing:.08em; text-transform:uppercase; margin-top:3px; }

.prov { background:#1B1C1E; padding:11px 40px; font-family:'IBM Plex Mono',monospace; font-size:11px; color:rgba(255,255,255,.4); display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.prov strong { color:rgba(255,255,255,.7); font-weight:500; }
.prov a { color:var(--steel-mid); }
.prov a:hover { color:#fff; }

/* layout */
.wrap { max-width:1240px; margin:0 auto; padding:40px; display:grid; grid-template-columns:236px 1fr; gap:40px; align-items:start; }
.wrap-1 { max-width:1240px; margin:0 auto; padding:40px; }
.rail { position:sticky; top:78px; }
.rail-g { margin-bottom:24px; }
.rail-t { font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:var(--steel); padding-bottom:9px; margin-bottom:10px; border-bottom:1px solid var(--rule); }
.filt { display:flex; align-items:center; gap:9px; padding:6px 0; font-size:14px; color:var(--ink-soft); cursor:pointer; }
.filt:hover { color:var(--ink); }
.filt input { position:absolute; opacity:0; pointer-events:none; }
.box { width:15px; height:15px; border:1px solid #C4C0BA; border-radius:2px; background:#fff; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.box::after { content:''; width:7px; height:7px; border-radius:1px; background:var(--red); transform:scale(0); transition:transform .12s; }
.filt input:checked ~ .box { border-color:var(--red); }
.filt input:checked ~ .box::after { transform:scale(1); }
.filt input:focus-visible ~ .box { outline:2px solid var(--red); outline-offset:2px; }
.filt-c { margin-left:auto; font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--steel-mid); }
.rail-note { background:var(--gold-light); border-left:3px solid var(--gold); padding:13px 14px; font-size:12.5px; color:var(--gold-ink); line-height:1.55; }
.btn-apply { display:block; width:100%; text-align:center; background:var(--ink-mid); color:#fff; border:none; cursor:pointer; padding:10px; border-radius:3px; font-family:'Barlow Condensed',sans-serif; font-size:13px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; margin-bottom:18px; }
.btn-apply:hover { background:var(--red); }

.rhead { display:flex; justify-content:space-between; align-items:baseline; padding-bottom:14px; border-bottom:2px solid var(--ink-mid); flex-wrap:wrap; gap:10px; }
.rcount { font-family:'Barlow Condensed',sans-serif; font-size:20px; font-weight:700; text-transform:uppercase; color:var(--ink-mid); }
.rcount span { color:var(--red); }
.rsort { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--steel); letter-spacing:.06em; text-transform:uppercase; }

/* record card — the signature element */
.rec { display:grid; grid-template-columns:5px 1fr; background:#fff; border:1px solid var(--rule); border-top:none; text-decoration:none; color:inherit; transition:box-shadow .15s,transform .15s; }
.rec:first-of-type { border-top:1px solid var(--rule); }
.rec:hover { box-shadow:0 6px 26px rgba(37,38,40,.10); transform:translateY(-1px); }
.spine { background:var(--steel-mid); }
.spine.high { background:var(--red); }
.spine.moderate { background:var(--gold); }
.rbody { padding:19px 24px; display:grid; grid-template-columns:1fr 200px; gap:24px; }
.rtop { display:flex; align-items:flex-start; gap:10px; margin-bottom:4px; flex-wrap:wrap; }
.rname { font-family:'Barlow Condensed',sans-serif; font-size:22px; font-weight:700; text-transform:uppercase; color:var(--ink-mid); line-height:1.05; }
.rec:hover .rname { color:var(--red); }
.chip { font-family:'IBM Plex Mono',monospace; font-size:9px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; padding:3px 7px; border-radius:2px; white-space:nowrap; margin-top:3px; }
.chip.claimed { background:var(--blue-light); color:var(--blue); }
.chip.unclaimed { background:#F1EFEC; color:var(--steel-mid); }
.chip.expiring { background:var(--gold-light); color:var(--gold-ink); }
.chip.trained { background:var(--green-light); color:var(--green); }
.chip.lapsed { background:#F1EFEC; color:var(--steel); }
.chip.excluded { background:var(--red-light); color:var(--red-dark); }
.rloc { font-size:13.5px; color:var(--ink-soft); margin-bottom:11px; }
.rids { display:flex; gap:18px; flex-wrap:wrap; font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--steel); margin-bottom:11px; }
.rids b { color:var(--steel-mid); font-weight:500; }
.rnaics { display:flex; gap:6px; flex-wrap:wrap; }
.tag { font-family:'IBM Plex Mono',monospace; font-size:11px; background:var(--steel-light); color:var(--steel); padding:3px 8px; border-radius:2px; }
.tag.A { background:var(--red-light); color:var(--red-dark); }
.tag.B { background:#FBE9E7; color:#A0392F; }
.tag.C { background:var(--gold-light); color:var(--gold-ink); }
.rexp { border-left:1px solid var(--rule); padding-left:22px; display:flex; flex-direction:column; justify-content:center; }
.exp-l { font-family:'IBM Plex Mono',monospace; font-size:9px; letter-spacing:.11em; text-transform:uppercase; color:var(--steel-mid); margin-bottom:6px; }
.exp-v { font-family:'Barlow Condensed',sans-serif; font-size:19px; font-weight:800; text-transform:uppercase; line-height:1; margin-bottom:8px; }
.exp-v.high { color:var(--red); } .exp-v.moderate { color:#9A7118; } .exp-v.low { color:var(--steel); }
.meter { display:flex; gap:3px; margin-bottom:8px; }
.seg { height:5px; flex:1; border-radius:1px; background:#E6E3DF; }
.seg.on.high { background:var(--red); } .seg.on.moderate { background:var(--gold); } .seg.on.low { background:var(--steel-mid); }
.exp-c { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-soft); line-height:1.5; }
.exp-c b { color:var(--ink); font-weight:600; }

.empty { background:#fff; border:1px dashed var(--rule); padding:44px 30px; text-align:center; }
.empty h4 { font-family:'Barlow Condensed',sans-serif; font-size:22px; font-weight:700; text-transform:uppercase; color:var(--ink-mid); margin-bottom:8px; }
.empty p { font-size:14.5px; color:var(--ink-soft); max-width:52ch; margin:0 auto 16px; line-height:1.7; }

/* profile */
.phead { background:var(--ink-mid); padding:24px 40px 0; position:relative; overflow:hidden; }
.phead-in { max-width:1240px; margin:0 auto; position:relative; z-index:1; }
.crumb { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--steel-mid); margin-bottom:20px; }
.crumb a { color:var(--steel-mid); text-decoration:none; }
.crumb a:hover { color:#fff; }
.crumb span { color:rgba(255,255,255,.25); margin:0 7px; }
.ptitle { display:grid; grid-template-columns:1fr auto; gap:40px; align-items:end; padding-bottom:24px; }
.pname { font-family:'Barlow Condensed',sans-serif; font-size:clamp(30px,4.2vw,50px); font-weight:800; text-transform:uppercase; color:#fff; line-height:.98; margin-bottom:12px; }
.pmeta { display:flex; gap:14px; flex-wrap:wrap; align-items:center; font-size:14px; color:rgba(255,255,255,.55); }
.pmeta .chip { margin-top:0; }
.pcard { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:4px; padding:17px 19px; width:290px; }
.pcard h5 { font-family:'Barlow Condensed',sans-serif; font-size:16px; font-weight:700; text-transform:uppercase; color:#fff; margin-bottom:5px; }
.pcard p { font-size:12.5px; color:rgba(255,255,255,.5); line-height:1.55; margin-bottom:12px; }
.btn-claim { display:block; text-align:center; background:var(--red); color:#fff; padding:11px; border-radius:3px; text-decoration:none; font-family:'Barlow Condensed',sans-serif; font-size:14px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.btn-claim:hover { background:var(--red-dark); }

/* verified readout — deliberately a data block, not a seal. A shield implies
   judgment; a readout implies fact, and fact is all we can substantiate. */
.verif { background:rgba(42,122,69,.10); border:1px solid rgba(85,201,126,.35); border-radius:4px; padding:15px 17px; width:290px; }
.verif-h { display:flex; align-items:center; gap:8px; margin-bottom:11px; padding-bottom:10px; border-bottom:1px solid rgba(85,201,126,.25); }
.tick { width:17px; height:17px; border-radius:50%; background:#55C97E; display:flex; align-items:center; justify-content:center; color:#123D22; font-size:10px; font-weight:800; }
.verif-t { font-family:'Barlow Condensed',sans-serif; font-size:15px; font-weight:700; text-transform:uppercase; color:#8FE3AC; letter-spacing:.06em; }
.verif-r { display:flex; justify-content:space-between; gap:12px; padding:4px 0; font-size:12.5px; color:rgba(255,255,255,.55); }
.verif-r b { font-family:'IBM Plex Mono',monospace; font-weight:500; color:rgba(255,255,255,.9); font-size:12px; }
.verif-f { margin-top:10px; padding-top:10px; border-top:1px solid rgba(85,201,126,.25); font-size:11px; color:rgba(255,255,255,.42); line-height:1.55; }
.verif-f a { color:#8FE3AC; }

.idstrip { background:#1B1C1E; border-top:1px solid rgba(255,255,255,.08); padding:0 40px; }
.idstrip-in { max-width:1240px; margin:0 auto; display:flex; flex-wrap:wrap; }
.idc { padding:13px 26px 14px 0; margin-right:26px; border-right:1px solid rgba(255,255,255,.07); }
.idc:last-child { border-right:none; }
.idk { font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--steel); margin-bottom:3px; }
.idv { font-family:'IBM Plex Mono',monospace; font-size:14px; font-weight:500; color:rgba(255,255,255,.88); }
.idv.ok { color:#55C97E; } .idv.warn { color:#E5B04B; } .idv.bad { color:#FF7A70; }

.pwrap { max-width:1240px; margin:0 auto; padding:40px; display:grid; grid-template-columns:1fr 320px; gap:44px; align-items:start; }
.panel { background:#fff; border:1px solid var(--rule); margin-bottom:24px; }
.phd { padding:14px 24px; border-bottom:1px solid var(--rule); display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.ptl { font-family:'Barlow Condensed',sans-serif; font-size:17px; font-weight:700; text-transform:uppercase; color:var(--ink-mid); letter-spacing:.045em; }
.ptag { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.09em; text-transform:uppercase; color:var(--steel-mid); }
.ptag a { color:var(--red); }
.pbd { padding:24px; }

.uhero { display:grid; grid-template-columns:148px 1fr; gap:26px; align-items:center; padding-bottom:20px; margin-bottom:20px; border-bottom:1px solid var(--rule); }
.udial { text-align:center; }
.uscore { font-family:'Barlow Condensed',sans-serif; font-size:60px; font-weight:800; line-height:.85; }
.uscore.high { color:var(--red); } .uscore.moderate { color:#9A7118; } .uscore.low { color:var(--steel); }
.uof { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--steel-mid); margin-top:4px; }
.urate { font-family:'Barlow Condensed',sans-serif; font-size:15px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; margin-top:9px; padding-top:9px; border-top:1px solid var(--rule); }
.urate.high { color:var(--red); } .urate.moderate { color:#9A7118; } .urate.low { color:var(--steel); }
.ucopy { font-size:14.5px; color:var(--ink-soft); line-height:1.7; }
.ucopy strong { color:var(--ink); font-weight:600; }

.calc { border:1px solid var(--rule); border-radius:3px; overflow:hidden; margin-bottom:20px; }
.crow { display:grid; grid-template-columns:1fr 90px 54px; gap:12px; align-items:baseline; padding:10px 16px; border-bottom:1px solid #F2F0EC; font-size:13.5px; }
.crow:last-child { border-bottom:none; }
.crow.total { background:var(--surface); border-top:1px solid var(--rule); }
.cwhy { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--steel-mid); text-align:right; }
.cpts { font-family:'IBM Plex Mono',monospace; font-size:13px; font-weight:600; color:var(--ink); text-align:right; }
.crow.total .cwhat { font-family:'Barlow Condensed',sans-serif; font-size:15px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.crow.total .cpts { color:var(--red); font-size:15px; }
.capnote { padding:10px 16px; background:var(--gold-light); font-size:12.5px; color:var(--gold-ink); border-top:1px solid var(--rule); }

.catrow { display:grid; grid-template-columns:62px 1fr 104px; gap:16px; align-items:center; padding:11px 0; border-bottom:1px solid #F2F0EC; }
.catrow:last-child { border-bottom:none; }
.catn { font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:600; color:var(--red); }
.catl { font-size:14px; color:var(--ink); }
.cats { font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--steel-mid); margin-top:1px; }
.catc { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.07em; text-transform:uppercase; text-align:right; }
.catc.strong { color:var(--red); } .catc.possible { color:var(--gold-ink); } .catc.conditional { color:var(--steel); }

.callout { background:var(--blue-light); border-left:3px solid var(--blue); padding:15px 18px; margin-top:18px; font-size:13.5px; color:#17407E; line-height:1.65; }
.callout strong { color:#0F2E5C; }
.disc { background:var(--surface); border-left:3px solid var(--steel-mid); padding:13px 16px; margin-top:16px; font-size:12.5px; color:var(--ink-soft); line-height:1.6; }
.flash { background:var(--green-light); border-left:3px solid var(--green); padding:13px 18px; margin-bottom:20px; font-size:14px; color:#1B5130; }

.dt { width:100%; border-collapse:collapse; font-size:14px; }
.dt th { background:var(--surface); text-align:left; font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--steel); padding:10px 24px; border-bottom:1px solid var(--rule); }
.dt td { padding:11px 24px; border-bottom:1px solid #F4F2EF; color:var(--ink-soft); vertical-align:top; }
.dt tr:last-child td { border-bottom:none; }
.dt .code { font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--ink); white-space:nowrap; }
.pri { font-family:'IBM Plex Mono',monospace; font-size:9px; background:var(--ink-mid); color:#fff; padding:2px 6px; border-radius:2px; letter-spacing:.08em; margin-left:7px; }
.wA,.wB { color:var(--red); font-weight:600; } .wC { color:var(--gold-ink); font-weight:600; } .wD { color:var(--steel); font-weight:600; }

.tl { position:relative; padding-left:26px; }
.tl::before { content:''; position:absolute; left:5px; top:6px; bottom:6px; width:1px; background:var(--rule); }
.tli { position:relative; padding-bottom:18px; }
.tli:last-child { padding-bottom:0; }
.tli::before { content:''; position:absolute; left:-26px; top:5px; width:11px; height:11px; border-radius:50%; background:#fff; border:2px solid var(--steel-mid); }
.tli.now::before { border-color:var(--red); background:var(--red); }
.tld { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--steel-mid); }
.tlt { font-size:14px; color:var(--ink); margin-top:1px; }
.tln { font-size:13px; color:var(--ink-soft); margin-top:2px; }

.side { position:sticky; top:78px; }
.scta { background:var(--ink-mid); padding:24px; margin-bottom:20px; border-top:3px solid var(--red); }
.seye { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--steel-mid); margin-bottom:9px; }
.scta h4 { font-family:'Barlow Condensed',sans-serif; font-size:25px; font-weight:800; text-transform:uppercase; color:#fff; line-height:1.02; margin-bottom:10px; }
.scta p { font-size:13.5px; color:rgba(255,255,255,.55); line-height:1.65; margin-bottom:16px; }
.stier { background:rgba(255,255,255,.06); border-radius:3px; padding:12px 14px; margin-bottom:8px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.stn { font-family:'Barlow Semi Condensed',sans-serif; font-size:15px; font-weight:600; color:#fff; }
.stw { font-size:11.5px; color:var(--steel-mid); margin-top:1px; }
.stp { font-family:'IBM Plex Mono',monospace; font-size:13px; color:rgba(255,255,255,.75); }
.btn-side { display:block; text-align:center; background:var(--red); color:#fff; padding:13px; border-radius:3px; text-decoration:none; margin-top:14px; font-family:'Barlow Condensed',sans-serif; font-size:15px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; border:none; cursor:pointer; width:100%; }
.btn-side:hover { background:var(--red-dark); }
.btn-side.dark { background:var(--ink-mid); } .btn-side.dark:hover { background:var(--red); }
.sbox { background:#fff; border:1px solid var(--rule); padding:19px 21px; margin-bottom:20px; }
.sbox h5 { font-family:'Barlow Condensed',sans-serif; font-size:15px; font-weight:700; text-transform:uppercase; color:var(--ink-mid); letter-spacing:.05em; margin-bottom:10px; }
.sbox p { font-size:13.5px; color:var(--ink-soft); line-height:1.65; }
.slink { display:flex; align-items:center; justify-content:space-between; padding:9px 0; border-bottom:1px solid #F4F2EF; font-size:13.5px; color:var(--ink); text-decoration:none; }
.slink:last-child { border-bottom:none; }
.slink:hover,.slink:hover .arr { color:var(--red); }
.arr { color:var(--steel-mid); font-family:'IBM Plex Mono',monospace; font-size:12px; }
.nloc { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--steel-mid); margin-top:1px; }
.cline { display:flex; gap:10px; padding:7px 0; font-size:13.5px; color:var(--ink-soft); }
.cline b { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--steel-mid); min-width:56px; padding-top:3px; }

/* forms */
.form-row { margin-bottom:16px; }
.form-row label { display:block; font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--steel); margin-bottom:6px; }
.form-row input,.form-row textarea,.form-row select { width:100%; border:1px solid var(--rule); border-radius:3px; padding:11px 13px; font-family:'Barlow',sans-serif; font-size:15px; color:var(--ink); background:#fff; }
.form-row input:focus,.form-row textarea:focus { outline:none; border-color:var(--red); }
.form-row textarea { min-height:110px; resize:vertical; }
.form-err { color:var(--red-dark); font-size:12.5px; margin-top:5px; }
.form-help { font-size:12.5px; color:var(--steel); margin-top:5px; line-height:1.55; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }

/* methodology */
.dochead { background:var(--ink-mid); padding:42px 40px 38px; }
.dochead-in { max-width:880px; margin:0 auto; }
.dochead h1 { font-family:'Barlow Condensed',sans-serif; font-size:clamp(32px,4.2vw,50px); font-weight:800; text-transform:uppercase; color:#fff; line-height:.98; margin-bottom:14px; max-width:18ch; }
.dochead p { color:rgba(255,255,255,.55); font-size:16px; line-height:1.7; max-width:60ch; }
.docwrap { max-width:880px; margin:0 auto; padding:44px 40px 80px; }
.docsec { margin-bottom:44px; }
.docnum { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--red); margin-bottom:8px; }
.docsec h2 { font-family:'Barlow Condensed',sans-serif; font-size:29px; font-weight:800; text-transform:uppercase; color:var(--ink-mid); line-height:1.05; margin-bottom:14px; }
.docsec h3 { font-family:'Barlow Semi Condensed',sans-serif; font-size:18px; font-weight:600; color:var(--ink-mid); margin:22px 0 8px; }
.docsec p { font-size:15.5px; color:var(--ink-soft); line-height:1.75; margin-bottom:14px; }
.docsec p strong { color:var(--ink); font-weight:600; }
.docsec code { font-family:'IBM Plex Mono',monospace; font-size:13.5px; background:var(--steel-light); color:var(--ink); padding:1px 5px; border-radius:2px; }
.doct { width:100%; border-collapse:collapse; font-size:14px; background:#fff; border:1px solid var(--rule); margin:16px 0 6px; }
.doct th { background:var(--ink-mid); color:rgba(255,255,255,.75); text-align:left; font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; padding:10px 16px; }
.doct td { padding:10px 16px; border-bottom:1px solid #F4F2EF; color:var(--ink-soft); vertical-align:top; }
.doct tr:last-child td { border-bottom:none; }
.doct .code { font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--ink); white-space:nowrap; }
.doccap { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--steel-mid); margin-bottom:18px; }
.band { display:grid; grid-template-columns:78px 1fr; gap:18px; align-items:baseline; padding:13px 0; border-bottom:1px solid var(--rule); }
.band:last-child { border-bottom:none; }
.bandr { font-family:'IBM Plex Mono',monospace; font-size:14px; font-weight:600; }
.bandr.high { color:var(--red); } .bandr.moderate { color:var(--gold-ink); } .bandr.low { color:var(--steel); }
.bandn { font-family:'Barlow Condensed',sans-serif; font-size:17px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-mid); }
.bandd { font-size:14px; color:var(--ink-soft); line-height:1.6; margin-top:2px; }
.docnote { background:#fff; border-left:3px solid var(--red); padding:17px 19px; margin:16px 0; }
.docnote p { margin-bottom:0; font-size:14.5px; }

/* pagination */
.pager { display:flex; align-items:center; justify-content:space-between; margin-top:24px; flex-wrap:wrap; gap:14px; }
.pager nav { font-family:'IBM Plex Mono',monospace; font-size:12px; }
.pager a,.pager span { padding:6px 10px; }

/* footer */
.dfoot { background:#111214; padding:40px 40px 30px; }
.dfoot-in { max-width:1240px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:42px; }
.fbrand { font-family:'Barlow Condensed',sans-serif; font-size:17px; font-weight:700; color:#fff; margin-bottom:10px; }
.fdesc { font-size:13px; color:rgba(255,255,255,.38); line-height:1.7; }
.ftitle { font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.32); margin-bottom:13px; }
.flinks { list-style:none; }
.flinks li { margin-bottom:7px; }
.flinks a { font-size:13px; color:rgba(255,255,255,.5); text-decoration:none; }
.flinks a:hover { color:#fff; }
.fbottom { max-width:1240px; margin:28px auto 0; padding-top:18px; border-top:1px solid rgba(255,255,255,.07); display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; font-family:'IBM Plex Mono',monospace; font-size:11px; color:rgba(255,255,255,.28); }

@media (max-width:1080px){
  .wrap,.pwrap { grid-template-columns:1fr; }
  .rail,.side { position:static; }
  .rbody { grid-template-columns:1fr; }
  .rexp { border-left:none; border-top:1px solid var(--rule); padding-left:0; padding-top:16px; }
  .ptitle { grid-template-columns:1fr; align-items:start; }
  .pcard,.verif { width:100%; }
  .dfoot-in { grid-template-columns:1fr 1fr; }
}
@media (max-width:720px){
  .dnav { padding:0 20px; }
  .dnav-links a:not(.dnav-cta) { display:none; }
  .mast,.phead,.dochead { padding-left:20px; padding-right:20px; }
  .prov,.idstrip { padding-left:20px; padding-right:20px; }
  .wrap,.wrap-1,.pwrap,.docwrap { padding:28px 20px 70px; }
  .searchrow { flex-direction:column; }
  .btn-search { padding:13px; }
  .uhero { grid-template-columns:1fr; gap:18px; }
  .catrow { grid-template-columns:52px 1fr; }
  .catc { display:none; }
  .crow { grid-template-columns:1fr 54px; }
  .cwhy { display:none; }
  .band { grid-template-columns:1fr; gap:2px; }
  .form-grid { grid-template-columns:1fr; }
  .dfoot-in { grid-template-columns:1fr; gap:26px; }
  .dfoot { padding:32px 20px 26px; }
  .stat { padding-right:20px; margin-right:20px; }
  .dt th,.dt td,.doct th,.doct td { padding-left:15px; padding-right:15px; }
  .pbd { padding:20px 16px; }
}

/* Laravel pagination ships Tailwind-sized SVG chevrons; without Tailwind they render at natural size. */
.pager nav svg { width:14px; height:14px; display:inline-block; vertical-align:middle; }
.pager nav { display:flex; align-items:center; gap:4px; flex-wrap:wrap; }

/* Laravel pagination ships Tailwind-sized SVG chevrons; without Tailwind they render at natural size. */
.pager nav svg { width:14px; height:14px; display:inline-block; vertical-align:middle; }
.pager nav { display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
.pager nav > div:first-child { display:none; }

/* Paginator SVGs carry Tailwind size utilities that do nothing here. */
.pager svg { width:14px !important; height:14px !important; max-width:14px; max-height:14px; display:inline-block; vertical-align:middle; }

/* Site nav is position:fixed at 80px. */
body { padding-top:80px; }
@media(max-width:768px){ body { padding-top:80px; } }
