/* ==========================================================================
   Viking Abstract — Design System
   ========================================================================== */

/* --- Tokens ------------------------------------------------------------- */
:root{
  --navy-900:#061426;
  --navy-800:#0b1f3a;
  --navy-700:#12304f;
  --navy-600:#1b4066;
  --navy-500:#2a557f;
  --brass-700:#8f6d2f;
  --brass-text:#856526;    /* 5.4:1 on white — brass for small text */
  --brass-600:#a8823d;
  --brass-500:#c6a15b;
  --brass-400:#d9bd84;
  --brass-100:#f4ecdc;
  --ink:#15202b;
  --ink-soft:#33424f;
  --slate:#5a6875;
  --slate-light:#626e7b;   /* 5.2:1 on white, 4.9:1 on --surface */
  --line:#dfe4ea;
  --line-soft:#edf0f4;
  --surface:#f6f8fa;
  --surface-2:#eef2f6;
  --white:#ffffff;
  --ok:#1f7a52;
  --ok-bg:#e8f5ee;
  --warn:#9a6300;
  --warn-bg:#fdf3e0;
  --alert:#a32020;
  --alert-bg:#fdecec;
  --info:#1b4d80;
  --info-bg:#e9f1f9;

  --font-sans:"Inter","Inter var",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-display:"Source Serif 4","Source Serif Pro",Georgia,"Times New Roman",serif;
  --font-mono:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;

  --r-sm:6px; --r:10px; --r-lg:14px; --r-xl:20px; --r-pill:999px;
  --shadow-sm:0 1px 2px rgba(6,20,38,.06),0 1px 3px rgba(6,20,38,.04);
  --shadow:0 4px 12px rgba(6,20,38,.07),0 1px 3px rgba(6,20,38,.05);
  --shadow-lg:0 18px 46px rgba(6,20,38,.14),0 4px 12px rgba(6,20,38,.07);
  --shadow-brass:0 8px 24px rgba(168,130,61,.28);

  --wrap:1200px;
  --wrap-narrow:760px;
  --header-h:76px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* --- Reset -------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
/* The UA [hidden] rule loses to any class that sets display; make it win.
   Several components below use display:flex/grid and are toggled by [hidden]. */
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 20px)}
body{
  margin:0;
  font-family:var(--font-sans);
  font-size:17px;
  line-height:1.65;
  color:var(--ink-soft);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-feature-settings:"kern" 1,"liga" 1,"cv11" 1;
  overflow-x:hidden;
}
img,svg,video{max-width:100%;height:auto;display:block}
h1,h2,h3,h4,h5,h6{
  font-family:var(--font-display);
  color:var(--navy-800);
  margin:0 0 .5em;
  line-height:1.15;
  font-weight:600;
  letter-spacing:-.012em;
}
h1{font-size:clamp(2.15rem,1.5rem + 2.6vw,3.5rem);letter-spacing:-.022em}
h2{font-size:clamp(1.7rem,1.28rem + 1.7vw,2.6rem);letter-spacing:-.018em}
h3{font-size:clamp(1.28rem,1.12rem + .68vw,1.6rem)}
h4{font-size:1.14rem}
h5{font-size:1rem}
p{margin:0 0 1.1em}
a{color:var(--navy-600);text-decoration-color:rgba(27,64,102,.32);text-underline-offset:3px;transition:color .18s var(--ease)}
a:hover{color:var(--brass-600)}
ul,ol{padding-left:1.25em}
li{margin-bottom:.4em}
hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}
small,.small{font-size:.85rem}
strong,b{font-weight:650;color:var(--ink)}
blockquote{margin:1.5rem 0;padding:1rem 0 1rem 1.5rem;border-left:3px solid var(--brass-500);font-family:var(--font-display);font-size:1.2rem;color:var(--navy-700)}
code,kbd{font-family:var(--font-mono);font-size:.88em;background:var(--surface-2);padding:.15em .4em;border-radius:4px}
table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.95rem}
th,td{text-align:left;padding:.72rem .9rem;border-bottom:1px solid var(--line)}
th{font-weight:650;color:var(--navy-800);background:var(--surface);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}
figure{margin:1.5rem 0}
figcaption{font-size:.85rem;color:var(--slate);margin-top:.5rem}
::selection{background:var(--brass-400);color:var(--navy-900)}

:focus-visible{outline:3px solid var(--brass-500);outline-offset:2px;border-radius:3px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:0;z-index:9999;background:var(--navy-800);color:#fff;padding:.85rem 1.4rem;border-radius:0 0 var(--r) 0;font-weight:600}
.skip-link:focus{left:0;color:#fff}

/* --- Layout ------------------------------------------------------------- */
.wrap{width:min(100% - 2.5rem,var(--wrap));margin-inline:auto}
.wrap-narrow{width:min(100% - 2.5rem,var(--wrap-narrow));margin-inline:auto}
.section{padding:clamp(2.25rem,1.5rem + 1.6vw,3rem) 0}
.section-sm{padding:clamp(1.75rem,1.2rem + 1.1vw,2.25rem) 0}
.section--surface{background:var(--surface)}
.section--navy{background:var(--navy-800);color:rgba(255,255,255,.82)}
.section--navy h1,.section--navy h2,.section--navy h3,.section--navy h4{color:#fff}
.section--navy a{color:var(--brass-400)}
.section--line{border-top:1px solid var(--line)}
.grid{display:grid;gap:1.15rem}
/* Grid and flex children default to min-width:auto, so a track sized 1fr
   refuses to shrink below its content's min-content width and the page
   overflows on narrow screens. Opt every layout child out of that. */
.grid > *,.content-layout > *,.vault-layout > *,.coverage-layout > *,
.tool-body > *,.hero-grid > *,.field-row > *,.field-row-3 > *,
.check-grid > *,.radio-cards > *,.footer-grid > *,.btn-row > *{min-width:0}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.g5{grid-template-columns:repeat(5,1fr)}
.stack>*+*{margin-top:1rem}
.center{text-align:center}
.mt0{margin-top:0}.mb0{margin-bottom:0}

.section-head{max-width:720px;margin-bottom:1.6rem}
.section-head.center{margin-inline:auto}
.section-head p{font-size:1.06rem;color:var(--slate);margin-bottom:0}
.eyebrow{
  display:inline-block;font-family:var(--font-sans);font-size:.74rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--brass-text);margin-bottom:.85rem;
}
.section--navy .eyebrow{color:var(--brass-400)}
.section--navy .lede,
.section--navy .section-head p,
.section--navy .text-slate{color:#a3b1c1}  /* 7.6:1 on --navy-800 */
.lede{font-size:1.15rem;line-height:1.6;color:var(--slate)}

/* --- Buttons ------------------------------------------------------------ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  font-family:var(--font-sans);font-size:.94rem;font-weight:640;letter-spacing:.005em;
  padding:.82rem 1.5rem;border-radius:var(--r);border:1.5px solid transparent;
  cursor:pointer;text-decoration:none;line-height:1.2;
  transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease),transform .18s var(--ease),box-shadow .18s var(--ease);
}
.btn:active{transform:translateY(1px)}
.btn svg{width:1.05em;height:1.05em;flex:none}
.btn-primary{background:var(--brass-600);color:var(--navy-900);border-color:var(--brass-600);box-shadow:var(--shadow-brass)}
.btn-primary:hover{background:var(--brass-500);border-color:var(--brass-500);color:var(--navy-900);box-shadow:0 10px 28px rgba(168,130,61,.36)}
.btn-navy{background:var(--navy-800);color:#fff;border-color:var(--navy-800)}
.btn-navy:hover{background:var(--navy-700);border-color:var(--navy-700);color:#fff}
.btn-outline{background:transparent;color:var(--navy-800);border-color:var(--line)}
.btn-outline:hover{border-color:var(--navy-800);color:var(--navy-800);background:var(--surface)}
.btn-ghost-light{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.28)}
.btn-ghost-light:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.5);color:#fff}
.btn-lg{padding:1.02rem 1.9rem;font-size:1rem}
.btn-sm{padding:.55rem 1rem;font-size:.85rem}
.btn-block{width:100%}
.btn[disabled],.btn.is-disabled{opacity:.5;pointer-events:none}
.btn-row{display:flex;flex-wrap:wrap;gap:.85rem}

.link-arrow{display:inline-flex;align-items:center;gap:.4rem;font-weight:620;font-size:.92rem;text-decoration:none;color:var(--navy-600)}
.link-arrow::after{content:"→";transition:transform .18s var(--ease)}
.link-arrow:hover::after{transform:translateX(4px)}

/* --- Header ------------------------------------------------------------- */
.site-topbar{background:var(--navy-900);color:rgba(255,255,255,.78);font-size:.8rem}
.site-topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:38px;flex-wrap:wrap}
.site-topbar a{color:rgba(255,255,255,.82);text-decoration:none}
.site-topbar a:hover{color:var(--brass-400)}
.topbar-left{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap}
.topbar-right{display:flex;align-items:center;gap:1.1rem}
.topbar-item{display:inline-flex;align-items:center;gap:.4rem}
.topbar-item svg{width:14px;height:14px;opacity:.75}

.site-header{
  position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .2s var(--ease);
}
.site-header.is-stuck{box-shadow:0 4px 20px rgba(6,20,38,.09)}
.header-inner{display:flex;align-items:center;gap:1.5rem;min-height:var(--header-h)}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;flex:none}
.brand img{width:48px;height:48px;object-fit:contain}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-name{font-family:var(--font-display);font-size:1.24rem;font-weight:650;color:var(--navy-800);letter-spacing:-.02em}
.brand-tag{font-size:.66rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--brass-text)}

.primary-nav{margin-left:auto}
.primary-nav ul{list-style:none;display:flex;align-items:center;gap:.2rem;margin:0;padding:0}
.primary-nav li{margin:0;position:relative}
.primary-nav > ul > li > a{
  display:flex;align-items:center;gap:.3rem;padding:.6rem .78rem;border-radius:var(--r-sm);
  font-size:.9rem;font-weight:580;color:var(--ink-soft);text-decoration:none;white-space:nowrap;
}
.primary-nav > ul > li > a:hover,.primary-nav > ul > li.is-open > a{background:var(--surface);color:var(--navy-800)}
.primary-nav .current-menu-item > a,.primary-nav .current_page_item > a,.primary-nav .current-menu-ancestor > a{color:var(--navy-800);font-weight:640}
.menu-item-has-children > a::after{content:"";width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.5;flex:none}
.primary-nav ul ul{
  position:absolute;top:calc(100% + 6px);left:0;min-width:262px;display:block;
  background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-lg);
  padding:.5rem;flex-direction:column;align-items:stretch;gap:0;
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s var(--ease),transform .18s var(--ease),visibility .18s;
}
.primary-nav li:hover > ul,.primary-nav li.is-open > ul,.primary-nav li:focus-within > ul{opacity:1;visibility:visible;transform:none}
.primary-nav ul ul a{display:block;padding:.55rem .7rem;border-radius:var(--r-sm);font-size:.88rem;font-weight:520;color:var(--ink-soft);text-decoration:none}
.primary-nav ul ul a:hover{background:var(--surface);color:var(--navy-800)}
.primary-nav ul ul ul{top:-.5rem;left:100%}

.header-actions{display:flex;align-items:center;gap:.6rem;flex:none}
.nav-toggle{display:none;background:none;border:1px solid var(--line);border-radius:var(--r-sm);width:44px;height:44px;align-items:center;justify-content:center;cursor:pointer;color:var(--navy-800)}
.nav-toggle span{display:block;width:19px;height:1.8px;background:currentColor;position:relative;transition:background .15s}
.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:0;width:19px;height:1.8px;background:currentColor;transition:transform .2s var(--ease),top .2s var(--ease)}
.nav-toggle span::before{top:-6px}.nav-toggle span::after{top:6px}
.nav-toggle[aria-expanded="true"] span{background:transparent}
.nav-toggle[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}

.mobile-bar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:99;background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 20px rgba(6,20,38,.1);padding:.5rem;gap:.4rem}
.mobile-bar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.45rem .2rem;border-radius:var(--r-sm);font-size:.7rem;font-weight:620;text-decoration:none;color:var(--navy-800)}
.mobile-bar a.is-primary{background:var(--brass-600);color:var(--navy-900)}
.mobile-bar svg{width:19px;height:19px}

/* --- Hero --------------------------------------------------------------- */
.hero{
  position:relative;background:var(--navy-900);color:rgba(255,255,255,.8);overflow:hidden;
  padding:clamp(2.5rem,1.6rem + 3vw,4rem) 0 clamp(2rem,1.4rem + 2vw,3rem);
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(900px 500px at 78% 12%,rgba(198,161,91,.20),transparent 62%),
    radial-gradient(700px 620px at 8% 88%,rgba(42,85,127,.42),transparent 60%),
    linear-gradient(160deg,#071527 0%,#0b1f3a 46%,#12304f 100%);
}
.hero::after{
  content:"";position:absolute;inset:0;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:60px 60px;
  mask-image:radial-gradient(760px 520px at 30% 40%,#000,transparent 78%);
  -webkit-mask-image:radial-gradient(760px 520px at 30% 40%,#000,transparent 78%);
}
.hero .wrap{position:relative;z-index:2}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:3.5rem;align-items:center}
.hero h1{color:#fff;margin-bottom:1.1rem;text-wrap:balance}
.hero h1 em{font-style:normal;color:var(--brass-400)}
.hero-sub{font-size:1.12rem;line-height:1.62;color:rgba(255,255,255,.84);max-width:52ch;margin-bottom:1.9rem}
.hero-badge{
  display:inline-flex;align-items:center;gap:.55rem;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.16);border-radius:var(--r-pill);
  padding:.4rem .95rem .4rem .5rem;font-size:.78rem;font-weight:600;color:rgba(255,255,255,.86);
  margin-bottom:1.5rem;letter-spacing:.01em;
}
.hero-badge b{background:var(--brass-500);color:var(--navy-900);border-radius:var(--r-pill);padding:.14rem .55rem;font-size:.7rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;flex:none}
.hero-visual{position:relative;display:flex;align-items:center;justify-content:center}
.hero-visual img{width:min(100%,360px);filter:drop-shadow(0 26px 50px rgba(0,0,0,.5))}
.hero-visual::before{
  content:"";position:absolute;width:min(96%,420px);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(198,161,91,.24),transparent 66%);
}
.hero-quicklinks{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem}
.hero-quicklinks a{
  display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;border-radius:var(--r-pill);white-space:nowrap;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
  color:rgba(255,255,255,.8);font-size:.8rem;font-weight:560;text-decoration:none;
}
.hero-quicklinks a:hover{background:rgba(255,255,255,.13);color:#fff;border-color:rgba(255,255,255,.3)}

.page-hero{
  background:linear-gradient(160deg,#071527,#0b1f3a 55%,#12304f);
  color:rgba(255,255,255,.78);padding:clamp(1.9rem,1.3rem + 2vw,2.9rem) 0;position:relative;overflow:hidden;
}
.page-hero::after{
  content:"";position:absolute;right:-6%;top:-40%;width:520px;height:520px;border-radius:50%;
  background:radial-gradient(circle,rgba(198,161,91,.17),transparent 66%);
}
.page-hero .wrap{position:relative;z-index:2}
.page-hero h1{color:#fff;margin-bottom:.6rem;max-width:20ch}
.page-hero .lede{color:rgba(255,255,255,.84);max-width:62ch;margin-bottom:0}
.page-hero .btn-row{margin-top:1.8rem}

.breadcrumbs{font-size:.8rem;margin-bottom:1.1rem;color:rgba(255,255,255,.56)}
.breadcrumbs a{color:rgba(255,255,255,.76);text-decoration:none}
.breadcrumbs a:hover{color:var(--brass-400)}
.breadcrumbs span{margin:0 .45rem;opacity:.5}
.breadcrumbs--light{color:var(--slate)}
.breadcrumbs--light a{color:var(--navy-600)}

/* --- Trust strip -------------------------------------------------------- */
.trust-strip{background:var(--navy-800);border-top:1px solid rgba(255,255,255,.09);padding:1.4rem 0}
.trust-strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.trust-item{display:flex;gap:.75rem;align-items:flex-start;color:rgba(255,255,255,.82);font-size:.86rem;line-height:1.45}
.trust-item svg{width:20px;height:20px;flex:none;color:var(--brass-500);margin-top:1px}
.trust-item b{display:block;color:#fff;font-weight:640;font-size:.9rem;margin-bottom:.1rem}

/* --- Cards -------------------------------------------------------------- */
.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.6rem;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease);
  display:flex;flex-direction:column;
}
.card--link{text-decoration:none;color:inherit}
.card--link:hover{border-color:var(--brass-500);box-shadow:var(--shadow);transform:translateY(-3px)}
.card h3{margin-bottom:.5rem;font-size:1.16rem}
.card p{color:var(--slate);font-size:.94rem;margin-bottom:1rem}
.card .link-arrow{margin-top:auto}
.card-icon{
  width:46px;height:46px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;
  background:linear-gradient(150deg,var(--navy-700),var(--navy-800));color:var(--brass-400);margin-bottom:1.1rem;
}
.card-icon svg{width:22px;height:22px}
.card--brass .card-icon{background:linear-gradient(150deg,var(--brass-500),var(--brass-700));color:#fff}
.card--flush{padding:0;overflow:hidden}

.audience-card{
  position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:1.5rem 1.35rem;text-decoration:none;color:inherit;display:flex;flex-direction:column;
  transition:all .2s var(--ease);overflow:hidden;
}
.audience-card::before{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--brass-500);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
.audience-card:hover{border-color:var(--navy-600);box-shadow:var(--shadow-lg);transform:translateY(-4px)}
.audience-card:hover::before{transform:scaleX(1)}
.audience-card .card-icon{width:40px;height:40px;margin-bottom:.9rem}
.audience-card h3{font-size:1.05rem;margin-bottom:.35rem}
.audience-card p{font-size:.86rem;color:var(--slate);margin-bottom:.9rem;line-height:1.5}
.audience-card .link-arrow{font-size:.82rem;margin-top:auto}

.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.stat{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:var(--r);padding:1.4rem 1.2rem}
.stat b{display:block;font-family:var(--font-display);font-size:2.1rem;color:var(--brass-400);line-height:1;margin-bottom:.4rem;font-variant-numeric:tabular-nums}
.stat span{font-size:.83rem;color:rgba(255,255,255,.78);line-height:1.4;display:block}
.section--surface .stat{background:#fff;border-color:var(--line)}
.section--surface .stat b{color:var(--navy-800)}
.section--surface .stat span{color:var(--slate)}

/* --- Process ------------------------------------------------------------ */
.process{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative;counter-reset:step}
.process-step{position:relative;padding:0 1.1rem;text-align:center}
.process-step::before{
  counter-increment:step;content:counter(step,decimal-leading-zero);
  display:flex;align-items:center;justify-content:center;width:52px;height:52px;margin:0 auto 1rem;
  border-radius:50%;background:#fff;border:1.5px solid var(--brass-500);color:var(--brass-600);
  font-family:var(--font-display);font-weight:650;font-size:1.05rem;position:relative;z-index:2;
}
.process-step::after{content:"";position:absolute;top:26px;left:50%;width:100%;height:1.5px;background:var(--line);z-index:1}
.process-step:last-child::after{display:none}
.process-step h3,.process-step h4{font-size:.98rem;margin-bottom:.35rem;line-height:1.3}
.process-step p{font-size:.85rem;color:var(--slate);margin:0;line-height:1.5}
.section--navy .process-step::before{background:var(--navy-700);border-color:var(--brass-500);color:var(--brass-400)}
.section--navy .process-step::after{background:rgba(255,255,255,.16)}
.section--navy .process-step p{color:rgba(255,255,255,.8)}

/* --- Coverage map ------------------------------------------------------- */
.coverage-layout{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.county-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}
.county-chip{
  display:flex;align-items:center;justify-content:space-between;gap:.5rem;
  padding:.85rem 1.05rem;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  text-decoration:none;color:var(--navy-800);font-weight:600;font-size:.92rem;
  transition:all .18s var(--ease);
}
.county-chip small{display:block;font-weight:480;font-size:.74rem;color:var(--slate);letter-spacing:.02em}
.county-chip:hover{border-color:var(--brass-500);background:var(--brass-100);color:var(--navy-900);transform:translateX(3px)}
.county-chip::after{content:"→";color:var(--brass-text);font-size:.9rem}
.map-panel{background:var(--navy-800);border-radius:var(--r-xl);padding:1.5rem;box-shadow:var(--shadow-lg)}
.map-panel svg{width:100%;height:auto}
.map-region{fill:rgba(255,255,255,.08);stroke:rgba(255,255,255,.22);stroke-width:1.2;transition:fill .2s var(--ease)}
.map-region:hover,.map-region.is-active{fill:var(--brass-500);cursor:pointer}
.map-label{fill:rgba(255,255,255,.95);font-size:11px;font-weight:600;font-family:var(--font-sans);pointer-events:none}

/* --- Tools / calculators ------------------------------------------------ */
.tool{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--shadow);overflow:hidden;
}
.tool-head{
  padding:1.4rem 1.6rem;background:linear-gradient(160deg,var(--navy-800),var(--navy-700));color:#fff;
  display:flex;align-items:center;gap:.9rem;
}
.tool-head svg{width:24px;height:24px;color:var(--brass-400);flex:none}
.tool-head h3{color:#fff;margin:0;font-size:1.14rem}
.tool-head p{margin:.15rem 0 0;font-size:.83rem;color:rgba(255,255,255,.8)}
.tool-body{padding:1.6rem;display:grid;grid-template-columns:1.05fr .95fr;gap:2rem}
.tool-body--single{grid-template-columns:1fr}
.tool-foot{padding:1rem 1.6rem;background:var(--surface);border-top:1px solid var(--line);font-size:.8rem;color:var(--slate)}

.field{margin-bottom:1.05rem}
.field:last-child{margin-bottom:0}
.field label,.field .label{display:block;font-size:.82rem;font-weight:640;color:var(--navy-800);margin-bottom:.35rem;letter-spacing:.005em}
.field .hint{font-size:.76rem;color:var(--slate-light);margin-top:.3rem;line-height:1.4}
.field .req{color:var(--alert);margin-left:.15rem}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],input[type=search],input[type=password],input[type=url],select,textarea{
  width:100%;padding:.68rem .82rem;font-family:var(--font-sans);font-size:.95rem;color:var(--ink);
  background:#fff;border:1.5px solid var(--line);border-radius:var(--r-sm);
  transition:border-color .16s var(--ease),box-shadow .16s var(--ease);
  font-variant-numeric:tabular-nums;
}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 4.5L6 8.5L10 4.5' stroke='%235a6875' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .7rem center;background-size:12px;padding-right:2.1rem}
textarea{min-height:110px;resize:vertical;line-height:1.55}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--navy-600);box-shadow:0 0 0 3px rgba(27,64,102,.13)}
input.has-error,select.has-error,textarea.has-error{border-color:var(--alert);box-shadow:0 0 0 3px rgba(163,32,32,.1)}
.field-error{font-size:.78rem;color:var(--alert);margin-top:.3rem;font-weight:560}
.input-group{display:flex;align-items:stretch}
.input-group .prefix,.input-group .suffix{
  display:flex;align-items:center;padding:0 .7rem;background:var(--surface-2);border:1.5px solid var(--line);
  color:var(--slate);font-size:.9rem;font-weight:600;
}
.input-group .prefix{border-right:0;border-radius:var(--r-sm) 0 0 var(--r-sm)}
.input-group .suffix{border-left:0;border-radius:0 var(--r-sm) var(--r-sm) 0}
.input-group .prefix + input{border-radius:0 var(--r-sm) var(--r-sm) 0}
.input-group input:has(+ .suffix),.input-group input.has-suffix{border-radius:var(--r-sm) 0 0 var(--r-sm)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.field-row-3{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem}

.check-list{display:grid;gap:.5rem}
.check{display:flex;align-items:flex-start;gap:.6rem;padding:.68rem .85rem;border:1.5px solid var(--line);border-radius:var(--r-sm);cursor:pointer;transition:all .16s var(--ease);background:#fff}
.check:hover{border-color:var(--navy-500);background:var(--surface)}
.check input{margin:.2rem 0 0;width:16px;height:16px;flex:none;accent-color:var(--navy-700)}
.check span{font-size:.89rem;line-height:1.45;color:var(--ink-soft)}
.check span b{display:block;color:var(--navy-800);font-weight:620;font-size:.9rem}
.check.is-checked{border-color:var(--navy-600);background:var(--info-bg)}
.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}

.radio-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem}
.radio-card{
  position:relative;display:flex;flex-direction:column;gap:.2rem;padding:.9rem 1rem;
  border:1.5px solid var(--line);border-radius:var(--r);cursor:pointer;background:#fff;
  transition:all .16s var(--ease);
}
.radio-card input{position:absolute;opacity:0;pointer-events:none}
.radio-card b{font-size:.9rem;font-weight:640;color:var(--navy-800)}
.radio-card small{font-size:.76rem;color:var(--slate);line-height:1.4}
.radio-card:hover{border-color:var(--navy-500)}
.radio-card.is-checked{border-color:var(--brass-600);background:var(--brass-100);box-shadow:0 0 0 3px rgba(198,161,91,.16)}
/* The real input is visually hidden, so surface its focus ring on the card. */
.radio-card:focus-within{outline:3px solid var(--brass-500);outline-offset:2px}
.check:focus-within{outline:3px solid var(--brass-500);outline-offset:2px}
.filter-opt:focus-within{outline:2px solid var(--brass-500);outline-offset:2px;border-radius:3px}

.range-field input[type=range]{width:100%;accent-color:var(--brass-600);margin-top:.4rem}
.range-value{font-variant-numeric:tabular-nums;font-weight:650;color:var(--navy-800)}

/* Results panel */
.result-panel{
  background:linear-gradient(165deg,var(--navy-800),var(--navy-900));border-radius:var(--r);
  padding:1.5rem;color:rgba(255,255,255,.8);position:relative;overflow:hidden;
}
.result-panel::after{content:"";position:absolute;right:-40px;top:-40px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(198,161,91,.18),transparent 68%)}
.result-panel > *{position:relative;z-index:2}
.result-headline{text-align:center;padding-bottom:1.2rem;margin-bottom:1.1rem;border-bottom:1px solid rgba(255,255,255,.14)}
.result-headline span{display:block;font-size:.76rem;font-weight:640;letter-spacing:.13em;text-transform:uppercase;color:var(--brass-400);margin-bottom:.5rem}
.result-headline strong{display:block;font-family:var(--font-display);font-size:clamp(2rem,1.4rem + 2vw,2.9rem);color:#fff;font-weight:650;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.result-headline em{display:block;font-style:normal;font-size:.83rem;color:rgba(255,255,255,.76);margin-top:.5rem}
.result-rows{display:grid;gap:.1rem}
.result-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.58rem 0;font-size:.9rem;border-bottom:1px solid rgba(255,255,255,.07)}
.result-row:last-child{border-bottom:0}
.result-row span{color:rgba(255,255,255,.8)}
.result-row b{font-variant-numeric:tabular-nums;color:#fff;font-weight:620}
.result-row.is-total{border-top:1.5px solid rgba(255,255,255,.22);border-bottom:0;margin-top:.5rem;padding-top:.85rem}
.result-row.is-total span{color:#fff;font-weight:640}
.result-row.is-total b{color:var(--brass-400);font-size:1.16rem}
.result-row .dot{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:.5rem;vertical-align:-1px}

.donut-wrap{display:flex;align-items:center;justify-content:center;padding:.5rem 0 1.2rem}
.donut{width:170px;height:170px;transform:rotate(-90deg)}
.donut circle{fill:none;stroke-width:22;transition:stroke-dasharray .5s var(--ease)}

.range-bar{height:12px;border-radius:var(--r-pill);background:rgba(255,255,255,.14);position:relative;margin:1rem 0 .5rem;overflow:hidden}
.range-bar i{position:absolute;top:0;bottom:0;background:linear-gradient(90deg,var(--brass-600),var(--brass-400));border-radius:var(--r-pill);transition:left .4s var(--ease),right .4s var(--ease)}
.range-marks{display:flex;justify-content:space-between;font-size:.78rem;color:rgba(255,255,255,.7);font-variant-numeric:tabular-nums;font-weight:600}

.amort-toggle{margin-top:1.2rem}
.amort-table-wrap{max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-sm);margin-top:1rem}
.amort-table-wrap table{margin:0;font-size:.84rem}
.amort-table-wrap th{position:sticky;top:0;z-index:2}
.amort-table-wrap td{font-variant-numeric:tabular-nums}

/* --- Forms vault -------------------------------------------------------- */
.vault-layout{display:grid;grid-template-columns:262px 1fr;gap:2.2rem;align-items:start}
/* The filter column is sticky, but it is also taller than most screens — six
   groups plus eight counties. Sticky alone just pins the top and lets the rest
   run off the bottom, so reaching "Party" or "Clear all filters" meant scrolling
   the whole page and losing sight of the results. Capping its height and giving
   it its own scrollbar makes the two columns move independently, which is what
   the layout was always implying.

   overscroll-behavior:contain is the part that makes it feel right: without it,
   hitting the end of the filter list hands the scroll back to the page and the
   results jump underneath you. */
.vault-filters{
  position:sticky;top:calc(var(--header-h) + 20px);
  max-height:calc(100vh - var(--header-h) - 2.5rem);
  overflow-y:auto;overscroll-behavior:contain;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.3rem;
  scrollbar-width:thin;scrollbar-color:var(--line-firm) transparent;
}
.vault-filters::-webkit-scrollbar{width:8px}
.vault-filters::-webkit-scrollbar-track{background:transparent}
.vault-filters::-webkit-scrollbar-thumb{background:var(--line-firm);border-radius:4px}
.vault-filters::-webkit-scrollbar-thumb:hover{background:var(--slate-light)}
/* The clear button should not scroll out of reach at the bottom of a long list. */
.vault-filters #vault-clear{position:sticky;bottom:-1.3rem;margin-bottom:-1.3rem;padding-bottom:.9rem;background:#fff}
.filter-group{padding-bottom:1.1rem;margin-bottom:1.1rem;border-bottom:1px solid var(--line-soft)}
.filter-group:last-child{border-bottom:0;padding-bottom:0;margin-bottom:0}
.filter-group h3,.filter-group h4{font-family:var(--font-sans);font-size:.74rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--slate);margin-bottom:.7rem}
.filter-opt{display:flex;align-items:center;gap:.55rem;padding:.28rem 0;font-size:.87rem;color:var(--ink-soft);cursor:pointer}
.filter-opt input{width:15px;height:15px;accent-color:var(--navy-700);flex:none}
.filter-opt:hover{color:var(--navy-800)}
.filter-opt .count{margin-left:auto;font-size:.74rem;color:var(--slate-light);font-variant-numeric:tabular-nums}

.vault-searchbar{position:relative;margin-bottom:1.2rem}
.vault-searchbar input{padding-left:2.7rem;height:52px;font-size:1rem;border-radius:var(--r)}
.vault-searchbar svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:19px;height:19px;color:var(--slate-light);pointer-events:none}
.vault-meta{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}
.vault-count{font-size:.87rem;color:var(--slate)}
.vault-count b{color:var(--navy-800)}
.active-filters{display:flex;flex-wrap:wrap;gap:.4rem}
.pill{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .65rem;border-radius:var(--r-pill);background:var(--info-bg);color:var(--info);font-size:.76rem;font-weight:600;border:1px solid rgba(27,77,128,.18)}
.pill button{background:none;border:0;color:inherit;cursor:pointer;font-size:1rem;line-height:1;padding:0;opacity:.6}
.pill button:hover{opacity:1}

.form-list{display:grid;gap:.8rem}
.form-card{
  display:grid;grid-template-columns:44px 1fr auto;gap:1rem;align-items:start;
  background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.2rem;
  transition:border-color .18s var(--ease),box-shadow .18s var(--ease);
}
.form-card:hover{border-color:var(--navy-500);box-shadow:var(--shadow-sm)}
.form-type{
  width:44px;height:52px;border-radius:5px;display:flex;align-items:center;justify-content:center;
  background:var(--surface-2);border:1px solid var(--line);color:var(--slate);
  font-size:.62rem;font-weight:750;letter-spacing:.04em;
}
.form-type--pdf{background:#fdecec;border-color:#f3c9c9;color:#a32020}
.form-type--doc{background:#e9f1f9;border-color:#c9dcf0;color:#1b4d80}
.form-type--link{background:var(--ok-bg);border-color:#bfe3d0;color:var(--ok)}
.form-card h4{margin:0 0 .28rem;font-family:var(--font-sans);font-size:1rem;font-weight:640;color:var(--navy-800);line-height:1.35}
.form-card p{margin:0 0 .6rem;font-size:.86rem;color:var(--slate);line-height:1.5}
.form-tags{display:flex;flex-wrap:wrap;gap:.35rem}
.tag{display:inline-block;padding:.16rem .55rem;border-radius:var(--r-sm);background:var(--surface-2);color:var(--slate);font-size:.72rem;font-weight:600;letter-spacing:.02em}
.tag--official{background:var(--warn-bg);color:#7a4e00}
.tag--viking{background:var(--brass-100);color:#6f5420}
.form-actions{display:flex;flex-direction:column;gap:.4rem;align-items:stretch;min-width:132px}
.form-reviewed{font-size:.72rem;color:var(--slate-light);text-align:center}
.no-results{text-align:center;padding:3.5rem 1.5rem;background:var(--surface);border-radius:var(--r-lg);border:1px dashed var(--line)}
.no-results img{width:120px;margin:0 auto 1.2rem;opacity:.9}

/* --- Title Resource Center search --------------------------------------- */
.rc-search{margin-bottom:1.8rem}
.rc-search .vault-searchbar{margin-bottom:.9rem}
.rc-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1rem}
.rc-chip{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.42rem .9rem;border-radius:var(--r-pill);
  background:#fff;border:1px solid var(--line);
  color:var(--slate);font-family:var(--font-sans);font-size:.83rem;font-weight:600;
  cursor:pointer;transition:border-color .16s var(--ease),background .16s var(--ease),color .16s var(--ease);
}
.rc-chip:hover{border-color:var(--brass-500);background:var(--brass-100);color:var(--navy-900)}
.rc-chip:focus-visible{outline:2px solid var(--brass-500);outline-offset:2px}
.rc-chip .count{
  font-size:.72rem;font-weight:650;font-variant-numeric:tabular-nums;
  padding:.05rem .38rem;border-radius:var(--r-pill);
  background:var(--surface-2);color:var(--slate);
}
.rc-chip.is-active{background:var(--navy-800);border-color:var(--navy-800);color:#fff}
.rc-chip.is-active .count{background:rgba(255,255,255,.18);color:#fff}
.rc-chip.is-active:hover{background:var(--navy-900);border-color:var(--navy-900);color:#fff}
.rc-count{margin:0;font-size:.87rem;color:var(--slate)}
.rc-count b{color:var(--navy-800);font-variant-numeric:tabular-nums}
.rc-clear{
  background:none;border:0;padding:0;cursor:pointer;
  font-family:var(--font-sans);font-size:.83rem;font-weight:600;
  color:var(--brass-text);text-decoration:underline;text-underline-offset:3px;
}
.rc-clear:hover{color:var(--navy-800)}
.rc-clear:focus-visible{outline:2px solid var(--brass-500);outline-offset:2px;border-radius:3px}
.rc-tools{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.rc-sort{display:flex;align-items:center;gap:.5rem}
.rc-sort label{font-size:.83rem;font-weight:600;color:var(--slate);white-space:nowrap}
.rc-sort select{
  height:38px;padding:0 2rem 0 .75rem;
  font-family:var(--font-sans);font-size:.85rem;font-weight:600;color:var(--navy-800);
  background-color:#fff;border:1px solid var(--line);border-radius:var(--r);
  cursor:pointer;width:auto;min-width:11.5rem;
}
.rc-sort select:hover{border-color:var(--brass-500)}
.rc-sort select:focus-visible{outline:2px solid var(--brass-500);outline-offset:2px}
@media (max-width:520px){
  .rc-tools{width:100%;justify-content:space-between}
  .rc-sort select{min-width:0}
}
.post-card mark{background:var(--brass-100);color:var(--navy-900);padding:0 .1em;border-radius:2px}
/* [hidden] loses to the card's own display rule, so say it here. */
.post-card[hidden],.grid[hidden]{display:none}

/* --- "More Articles" ---------------------------------------------------- */
.va-more-row{margin-top:1.4rem;justify-content:center}
.va-more{
  display:inline-flex;align-items:center;gap:.45rem;
  font-family:var(--font-sans);font-size:1rem;font-weight:750;letter-spacing:.01em;
  color:var(--navy-800);text-decoration:none;
  padding:.6rem .25rem;border-bottom:2px solid var(--brass-600);
  transition:color .16s var(--ease),border-color .16s var(--ease),gap .16s var(--ease);
}
.va-more svg{width:17px;height:17px}
.va-more:hover{color:var(--brass-text);border-color:var(--navy-800);gap:.7rem}
.va-more:focus-visible{outline:2px solid var(--brass-500);outline-offset:3px;border-radius:2px}
.va-more--sm{font-size:.88rem;margin-top:.9rem;padding:.35rem .2rem}
.side-card--recent ul{margin:0;padding:0;list-style:none}
.side-card--recent li{padding:.5rem 0;border-bottom:1px solid var(--line)}
.side-card--recent li:last-child{border-bottom:0}
.side-card--recent li a{font-size:.87rem;line-height:1.45;font-weight:600}
.section--dark .va-more,.footer .va-more{color:#fff;border-color:var(--brass-500)}

/* --- Article reactions -------------------------------------------------- */
.vt-react{
  margin:2rem 0 0;padding:1.3rem 1.4rem;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  text-align:center;
}
.vt-react-ask{
  margin:0 0 .85rem;font-family:var(--font-sans);font-size:.95rem;font-weight:650;
  color:var(--navy-800);
}
.vt-react-buttons{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center}
.vt-react-btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.6rem 1.1rem;border-radius:var(--r-pill);
  background:#fff;border:1px solid var(--line);
  font-family:var(--font-sans);font-size:.88rem;font-weight:650;color:var(--slate);
  cursor:pointer;transition:border-color .16s var(--ease),background .16s var(--ease),color .16s var(--ease);
}
.vt-react-btn svg{width:19px;height:19px;flex:none}
.vt-react-btn:hover{border-color:var(--brass-500);background:var(--brass-100);color:var(--navy-900)}
.vt-react-btn:focus-visible{outline:2px solid var(--brass-500);outline-offset:2px}
.vt-react-btn--up.is-on{background:var(--navy-800);border-color:var(--navy-800);color:#fff}
.vt-react-btn--down.is-on{background:var(--slate);border-color:var(--slate);color:#fff}
.vt-react-count{
  min-width:1.5rem;padding:.05rem .4rem;border-radius:var(--r-pill);
  background:var(--surface-2);color:var(--slate);
  font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums;
}
.vt-react-btn--up.is-on .vt-react-count{background:rgba(255,255,255,.2);color:#fff}
.vt-react-thanks,.vt-react-error{margin:.8rem 0 0;font-size:.83rem;color:var(--slate)}
.vt-react-error{color:var(--brass-text)}

/* --- Comments ----------------------------------------------------------- */
.va-comments{margin-top:2.4rem;padding-top:2rem;border-top:1px solid var(--line)}
.va-comments-title{
  margin:0 0 1.2rem;font-family:var(--font-sans);font-size:1.3rem;font-weight:700;
  color:var(--navy-900);
}
.va-comment-list{list-style:none;margin:0 0 2rem;padding:0}
.va-comment-list .children{list-style:none;margin:.9rem 0 0 1.4rem;padding:0 0 0 1.1rem;border-left:2px solid var(--line)}
.va-comment{margin:0 0 .9rem}
.va-comment-body{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:1rem 1.15rem;
}
.va-comment-head{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap;margin-bottom:.45rem}
.va-comment-author{font-family:var(--font-sans);font-size:.95rem;font-weight:700;color:var(--navy-800)}
.va-comment-date{font-size:.78rem;color:var(--slate-light)}
.va-comment-pending{
  margin:0 0 .6rem;padding:.4rem .7rem;border-radius:var(--r-sm);
  background:var(--warn-bg);color:#7a4e00;font-size:.8rem;font-weight:600;
}
.va-comment-text{font-size:.93rem;line-height:1.62;color:var(--ink)}
.va-comment-text p{margin:0 0 .7rem}
.va-comment-text p:last-child{margin-bottom:0}
.va-comment-reply{display:inline-block;margin-top:.6rem;font-size:.82rem;font-weight:650}
.va-comments-closed{font-size:.88rem;color:var(--slate);font-style:italic}

.comment-respond{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:1.5rem 1.6rem;
}
.comment-reply-title{
  margin:0 0 .6rem;font-family:var(--font-sans);font-size:1.15rem;font-weight:700;
  color:var(--navy-900);
}
.comment-reply-title small{margin-left:.6rem;font-size:.8rem;font-weight:600}
.va-comment-notes{margin:0 0 1.1rem;font-size:.84rem;line-height:1.55;color:var(--slate)}
.va-comment-field{margin:0 0 1rem}
.va-comment-field label{
  display:block;margin-bottom:.35rem;
  font-family:var(--font-sans);font-size:.85rem;font-weight:650;color:var(--navy-800);
}
.va-comment-field .required{color:var(--brass-text)}
.va-comment-field input[type=text],.va-comment-field textarea{width:100%;max-width:100%}
.va-comment-field textarea{min-height:8rem;resize:vertical}
.form-submit{margin:0}
.va-check-row{display:flex;align-items:flex-start;gap:.55rem;margin:0 0 .7rem}
.va-check-row input[type=checkbox]{width:16px;height:16px;margin-top:.15rem;accent-color:var(--navy-700);flex:none}
.va-check-row label{font-size:.85rem;line-height:1.5;color:var(--slate);cursor:pointer}
.va-subscribe{
  margin:.9rem 0 1.1rem;padding:.9rem 1rem;
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
}
.va-subscribe .va-check-row{margin-bottom:0}
.va-subscribe .va-check-row label{color:var(--navy-800);font-weight:600}
.va-subscribe-email{margin:.9rem 0 0;padding-top:.9rem;border-top:1px solid var(--line)}
.va-subscribe-note{display:block;margin-top:.4rem;font-size:.78rem;line-height:1.5;color:var(--slate-light)}
.va-subscribe-email[hidden]{display:none}

/* --- Hiring -------------------------------------------------------------- */
.hiring-group{
  margin:2.2rem 0 1rem;padding-bottom:.5rem;
  font-family:var(--font-sans);font-size:.82rem;font-weight:750;
  letter-spacing:.09em;text-transform:uppercase;color:var(--brass-text);
  border-bottom:2px solid var(--brass-600);
}
.hiring-group:first-of-type{margin-top:0}
.hiring-list{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr))}
.hiring-card{
  min-width:0;padding:1.25rem 1.35rem;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  border-left:3px solid var(--navy-800);
  transition:border-color .18s var(--ease),box-shadow .18s var(--ease);
}
.hiring-card:hover{box-shadow:var(--shadow-sm)}
.hiring-card-head{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap;margin-bottom:.5rem}
.hiring-card h4{
  margin:0;font-family:var(--font-sans);font-size:1.05rem;font-weight:700;
  color:var(--navy-900);line-height:1.3;
}
.hiring-badge{
  padding:.16rem .55rem;border-radius:var(--r-pill);
  background:var(--ok-bg);color:var(--ok);border:1px solid #bfe3d0;
  font-size:.7rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase;
}
.hiring-summary{margin:0 0 .8rem;font-size:.92rem;line-height:1.55;color:var(--ink)}
.hiring-does,.hiring-suits{margin:0 0 .6rem;font-size:.85rem;line-height:1.55;color:var(--slate)}
.hiring-does b,.hiring-suits b{color:var(--navy-800);font-weight:700}
.hiring-note{
  margin:.8rem 0 0;padding:.55rem .75rem;border-radius:var(--r-sm);
  background:var(--surface-2);color:var(--slate);
  font-size:.8rem;line-height:1.5;
}
/* The honeypot: out of sight and out of the tab order, but not display:none,
   which some form fillers detect and skip. */
.va-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* --- Order Title wizard ------------------------------------------------- */
.wizard{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden}
.wizard-progress{background:var(--navy-800);padding:1.1rem 1.6rem;overflow-x:auto}
.wizard-steps{display:flex;list-style:none;margin:0;padding:0;gap:0;min-width:max-content}
.wizard-steps li{display:flex;align-items:center;gap:.5rem;padding-right:1.1rem;margin-right:1.1rem;position:relative;font-size:.8rem;color:rgba(255,255,255,.7);font-weight:560;white-space:nowrap}
.wizard-steps li::after{content:"";position:absolute;right:0;top:50%;width:1px;height:14px;background:rgba(255,255,255,.16);transform:translateY(-50%)}
.wizard-steps li:last-child{padding-right:0;margin-right:0}
.wizard-steps li:last-child::after{display:none}
.wizard-steps i{
  display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;
  background:rgba(255,255,255,.1);font-style:normal;font-size:.72rem;font-weight:700;flex:none;
  border:1.5px solid transparent;transition:all .2s var(--ease);
}
.wizard-steps li.is-active{color:#fff}
.wizard-steps li.is-active i{background:var(--brass-600);color:var(--navy-900);border-color:var(--brass-400)}
.wizard-steps li.is-done{color:rgba(255,255,255,.78)}
.wizard-steps li.is-done i{background:var(--ok);color:#fff}
.wizard-panel{padding:2rem}
.wizard-panel[hidden]{display:none}
.wizard-panel > h3{margin-bottom:.35rem}
.wizard-panel > .lede{font-size:.95rem;margin-bottom:1.6rem}
.wizard-foot{display:flex;align-items:center;gap:.8rem;padding:1.2rem 2rem;background:var(--surface);border-top:1px solid var(--line);flex-wrap:wrap}
.wizard-foot .spacer{flex:1}
.wizard-save{font-size:.82rem;color:var(--slate)}
.wizard-save b{color:var(--ok)}
.conditional{display:none}
.conditional.is-shown{display:block;animation:slideDown .28s var(--ease)}
@keyframes slideDown{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

.summary-block{border:1px solid var(--line);border-radius:var(--r);margin-bottom:1rem;overflow:hidden}
.summary-block h3,.summary-block h4{margin:0;padding:.8rem 1.1rem;background:var(--surface);font-family:var(--font-sans);font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--navy-800);border-bottom:1px solid var(--line)}
.summary-block dl{margin:0;padding:.4rem 1.1rem .9rem}
.summary-block .srow{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1.5rem;padding:.45rem 0;border-bottom:1px dashed var(--line-soft);font-size:.89rem}
.summary-block .srow:last-child{border-bottom:0}
.summary-block dt{color:var(--slate);flex:none}
.summary-block dd{margin:0;text-align:right;color:var(--ink);font-weight:560;overflow-wrap:anywhere}

.dropzone{
  border:2px dashed var(--line);border-radius:var(--r);padding:2rem 1.5rem;text-align:center;
  background:var(--surface);transition:all .18s var(--ease);cursor:pointer;
}
.dropzone:hover,.dropzone.is-over{border-color:var(--brass-600);background:var(--brass-100)}
.dropzone svg{width:34px;height:34px;color:var(--slate-light);margin:0 auto .7rem}
.dropzone b{display:block;color:var(--navy-800);font-size:.95rem;margin-bottom:.25rem}
.dropzone span{font-size:.82rem;color:var(--slate)}
.file-list{margin-top:1rem;display:grid;gap:.45rem}
.file-item{display:flex;align-items:center;gap:.7rem;padding:.6rem .85rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);font-size:.87rem}
.file-item svg{width:17px;height:17px;color:var(--slate);flex:none}
.file-item .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}
.file-item .size{color:var(--slate-light);font-size:.78rem;font-variant-numeric:tabular-nums}
.file-item button{background:none;border:0;color:var(--slate-light);cursor:pointer;font-size:1.1rem;line-height:1;padding:0 .2rem}
.file-item button:hover{color:var(--alert)}

/* --- Notices ------------------------------------------------------------ */
.notice{display:flex;gap:.9rem;padding:1.05rem 1.25rem;border-radius:var(--r);font-size:.9rem;line-height:1.55;border:1px solid;margin-bottom:1.2rem}
.notice svg{width:20px;height:20px;flex:none;margin-top:1px}
.notice b{display:block;margin-bottom:.2rem;font-size:.94rem}
.notice p:last-child{margin-bottom:0}
.notice--warn{background:var(--warn-bg);border-color:#f0d9a8;color:#6d4700}
.notice--warn svg{color:var(--warn)}
.notice--warn b{color:#5c3c00}
.notice--alert{background:var(--alert-bg);border-color:#f3c9c9;color:#7d1a1a}
.notice--alert svg{color:var(--alert)}
.notice--info{background:var(--info-bg);border-color:#c9dcf0;color:#153f68}
.notice--info svg{color:var(--info)}
.notice--ok{background:var(--ok-bg);border-color:#bfe3d0;color:#155c3d}
.notice--ok svg{color:var(--ok)}
.notice--dark{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16);color:rgba(255,255,255,.78)}
.notice--dark b{color:#fff}
.notice--dark svg{color:var(--brass-400)}

.disclaimer{font-size:.78rem;color:var(--slate-light);line-height:1.55;border-top:1px solid var(--line);padding-top:.9rem;margin-top:1.2rem}

/* --- Accordion ---------------------------------------------------------- */
.accordion{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}
.accordion + .accordion{margin-top:.6rem}
.accordion summary{
  padding:1.05rem 1.3rem;cursor:pointer;list-style:none;display:flex;align-items:center;
  justify-content:space-between;gap:1rem;font-weight:620;font-size:.98rem;color:var(--navy-800);
}
.accordion summary::-webkit-details-marker{display:none}
.accordion summary::after{content:"";width:9px;height:9px;border-right:2px solid var(--brass-600);border-bottom:2px solid var(--brass-600);transform:rotate(45deg);transition:transform .2s var(--ease);flex:none;margin-top:-4px}
.accordion[open] summary::after{transform:rotate(-135deg);margin-top:2px}
.accordion summary:hover{background:var(--surface)}
.accordion .acc-body{padding:0 1.3rem 1.2rem;font-size:.94rem;color:var(--slate)}
.accordion .acc-body > *:last-child{margin-bottom:0}

/* --- Tabs --------------------------------------------------------------- */
.tabs{display:flex;gap:.3rem;border-bottom:1.5px solid var(--line);margin-bottom:1.8rem;overflow-x:auto}
.tabs button{
  background:none;border:0;border-bottom:2.5px solid transparent;margin-bottom:-1.5px;
  padding:.75rem 1.05rem;font-family:var(--font-sans);font-size:.92rem;font-weight:600;
  color:var(--slate);cursor:pointer;white-space:nowrap;transition:all .16s var(--ease);
}
.tabs button:hover{color:var(--navy-800)}
.tabs button[aria-selected="true"]{color:var(--navy-800);border-bottom-color:var(--brass-600)}
.tabpanel[hidden]{display:none}

/* --- Mascot callout ----------------------------------------------------- */
.mascot-callout{
  display:grid;grid-template-columns:auto 1fr;gap:2rem;align-items:center;
  background:linear-gradient(120deg,var(--brass-100),#fff);border:1px solid var(--brass-400);
  border-radius:var(--r-xl);padding:1.8rem 2.2rem;
}
.mascot-callout img{width:150px;flex:none}
.mascot-callout h3{margin-bottom:.4rem}
.mascot-callout p{margin-bottom:1rem;color:var(--ink-soft)}
.mascot-inline{display:flex;align-items:flex-end;gap:1.2rem}
.mascot-inline img{width:96px;flex:none}
.mascot-bubble{
  position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:1rem 1.2rem;font-size:.9rem;color:var(--ink-soft);box-shadow:var(--shadow-sm);
}
.mascot-bubble::before{content:"";position:absolute;left:-8px;bottom:22px;width:14px;height:14px;background:#fff;border-left:1px solid var(--line);border-bottom:1px solid var(--line);transform:rotate(45deg)}
.mascot-bubble b{display:block;color:var(--navy-800);margin-bottom:.2rem}

/* --- CTA banner --------------------------------------------------------- */
.cta-banner{
  background:linear-gradient(140deg,var(--navy-900),var(--navy-700) 62%,var(--navy-600));
  border-radius:var(--r-xl);padding:clamp(2.2rem,1.5rem + 3vw,3.6rem);color:rgba(255,255,255,.8);
  position:relative;overflow:hidden;
}
.cta-banner::after{content:"";position:absolute;right:-70px;bottom:-90px;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(198,161,91,.2),transparent 66%)}
.cta-banner .inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto;gap:2.5rem;align-items:center}
.cta-banner h2{color:#fff;margin-bottom:.6rem}
.cta-banner p{margin-bottom:0;color:rgba(255,255,255,.84);max-width:58ch}

/* --- Footer ------------------------------------------------------------- */
.solutions-hub{background:var(--surface);border-top:1px solid var(--line);padding:clamp(1.75rem,1.3rem + 1.2vw,2.5rem) 0}
.solution-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem}
.solution-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.3rem 1.15rem;
  text-decoration:none;color:inherit;text-align:center;transition:all .18s var(--ease);
}
.solution-card:hover{border-color:var(--brass-500);box-shadow:var(--shadow);transform:translateY(-3px)}
.solution-card svg{width:28px;height:28px;color:var(--brass-600);margin:0 auto .8rem}
.solution-card b{display:block;font-size:.92rem;color:var(--navy-800);margin-bottom:.25rem;font-weight:640}
.solution-card span{font-size:.79rem;color:var(--slate);line-height:1.45;display:block}

.site-footer{background:var(--navy-900);color:rgba(255,255,255,.72);padding:3.5rem 0 0;font-size:.89rem}
.footer-grid{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:2.5rem;padding-bottom:2.5rem}
.footer-brand img{width:60px;margin-bottom:1rem}
.footer-brand p{font-size:.86rem;line-height:1.6;color:rgba(255,255,255,.72);margin-bottom:1.2rem}
.footer-contact{display:grid;gap:.55rem;font-size:.85rem}
.footer-contact a,.footer-contact div{display:flex;gap:.6rem;align-items:flex-start;color:rgba(255,255,255,.72);text-decoration:none;line-height:1.5}
.footer-contact svg{width:15px;height:15px;color:var(--brass-500);flex:none;margin-top:3px}
.footer-contact a:hover{color:var(--brass-400)}
.site-footer h2,.site-footer h4{font-family:var(--font-sans);color:#fff;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:1rem}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.site-footer ul li{margin:0}
.site-footer ul a{color:rgba(255,255,255,.75);text-decoration:none;font-size:.86rem}
.site-footer ul a:hover{color:var(--brass-400)}
.footer-legal{border-top:1px solid rgba(255,255,255,.1);padding:1.5rem 0;display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;font-size:.79rem;color:rgba(255,255,255,.62)}
.footer-legal nav{display:flex;gap:1.2rem;flex-wrap:wrap}
.footer-legal a{color:rgba(255,255,255,.72);text-decoration:none}
.footer-legal a:hover{color:var(--brass-400)}
.footer-disclosure{border-top:1px solid rgba(255,255,255,.08);padding:1.2rem 0 2rem;font-size:.74rem;line-height:1.6;color:rgba(255,255,255,.6)}

/* --- Content pages ------------------------------------------------------ */
.content-layout{display:grid;grid-template-columns:1fr 300px;gap:3.5rem;align-items:start}
.entry-content > *:first-child{margin-top:0}
.entry-content h2{margin-top:2.5rem}
.entry-content h3{margin-top:2rem}
.entry-content ul li,.entry-content ol li{margin-bottom:.55rem}
.entry-content img{border-radius:var(--r);margin:1.5rem 0}
.sidebar{position:sticky;top:calc(var(--header-h) + 20px);display:grid;gap:1.2rem}
.side-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.4rem}
.side-card h3,.side-card h4{font-family:var(--font-sans);font-size:.76rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--slate);margin-bottom:.9rem}
.side-card ul{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.side-card ul li{margin:0}
.side-card ul a{font-size:.88rem;text-decoration:none;color:var(--navy-700)}
.side-card ul a:hover{color:var(--brass-600)}
.side-card--cta{background:linear-gradient(160deg,var(--navy-800),var(--navy-700));border-color:transparent;color:rgba(255,255,255,.75)}
.side-card--cta h3,.side-card--cta h4{color:var(--brass-400)}
.side-card--cta p{font-size:.87rem;margin-bottom:1rem;color:rgba(255,255,255,.84)}

.post-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:all .2s var(--ease)}
.post-card:hover{border-color:var(--brass-500);box-shadow:var(--shadow);transform:translateY(-3px)}
.post-card .thumb{aspect-ratio:16/9;background:linear-gradient(140deg,var(--navy-700),var(--navy-900));display:flex;align-items:center;justify-content:center}
.post-card .thumb img{width:100%;height:100%;object-fit:cover}
.post-card .thumb svg{width:44px;height:44px;color:rgba(198,161,91,.5)}
.post-card .body{padding:1.3rem;display:flex;flex-direction:column;flex:1}
.post-card .kicker{font-size:.72rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--brass-text);margin-bottom:.5rem}
.post-card h3{font-size:1.06rem;margin-bottom:.45rem;line-height:1.35}
.post-card p{font-size:.87rem;color:var(--slate);margin-bottom:1rem}
.post-card .meta{margin-top:auto;font-size:.78rem;color:var(--slate-light);display:flex;gap:.8rem}

.pagination{display:flex;gap:.4rem;justify-content:center;margin-top:3rem;flex-wrap:wrap}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 .7rem;border:1px solid var(--line);border-radius:var(--r-sm);text-decoration:none;color:var(--navy-700);font-weight:600;font-size:.9rem;background:#fff}
.pagination .page-numbers:hover{border-color:var(--navy-600)}
.pagination .current{background:var(--navy-800);border-color:var(--navy-800);color:#fff}

/* --- Utility ------------------------------------------------------------ */
.tabular{font-variant-numeric:tabular-nums}
.text-slate{color:var(--slate)}
.hide{display:none!important}
.loading{position:relative;pointer-events:none;opacity:.55}
.spinner{display:inline-block;width:15px;height:15px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
/* Visible by default - see armReveals() in theme.js. Only an element the
   observer has actually taken charge of is hidden, so content can never be
   left invisible by a script that did not run. */
.reveal{transition:opacity .55s var(--ease),transform .55s var(--ease)}
.reveal.is-armed{opacity:0;transform:translateY(18px)}
.reveal.is-armed.is-in{opacity:1;transform:none}

/* --- Responsive --------------------------------------------------------- */
@media (max-width:1080px){
  .g4,.g5{grid-template-columns:repeat(2,1fr)}
  .solution-cards{grid-template-columns:repeat(3,1fr)}
  .footer-grid{grid-template-columns:1.4fr 1fr 1fr}
  .process{grid-template-columns:repeat(3,1fr);gap:2rem 0}
  .process-step:nth-child(3)::after{display:none}
  .stat-grid{grid-template-columns:repeat(2,1fr)}
  .vault-layout{grid-template-columns:1fr}
  .vault-filters{position:static;max-height:none;overflow:visible}
  .content-layout{grid-template-columns:1fr}
  .sidebar{position:static;grid-template-columns:repeat(2,1fr)}
}
/* Seven top-level items plus the brand and two CTAs stop fitting well before
   the tablet breakpoint, so the navigation collapses on its own schedule. */
@media (max-width:1080px){
  :root{--header-h:66px}
  /* backdrop-filter would make the header a containing block for the
     position:fixed nav panel, collapsing it to the header's height.
     Drop it here and paint the header opaque instead. */
  .site-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:#fff}
  .nav-toggle{display:flex}
  .primary-nav{
    position:fixed;inset:var(--header-h) 0 0;background:#fff;overflow-y:auto;padding:1.2rem 1.5rem 6rem;
    transform:translateX(100%);transition:transform .28s var(--ease),visibility .28s;margin:0;
    /* Keep the closed panel out of the layout so it cannot widen the document. */
    visibility:hidden;
  }
  .primary-nav.is-open{transform:none;visibility:visible}
  .primary-nav ul{flex-direction:column;align-items:stretch;gap:0}
  .primary-nav > ul > li{border-bottom:1px solid var(--line-soft)}
  .primary-nav > ul > li > a{padding:.95rem .2rem;font-size:1rem;justify-content:space-between;border-radius:0}
  .primary-nav ul ul{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0 0 .6rem .9rem;display:none;background:transparent}
  .primary-nav li.is-open > ul{display:block}
  .primary-nav ul ul a{padding:.55rem .3rem;font-size:.92rem}
}
@media (max-width:900px){
  body{font-size:16px;padding-bottom:80px}
  .site-topbar{display:none}
  .hero-badge{flex-wrap:wrap;row-gap:.35rem}
  .mobile-bar{display:flex}
  .hero-grid,.coverage-layout,.tool-body,.cta-banner .inner,.mascot-callout{grid-template-columns:1fr}
  .hero-visual{order:-1}
  .hero-visual img{width:min(46%,190px)}
  .cta-banner .inner{gap:1.6rem}
  .g2,.g3,.g4,.g5{grid-template-columns:1fr}
  .trust-strip .wrap{grid-template-columns:repeat(2,1fr);gap:1.1rem}
  .solution-cards{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr;gap:2rem}
  .footer-brand{grid-column:1/-1}
  .process{grid-template-columns:1fr;gap:1.6rem}
  .process-step{display:grid;grid-template-columns:52px 1fr;gap:1rem;text-align:left;padding:0}
  .process-step::before{margin:0}
  .process-step::after{display:none}
  .mascot-callout{text-align:center}
  .mascot-callout img{margin:0 auto}
  .form-card{grid-template-columns:1fr;gap:.8rem}
  .form-type{display:none}
  .form-actions{flex-direction:row;min-width:0}
  .form-actions .btn{flex:1}
  .wizard-panel,.wizard-foot{padding:1.4rem}
  .field-row,.field-row-3,.check-grid,.county-grid{grid-template-columns:1fr}
  .sidebar{grid-template-columns:1fr}
  .footer-legal{flex-direction:column;gap:.8rem}
}
@media (max-width:560px){
  .summary-block .srow{flex-direction:column}
  .summary-block dd{text-align:left}
}
@media (max-width:520px){
  .brand-text{display:none}
  .header-actions .btn{padding:.6rem .95rem;font-size:.85rem}
  .trust-strip .wrap{grid-template-columns:1fr}
  .solution-cards{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .section{padding:3rem 0}
  .wrap,.wrap-narrow{width:min(100% - 1.8rem,var(--wrap))}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal,.reveal.is-armed{opacity:1;transform:none}
}
@media print{
  .site-header,.site-topbar,.mobile-bar,.site-footer,.solutions-hub,.cta-banner,.btn{display:none!important}
  body{font-size:12pt;color:#000}
  .hero,.page-hero{background:none!important;color:#000;padding:0 0 1rem}
  .hero h1,.page-hero h1{color:#000}
}

/* WordPress core alignment classes */
.alignleft{float:left;margin:.5rem 1.5rem 1rem 0}
.alignright{float:right;margin:.5rem 0 1rem 1.5rem}
.aligncenter{margin-left:auto;margin-right:auto;display:block}
.alignwide{width:min(100vw - 2.5rem,1280px);margin-left:50%;transform:translateX(-50%)}
.alignfull{width:100vw;margin-left:50%;transform:translateX(-50%);max-width:none}
.wp-caption{max-width:100%}
.sticky,.gallery-caption,.bypostauthor{}
.wp-block-image img{border-radius:var(--r)}

/* ==========================================================================
   VIKING ABSTRACT — PALETTE: NAVY, BRASS AND IVORY
   --------------------------------------------------------------------------
   The brief: strength, wealth, confidence. That is one deep navy family, warm
   light grounds, and metal as the only accent — the palette private banks and
   title firms have used for a century, for the reason that it reads expensive
   without announcing itself.

   What was wrong with the previous scheme, so it is not repeated:

     - #062485 is a high-chroma royal blue. Beside a desaturated navy header it
       reads as a SECOND blue rather than a darker one, and two blues on a page
       always look unresolved. Everything dark here now comes from one ramp.
     - #7f828c is a mid-tone gray (L* 55) used where a light surface belongs.
       It could not carry white type (3.84:1), so the page alternated white-on-
       blue with black-on-gray. Light grounds take dark type, everywhere.

   Retinting happens at the TOKENS, not at the components. The design system is
   already token-driven, so the whole site follows from these values — which is
   also why the enumerated override stack the previous palette needed is gone.

   Every pairing below is measured, not estimated:
     ink #17263D on ivory ......... 14.33:1      white on navy ........ 15.73:1
     ink on sand .................. 13.03:1      white on header ...... 17.43:1
     slate #55637A on ivory ........ 5.73:1      navy on brass button .. 5.49:1
     brass-text #7C5E28 on ivory ... 5.67:1      brass-400 on navy ..... 8.95:1
   ========================================================================== */

:root{
  /* One navy ramp. 900 is the masthead, a shade deeper than the hero it sits
     above; 800 is the working dark ground for hero, footer and dark sections. */
  --navy-900:#0A1A31;
  --navy-800:#0F2340;
  --navy-700:#17335A;
  --navy-600:#1F4372;
  --navy-500:#2B568C;

  /* Brass, not gold. #B4894A is the rule under the masthead, so the buttons
     are struck from the same metal. */
  --brass-700:#5E461E;      /* 5.04:1 on brass-400 — used as type on metal */
  --brass-text:#7C5E28;    /* 5.67:1 on ivory — brass for small text */
  --brass-600:#B4894A;
  --brass-500:#C6A15B;
  --brass-400:#DCC08A;
  --brass-100:#F3EAD8;

  /* Warm neutrals. A cool gray next to navy reads institutional and cheap;
     a warm one reads like paper, which is what a title company sells. */
  --ink:#17263D;
  --ink-soft:#33445C;
  --slate:#55637A;
  --slate-light:#5C6A80;   /* 5.4:1 on ivory, 4.7:1 on sand */
  --line:#DED7C9;
  --line-soft:#EDE8DE;
  --line-strong:#0F2340;   /* the bold outline */
  --surface:#F2EDE3;       /* warm sand — the secondary ground */
  --surface-2:#EFE9DD;
  --white:#ffffff;
  --ivory:#FAF8F3;         /* the page ground */

  /* Status tints, warmed to sit on ivory rather than on white. */
  --ok:#1C6B49;      --ok-bg:#E8F1EA;
  --warn:#8A5A00;    --warn-bg:#F7EEDC;
  --alert:#96201F;   --alert-bg:#F7E7E4;
  --info:#17457A;    --info-bg:#E9EFF6;

  /* Shadows cast in navy, not in black — black on a warm ground goes muddy. */
  --shadow-sm:0 1px 2px rgba(15,35,64,.06),0 1px 3px rgba(15,35,64,.05);
  --shadow:0 4px 14px rgba(15,35,64,.08),0 1px 3px rgba(15,35,64,.06);
  --shadow-lg:0 20px 48px rgba(15,35,64,.16),0 4px 12px rgba(15,35,64,.08);
  --shadow-brass:0 8px 24px rgba(180,137,74,.30);
}

/* --- the page ground ----------------------------------------------------- */
body{background:var(--ivory);color:var(--ink-soft)}
.section--surface{background:var(--surface)}

/* --- the masthead, one shade deeper than the hero ------------------------ */
.site-topbar{background:#07131F;color:rgba(255,255,255,.80);border-bottom:0}
.site-topbar a{color:rgba(255,255,255,.86)}
.site-topbar a:hover{color:#fff}
.site-header{
  background:var(--navy-900);
  border-bottom:3px solid var(--brass-600);
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
.site-header.is-stuck{box-shadow:0 6px 24px rgba(10,26,49,.34)}
.brand-name{color:#fff}
.brand-tag{color:var(--brass-400)}
.primary-nav > ul > li > a{color:#D6DEE9}
.primary-nav > ul > li > a:hover,
.primary-nav > ul > li.is-open > a{background:rgba(255,255,255,.10);color:#fff}
.primary-nav .current-menu-item > a,
.primary-nav .current_page_item > a,
.primary-nav .current-menu-ancestor > a{color:#fff}
.primary-nav ul ul{background:#fff;border-color:var(--line)}   /* dropdowns stay paper */
.primary-nav ul ul a{color:var(--navy-800)}
.primary-nav ul ul a:hover{background:var(--surface);color:var(--navy-900)}
.site-header .btn-outline{color:#E7ECF3;border-color:rgba(255,255,255,.34);background:transparent}
.site-header .btn-outline:hover{color:#fff;border-color:var(--brass-600);background:rgba(255,255,255,.09)}
.nav-toggle{color:#E7ECF3;border-color:rgba(255,255,255,.34)}

/* "Forms & Calculators" is wider than the old "Forms & Tools" and no longer
   fits a 1200px wrap. The header gets its own measure; the body keeps 1200. */
@media (min-width:1081px){
  .site-header .wrap{width:min(100% - 2.5rem,1360px)}
  .primary-nav > ul{gap:.1rem}
  .primary-nav > ul > li > a{padding:.6rem .62rem}
}
/* The header button is no longer hidden at any width - see the block at the
   end of this file, which makes the bar fit instead of dropping controls. */
@media (max-width:1080px){
  .nav-mobile,.mobile-nav,#mobileNav{background:var(--navy-900)}
  .nav-mobile a,.mobile-nav a,#mobileNav a{color:#E7ECF3}
}
.mobile-bar{background:var(--navy-900);border-top-color:rgba(255,255,255,.14)}
.mobile-bar a{color:#E7ECF3}
.mobile-bar a.is-primary{background:var(--brass-600);color:var(--navy-900)}

/* --- the bold outlines --------------------------------------------------- */
/* The outline is the thing that makes this look built rather than styled, so
   it is a real 1.5px navy line at 22% rather than a hairline of gray. Feature
   panels take the full-strength navy. */
.card,.panel,.tile,.box,.solution-card,.form-card,.post-card,.audience-card,
.county-chip,.tool-card,.tool,.side-card,.summary-block,.stat,.radio-card,
.check,.dropzone,.notice-block{
  border-width:1.5px;
  border-color:rgba(15,35,64,.30);
}
.card:hover,.solution-card:hover,.post-card:hover,.audience-card:hover,
.county-chip:hover{border-color:rgba(15,35,64,.45)}
.panel > header,.tool-card > header,.summary-block h3,.summary-block h4{
  border-bottom-color:rgba(15,35,64,.30);
}
.section--navy{background:var(--navy-800);color:rgba(255,255,255,.84)}
.section--navy a{color:var(--brass-400)}
.site-footer{background:var(--navy-900);border-top:3px solid var(--brass-600)}

/* Buttons: metal for the primary action, a navy outline for the secondary. */
.btn-primary,.btn.btn-primary,.btn--gold{
  background:var(--brass-600);color:var(--navy-900);border:1.5px solid var(--brass-700);
}
.btn-primary:hover,.btn.btn-primary:hover,.btn--gold:hover{background:var(--brass-500)}
.btn-outline{border-width:1.5px;border-color:var(--navy-800);color:var(--navy-800)}
.btn-outline:hover{background:var(--navy-800);color:#fff;border-color:var(--navy-800)}

/* Tables read as ledgers: a heavy rule under the head, hairlines between rows. */
th{background:var(--surface);color:var(--navy-800);border-bottom:1.5px solid var(--line-strong)}
td{border-bottom:1px solid var(--line)}

/* ==========================================================================
   THE SETTLEMENT CALCULATOR ON THE SAME PALETTE
   --------------------------------------------------------------------------
   The plugin stylesheet is scoped to `.vss-app` and enqueued after the theme's,
   so these are qualified with `body` to outweigh it at equal specificity.

   `--ink` is left alone on purpose: the calculator uses it BOTH as its default
   text color and as the ground of the dark ledger rail, so repointing it
   turns the rail white. The surface variables are the safe levers, and nothing
   in the printed statement reads them — the paper stays paper.
   ========================================================================== */
body .vss-app{
  --frost:#F2EDE3;       /* the calculator's page ground */
  --paper:#ffffff;       /* panels */
  --parchment:#FAF8F3;   /* panel heads and sub-blocks */
  --rule:#DED7C9;
  --brass:#B4894A;
  --brass-lt:#DCC08A;
  --slate:#33445C;
  --steel:#55637A;
  --mist:#8A93A4;        /* 5.32:1 on the dark ledger rail */
  background:var(--frost);
}
body .vss-app .panel{border:1.5px solid rgba(15,35,64,.30)}
body .vss-app .panel > header{border-bottom-color:rgba(15,35,64,.30)}
body .vss-app table th{border-bottom:1.5px solid var(--line-strong)}
body .vss-app .btn.ghost{border-color:rgba(255,255,255,.34)}
/* The ledger rail is the calculator's one dark surface. It was struck from
   --ink, a cool near-black, which reads as a third color beside the navy
   masthead. Repoint the SURFACE only - --ink is still the text color. */
body .vss-app .rail .card{background:var(--navy-800)}
body .vss-app .rail .card > header,
body .vss-app .rail .head{background:var(--navy-900)}
body .vss-app .skip{background:var(--navy-900)}

/* --- hero quick links: two rows of three --------------------------------- */
/* Wrapping laid five pills out as 4 + 1. A fixed three-column grid makes the
   block rectangular under the two buttons, which is what makes it read as a
   second tier rather than as spill. `nowrap` has to go with it - in a fixed
   track a long label has to be allowed to break. */
.hero-quicklinks{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.55rem;margin-top:.6rem;max-width:37.5rem;
}
.hero-quicklinks a{
  justify-content:center;text-align:center;white-space:normal;
  padding:.55rem .7rem;line-height:1.25;min-height:2.6rem;
}
/* In a flex row the icon was sized by the line; in a grid cell it has room to
   grow and ballooned to the height of the pill. Pin it. */
.hero-quicklinks a svg{width:15px;height:15px;flex:none}
@media (max-width:640px){
  .hero-quicklinks{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}
}
@media (max-width:360px){
  .hero-quicklinks{grid-template-columns:1fr}
}

/* ==========================================================================
   VERTICAL RHYTHM
   --------------------------------------------------------------------------
   The complaint was empty space between sections, and the measurement bore it
   out: every `.section` carried 96px of padding top AND bottom, so each seam
   was a 192px empty band. The home page has ten of them — roughly 1,900px of
   the scroll, a fifth of the page, with nothing in it.

   The band padding above is now ~48px a side. The rules here take out the
   second source: blocks inside a section that each brought their own margin,
   so the gaps compounded. The target is the rhythm of the audience pages,
   where content runs continuously and the reader is never scrolling past
   nothing.
   ========================================================================== */

/* A section that opens with a heading does not need the band's full lead-in as
   well — the heading's own margin already separates it. */
.section > .wrap > .section-head:first-child,
.section > .wrap > .entry-content > h2:first-child{margin-top:0}

/* Consecutive bands on the SAME ground have no color change to justify a
   double gap, so the seam collapses to one band's worth instead of two. */
.section + .section:not(.section--surface):not(.section--navy),
.section--surface + .section--surface,
.section--navy + .section--navy{padding-top:0}

/* Content blocks: the audience pages set these locally at .7rem / 2.5rem and
   read tight. Same values, applied everywhere. */
.entry-content > * + *{margin-top:1.1rem}
.entry-content > h2{margin-top:2rem;margin-bottom:.6rem}
.entry-content > h3{margin-top:1.5rem;margin-bottom:.45rem}
.entry-content > .grid{margin-top:1.2rem;margin-bottom:1.2rem}
.entry-content > p:last-child,.entry-content > .grid:last-child{margin-bottom:0}
.content-layout{gap:2.25rem}
.btn-row{margin-top:1.4rem}
.section-head p{margin-top:.35rem}

/* Cards were padded for a roomier page than this one now is. */
.card,.solution-card,.audience-card,.post-card,.form-card,.tool-card{padding:1.15rem 1.25rem}
.card h3,.solution-card h3,.audience-card h3{margin-bottom:.35rem}
.card p,.solution-card p,.audience-card p{margin-bottom:.6rem}
.card p:last-child,.solution-card p:last-child{margin-bottom:0}

/* The footer opened with almost a section's worth of air above the first
   column. */
.site-footer{padding-top:2.5rem}
.footer-grid{gap:1.75rem;padding-bottom:1.75rem}

/* --- section photographs -------------------------------------------------
   A band image sits between a section head and its grid. It is cropped rather
   than letterboxed so it never introduces the empty space this pass removed,
   and it carries the same navy outline as the cards so it reads as part of
   the system rather than as a picture dropped on the page. */
.section-photo{
  margin:0 0 1.4rem;border:1.5px solid rgba(15,35,64,.30);
  border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);
  background:var(--surface);
}
/* Tall enough to show the scene, short enough not to undo the rhythm pass.
   340px cropped away most of the room; 560px at a 1200px measure is a ~2.1:1
   band, which reads as a photograph rather than a letterbox strip.

   The closing-table source is square, so it is shipped uncropped and cropped
   ONCE here - the earlier build-time 16:9 crop discarded 44% of the frame
   before CSS took its own share, and cutting the same picture twice is what
   lost the room. `object-position` picks the band that holds the faces. */
.section-photo img{
  width:100%;display:block;height:560px;object-fit:cover;object-position:center 46%;
}
.section-photo--family img{object-position:center 44%}
@media (max-width:1100px){ .section-photo img{height:460px} }
@media (max-width:900px){  .section-photo img{height:380px} }
@media (max-width:640px){  .section-photo img{height:300px} }
@media (max-width:420px){  .section-photo img{height:240px} }

/* The one photograph shown whole. Every other band on the site is cropped to
   height with object-fit, which always cuts something; this one runs at its own
   1.83:1 so the entire frame is on the page. No fixed height, so nothing is
   trimmed at any width. */
.section-photo--band{margin-bottom:1.1rem}
.section-photo--band img{height:auto;aspect-ratio:auto;object-fit:contain}

/* ==========================================================================
   EVERY CONTROL VISIBLE AT EVERY WIDTH
   --------------------------------------------------------------------------
   The header's secondary button used to be dropped twice - once below 1080px
   and once between 1081 and 1380px, where "Forms & Calculators" made the nav
   too wide. Hiding a control is the wrong answer to a fitting problem: on a
   phone the NY Forms button simply did not exist.

   Both hides are gone. The bar is made to fit instead: the nav tightens
   through the squeeze, and on small screens the button keeps its icon and
   drops its label, which costs about 70px and no function. The accessible
   name stays on the element, so it still announces as "NY Forms".
   ========================================================================== */
@media (min-width:1081px) and (max-width:1420px){
  .site-header .wrap{width:min(100% - 1.5rem,1420px)}
  .primary-nav > ul{gap:0}
  .primary-nav > ul > li > a{padding:.6rem .5rem;font-size:.9rem}
  .header-actions{gap:.45rem}
  .header-actions .btn{padding:.55rem .8rem;font-size:.84rem}
  .brand-tag{display:none}
}
/* The tightest band. Measured at 1081px the bar overran by 97px with seven nav
   items at 700px, so the squeeze here is real: smaller type, minimal item
   padding, a smaller caret and a smaller mark. Nothing is removed. */
@media (min-width:1081px) and (max-width:1260px){
  .primary-nav > ul > li > a{padding:.6rem .34rem;font-size:.855rem;gap:.15rem}
  .primary-nav > ul > li > a svg{width:10px;height:10px}
  .brand img{width:40px;height:40px}
  .brand{gap:.5rem}
  .brand-name{font-size:1.1rem}
  .header-actions .btn{padding:.5rem .7rem;font-size:.8rem}
}
@media (max-width:1080px){
  .header-actions .btn-outline{display:inline-flex}
}
@media (max-width:720px){
  /* Icon-only below 720px. The label is hidden from sight but kept for
     assistive technology - display:none on the text would take the name with
     it, so it is clipped instead. */
  .header-actions .btn-outline .btn-label{
    position:absolute;width:1px;height:1px;padding:0;margin:-1px;
    overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
  }
  .header-actions .btn-outline{padding:.55rem .7rem}
}

/* --- the mobile navigation panel -----------------------------------------
   The panel is a full-screen overlay that predates the dark masthead: it was
   white, and the nav links had just been recoloured to #D6DEE9 for the dark
   bar. Pale gray on white - the entire menu was invisible on a phone, and the
   contrast audit could not see it because the closed panel is
   visibility:hidden. The panel now matches the masthead it drops out of. */
@media (max-width:1080px){
  .primary-nav{background:var(--navy-900)}
  .primary-nav > ul > li > a,
  .primary-nav ul ul a{color:#E7ECF3;background:transparent}
  .primary-nav > ul > li{border-bottom-color:rgba(255,255,255,.14)}
  .primary-nav > ul > li > a:hover,
  .primary-nav > ul > li.is-open > a{background:rgba(255,255,255,.10);color:#fff}
  .primary-nav ul ul{background:transparent;border:0}
  .primary-nav ul ul a{color:#C3CEDE;font-size:.92rem}
  .primary-nav ul ul a:hover{background:rgba(255,255,255,.08);color:#fff}
  .primary-nav .nav-cta .btn{width:100%}
}

/* --- no blank clickable space inside a card ------------------------------
   Cards in a grid stretch to the tallest in the row, so a card with less copy
   carried up to 20px of empty-but-clickable space under its last line. On a
   card that is itself a link that reads as a phantom hit area. Pinning the
   affordance to the bottom uses the slack instead of leaving it, and lines the
   arrows up across the row. */
.card,.solution-card,.audience-card,.post-card,.form-card,.tool-card{
  display:flex;flex-direction:column;
}
.card > .link-arrow,.solution-card > .link-arrow,
.audience-card > .link-arrow,.post-card > .link-arrow{margin-top:auto;padding-top:.45rem}
/* Cards without an arrow (the solutions hub) let their last text block take up
   the slack instead, so the clickable box maps to the content rather than
   ending in a strip of nothing. */
.solution-card > :last-child:not(.link-arrow){flex:1 1 auto}

/* --- hero actions --------------------------------------------------------
   Order Title runs the full measure on its own line; the two secondary actions
   share the line beneath it; the six quick links follow. All three tiers are
   centered on the same 37.5rem measure so the block reads as one column rather
   than three loose rows. */
.hero-actions{max-width:37.5rem;margin-top:1.4rem;display:grid;gap:.6rem}
.hero-actions .hero-cta{width:100%;justify-content:center;font-size:1.02rem;padding-block:.95rem}
.hero-actions-secondary{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.hero-actions-secondary .btn{width:100%;justify-content:center;text-align:center}
@media (max-width:560px){
  .hero-actions-secondary{grid-template-columns:1fr}
}

/* --- article artwork ------------------------------------------------------
   The starter articles now ship with photographs instead of the book icon, so
   the thumb is a real image frame: fixed ratio, cropped, and it fills the slot
   rather than centering an icon in it. */
.post-card .thumb{aspect-ratio:3/2;overflow:hidden;display:block;padding:0}
.post-card .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.post-card .thumb svg{margin:auto}
.entry-hero{margin:0 0 1.2rem;border:1.5px solid rgba(15,35,64,.30);border-radius:var(--r-lg);overflow:hidden}
.entry-hero:empty{display:none}
.entry-hero img{width:100%;height:auto;display:block}

/* --- the phone number ----------------------------------------------------
   Two numbers rendered as one string wrapped wherever the box ran out of
   room, which in a block button split a number mid-digit: "1-844-784-" on one
   line and "5464)" on the next. Each number is now unbreakable on its own,
   with a normal wrap opportunity between them - so they stay on one line
   wherever they fit, and only move when they do not. */
.va-phone > span{white-space:nowrap}
/* A call button may now carry two lines, so give it room without forcing it. */
.btn .va-phone{display:inline-block;line-height:1.3}

/* --- footer credit, search and site map ---------------------------------- */
.footer-credit{
  border-top:1px solid rgba(255,255,255,.08);padding:1rem 0 0;margin:0;
  font-size:.78rem;color:rgba(255,255,255,.62);
}
.footer-credit a{color:var(--brass-400);text-decoration:none}
.footer-credit a:hover{color:#f0dcb4;text-decoration:underline}

/* The bar is copyright | search | legal links, so the search takes the middle
   and the two ends stay put. It drops to full width once the row wraps. */
.footer-search{flex:1 1 15rem;max-width:24rem;min-width:0}
.footer-search .vault-searchbar{
  /* The vault version is positioned with an absolutely-placed icon; here the
     row is a simple flex line, so the icon needs to hold its own column or it
     sits on top of the placeholder. */
  display:flex;align-items:center;gap:.5rem;position:static;
  margin:0;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);
  border-radius:var(--r-pill);padding:.32rem .85rem;
}
.footer-search .vault-searchbar input{
  flex:1 1 auto;min-width:0;position:static;
  background:transparent;border:0;color:#fff;font-size:.82rem;
  padding:.3rem 0;box-shadow:none;height:auto;
}
.footer-search .vault-searchbar input::placeholder{color:rgba(255,255,255,.55)}
.footer-search .vault-searchbar input:focus{outline:2px solid var(--brass-500);outline-offset:2px}
.footer-search .vault-searchbar svg{color:rgba(255,255,255,.6);flex:none;position:static;width:15px;height:15px}
@media (max-width:1080px){
  .footer-search{flex:1 1 100%;max-width:none;order:3}
}

.sitemap-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:2.5rem;align-items:start}
.sitemap-col h2{margin-top:0}
.sitemap-list{list-style:none;margin:0 0 .4rem;padding:0}
.sitemap-list .sitemap-list{margin-left:1rem;padding-left:.9rem;border-left:1.5px solid rgba(15,35,64,.16)}
.sitemap-list li{margin:.2rem 0}
.sitemap-list a{color:var(--navy-700);text-decoration:none;font-size:.94rem}
.sitemap-list a:hover{color:var(--brass-text);text-decoration:underline}
.sitemap-cat{font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--brass-text);margin:1.2rem 0 .3rem}
.sitemap-cat a{color:inherit;text-decoration:none}
.sitemap-count{margin-top:1.6rem;font-size:.82rem;color:var(--slate)}
@media (max-width:820px){
  .sitemap-grid{grid-template-columns:1fr;gap:1.6rem}
}

/* A primary action that spans the grid above it: the width of both columns
   together, centered, in the same brass as Order Title. */
.btn-span{display:flex;width:100%;justify-content:center;text-align:center;margin-top:.2rem}

/* --- Hiring: now-hiring banner and reasons ------------------------------- */
.section--tight{padding-top:0}
.hiring-banner{
  display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;
  padding:1.5rem 1.7rem;border-radius:var(--r-lg);
  background:var(--navy-800);color:#fff;
  border-left:5px solid var(--brass-600);
}
.hiring-banner-flag{
  flex:none;padding:.3rem .8rem;border-radius:var(--r-pill);
  background:var(--brass-600);color:#1a1206;
  font-family:var(--font-sans);font-size:.72rem;font-weight:800;
  letter-spacing:.09em;text-transform:uppercase;
}
.hiring-banner-body{flex:1 1 18rem;min-width:0}
.hiring-banner-body h2{
  margin:0 0 .3rem;color:#fff;
  font-family:var(--font-sans);font-size:1.5rem;font-weight:750;line-height:1.2;
}
.hiring-banner-body p{margin:0;font-size:.92rem;line-height:1.55;color:rgba(255,255,255,.82)}
.hiring-banner .btn{flex:none}
.hiring-card--open{border-left-color:var(--brass-600);box-shadow:var(--shadow-sm)}
.hiring-card--open .btn{margin-top:.9rem}
.hiring-about-list{margin-top:2rem}
.hiring-banner-areas{
  margin:0 0 .5rem;font-family:var(--font-sans);font-size:.9rem;font-weight:650;
  color:var(--brass-400,#E0C48F);letter-spacing:.01em;
}
.hw-disclosure{margin:1.4rem 0}
.hw-disclosure p{margin:.35rem 0 0;font-size:.88rem;line-height:1.55}
.hw-disclosure p:first-of-type{margin-top:.3rem}
.hw-disclosure--inline{
  padding:.9rem 1.05rem;border:1px solid var(--line);border-left:3px solid var(--brass-600);
  border-radius:var(--r);background:var(--surface);
}
.hw-disclosure--inline b{display:block;margin-bottom:.2rem;color:var(--navy-800);font-size:.9rem}
.vt-hw-notice[hidden]{display:none}

/* --- Footer social row --------------------------------------------------- */
.footer-social{
  display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center;
  margin:0 0 1.4rem;padding:1.1rem 0 0;
  border-top:1px solid rgba(250,248,243,.12);
}
.footer-social-link{
  display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:50%;
  border:1px solid rgba(250,248,243,.20);
  color:rgba(250,248,243,.72);
  transition:color .16s var(--ease),border-color .16s var(--ease),background .16s var(--ease),transform .16s var(--ease);
}
.footer-social-link svg{width:18px;height:18px;display:block}
.footer-social-link:hover{
  color:var(--navy-900);background:var(--brass-600);border-color:var(--brass-600);
  transform:translateY(-2px);
}
.footer-social-link:focus-visible{
  outline:2px solid var(--brass-500);outline-offset:3px;
  color:#fff;border-color:var(--brass-500);
}
@media (max-width:420px){
  .footer-social{gap:.45rem}
  .footer-social-link{width:34px;height:34px}
  .footer-social-link svg{width:16px;height:16px}
}

/* --- Mobile menu utility strip ------------------------------------------- */
/* Carries what the top bar holds on desktop; the top bar is hidden below
   900px, and Portal Login and Secure Upload cannot go missing with it. */
.nav-utility{
  display:flex;flex-direction:column;gap:.15rem;
  margin-top:1.4rem;padding-top:1.1rem;
  border-top:1px solid rgba(250,248,243,.16);
}
.nav-utility a,.nav-utility-hours{
  display:flex;align-items:center;gap:.6rem;
  padding:.7rem .2rem;
  font-family:var(--font-sans);font-size:.95rem;font-weight:600;
  color:rgba(250,248,243,.86);text-decoration:none;
}
.nav-utility a:hover,.nav-utility a:focus-visible{color:var(--brass-400)}
.nav-utility a:focus-visible{outline:2px solid var(--brass-500);outline-offset:2px;border-radius:3px}
.nav-utility svg{width:17px;height:17px;flex:none;opacity:.8}
.nav-utility-hours{font-weight:500;color:rgba(250,248,243,.62);font-size:.87rem;cursor:default}
.nav-utility [hidden]{display:none}
