/* site-brand.css - Jobs In Each State brand layer (polish Batch 4, Nov 10, 2026).
   Family values: Senior Designer tie-breaks T1-T11, DES1 token map. Loaded after legacy-theme.min.css, so
   the old theme's !important rules are beaten with higher specificity (html:root body ...), not new hues.
   Navy #1f3a75 is the only brand colour; #142850 is a surface (band, footer, hover), never text.
   The icon accent orange lives only inside the logo/favicon files, never in this stylesheet.
   Plain CSS file (not a bundle): custom properties are fine here. */

/* ---- fonts: self-hosted Inter (variable) + Source Serif 4 600/700. The legacy theme names Raleway, Montserrat
   and a few others in its rules; those names alias to the Inter file so nothing extra downloads. ---- */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/Content/Fonts/inter-latin-wght-normal.woff2) format("woff2"); }
@font-face { font-family: "Source Serif 4"; font-style: normal; font-weight: 600; font-display: swap; src: url(/Content/Fonts/source-serif-4-latin-600-normal.woff2) format("woff2"); }
@font-face { font-family: "Source Serif 4"; font-style: normal; font-weight: 700; font-display: swap; src: url(/Content/Fonts/source-serif-4-latin-700-normal.woff2) format("woff2"); }
@font-face { font-family: "Raleway"; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/Content/Fonts/inter-latin-wght-normal.woff2) format("woff2"); }
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/Content/Fonts/inter-latin-wght-normal.woff2) format("woff2"); }
@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/Content/Fonts/inter-latin-wght-normal.woff2) format("woff2"); }
@font-face { font-family: "Lato"; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/Content/Fonts/inter-latin-wght-normal.woff2) format("woff2"); }
@font-face { font-family: "Nunito"; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/Content/Fonts/inter-latin-wght-normal.woff2) format("woff2"); }

/* ---- tokens (Hospitals erw- names so ported partials work unchanged; no green aliases, no up/down, no stars) ---- */
:root {
    --erw-font-head: "Source Serif 4", Georgia, "Times New Roman", serif;
    --erw-font-body: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --erw-ink: #14213d; --erw-head: #14213d; --erw-text: #14213d; --erw-ink2: #2b3445; --erw-muted: #5b6576;
    --erw-navy: #1f3a75; --erw-brand-dk: #142850; --erw-band: #142850; --erw-band-muted: #dce3f0; --erw-band-soft: #b4bfd4;
    --erw-soft: #eef2f8; --erw-pill: #eef2f8; --erw-soft-line: #dfe5f0; --erw-card: #f7f5f0; --erw-surface: #f7f5f0;
    --erw-line: #e3e6ec; --erw-line2: #e9ecf1; --erw-input-line: #7d8799; --erw-focus: #1f3a75; --erw-focus-on-dark: #fff;
    --erw-visited: #4a3a8c; --erw-chip-ink: #555b63;
    --erw-shadow: 0 1px 2px rgba(20,33,61,.06), 0 4px 16px rgba(20,33,61,.06);
    --erw-r-sm: 8px; --erw-r: 12px; --erw-r-pill: 999px; --erw-tap: 44px;
    --erw-ease: cubic-bezier(.2,.7,.2,1); --erw-dur-1: 120ms; --erw-dur: 180ms; --erw-dur-3: 240ms;
}
@media (prefers-reduced-motion: reduce) {
    :root { --erw-dur-1: 0ms; --erw-dur: 0ms; --erw-dur-3: 0ms; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ---- base type. Legacy: body,.main-section p { 13px/23px Montserrat #757575 !important }, h1-h6 { Raleway 700 uppercase #424242 !important } ---- */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
html:root body { font: 400 16px/1.6 var(--erw-font-body) !important; color: var(--erw-text) !important; background: #fff; letter-spacing: 0 !important; }
html:root body .main-section p, html:root body main p, html:root body .mce-content-body p { font: 400 16px/1.6 var(--erw-font-body) !important; color: var(--erw-text) !important; letter-spacing: 0 !important; }
html:root body :is(input, select, textarea, button) { font-family: var(--erw-font-body); }
html:root body :is(h1, h2, h3, h4, h5, h6), html:root body :is(h1, h2, h3, h4, h5, h6) a {
    font-family: var(--erw-font-head) !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: -.005em !important;
    color: var(--erw-head) !important; overflow-wrap: anywhere;
}
html:root body h1, html:root body h1 a { font-size: 22px !important; line-height: 1.3 !important; }
html:root body h2, html:root body h2 a { font-size: 20px !important; line-height: 1.3 !important; }
html:root body h3, html:root body h3 a { font-size: 18px !important; line-height: 1.35 !important; }
html:root body h4, html:root body h4 a, html:root body h5, html:root body h5 a { font-size: 16px !important; line-height: 1.4 !important; }
html:root body h6, html:root body h6 a { font-size: 16px !important; line-height: 1.4 !important; font-family: var(--erw-font-body) !important; }
@media (min-width: 640px) {
    html:root body h1, html:root body h1 a { font-size: 30px !important; line-height: 1.2 !important; }
    html:root body h2, html:root body h2 a { font-size: 24px !important; }
}

html:root body :is(small, .small) { font-size: 14px; }

/* links: navy, underlined inside running text (WCAG 1.4.1); visited job titles in the family visited purple */
html:root body a { color: var(--erw-navy); text-underline-offset: 2px; }
html:root body a:hover { color: var(--erw-navy); text-decoration: underline; }   /* #142850 is a surface only (T3) */
html:root body :is(.main-section, main) :is(p, li, td, dd) a,
html:root body :where(.hiring-holder, .site-text-page, .rich-editor-text, .massage-notfound, .cs-blog-detail .cs-post-content, .additional-details-list) a:not(.btn) { text-decoration: underline; }
html:root body .jobs-listing .cs-post-title a { color: var(--erw-ink) !important; text-decoration: none; }
html:root body .jobs-listing .cs-post-title a:hover { color: var(--erw-navy) !important; text-decoration: underline; }
html:root body .jobs-listing .cs-post-title a:visited { color: var(--erw-visited) !important; }

/* greys below #5b6576 fail contrast (DES1-2): lift the legacy ones still rendered */
html:root body :is(.text-muted, .post-options, .post-options span, .author-name, .cs-location, .cs-location a, .help-block, figcaption, .cs-blog .post-option, .cs-blog .post-option a) { color: var(--erw-muted) !important; }
html:root body ::placeholder { color: var(--erw-muted); opacity: 1; }
html:root body hr { border-color: var(--erw-line); }

/* minimum text size 12px (SDESR-ADD-3) on the legacy pieces that go smaller */
html:root body :is(.cs-blog .cs-categories a, .cs-blog-detail .cs-categories a, .post-options, .post-options span, .author-name, .cs-location, .cs-copyright, .footer-links, .pagination > li > a, label, .search-input label) { font-size: max(12px, 1em); }
html:root body.wp-jobhunt :is(.cs-categories a, .cs-blog .cs-categories a) { font-size: 12px !important; text-transform: none; }

/* ---- focus (T1): navy ring on light surfaces, white on navy surfaces; 3px with 2px offset ---- */
html:root body :focus-visible { outline: 3px solid var(--erw-focus); outline-offset: 2px; }
html:root body :is(.erw-band, .jx-band, .cs-subheader, .main-search, .cs-page-sec-682013, .cs-page-sec-889363, .cs-page-sec-404176, .contact-us-hero-image, .blog-hero-image, .fx) :focus-visible { outline-color: var(--erw-focus-on-dark); }
html:root body .main-search.cs-jobsearch-modern :focus-visible { outline-color: var(--erw-focus); }   /* home search sits in a white card */
main:focus { outline: none; }

/* ---- skip link (UX-3) ---- */
.skip-link { position: absolute; left: 12px; top: -80px; z-index: 2000; background: #fff; color: var(--erw-navy) !important; font: 600 16px/1 var(--erw-font-body); padding: 14px 18px; border-radius: var(--erw-r-sm); box-shadow: var(--erw-shadow); text-decoration: underline; }
.skip-link:focus, .skip-link:focus-visible { top: 12px; outline: 3px solid var(--erw-focus); outline-offset: 2px; }
.erw-sr, .jx-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: -1px; padding: 0; border: 0; }

/* ---- legacy icon font is gone (removed from legacy-theme.min.css); never draw tofu boxes for its glyphs ---- */
html:root body [class^="icon-"]::before, html:root body [class*=" icon-"]::before { content: none !important; }
html:root body.wp-jobhunt .search-input i { display: none; }

/* ---- page bands: every legacy hero/photo band becomes the flat #142850 band (T3); text on it #fff / #dce3f0 ---- */
html:root body :is(.cs-page-sec-682013, .cs-page-sec-889363, .contact-us-hero-image, .blog-hero-image, .sub-banner, .cs-page-sec-404176) { background: var(--erw-band) !important; background-image: none !important; border: 0 !important; }
html:root body .cs-subheader { background: var(--erw-band) !important; background-image: none !important; padding: 22px 0 24px !important; min-height: 0 !important; }
html:root body :is(.cs-subheader, .cs-page-sec-889363, .cs-page-sec-682013, .contact-us-hero-image, .blog-hero-image, .cs-page-sec-404176) :is(h1, h2, h3, h1 a, h2 a, h3 a) { color: #fff !important; }
html:root body :is(.cs-subheader, .cs-page-sec-889363, .cs-page-sec-682013, .contact-us-hero-image, .blog-hero-image, .cs-page-sec-404176) :is(p, label, span, li) { color: var(--erw-band-muted) !important; }
html:root body :is(.cs-subheader, .cs-page-sec-889363, .contact-us-hero-image, .blog-hero-image, .cs-page-sec-404176) a { color: #fff !important; text-decoration: underline; }
html:root body .cs-page-sec-889363 { padding: 22px 0 24px !important; margin-bottom: 24px !important; }
@media (min-width: 768px) { html:root body .cs-page-sec-889363, html:root body .cs-subheader { padding: 34px 0 30px !important; } }
html:root body .cs-page-sec-682013 { padding: 32px 0 24px !important; margin-bottom: 0 !important; }
html:root body .cs-page-sec-682013 .cs-heading h1 { margin: 0 0 12px !important; text-shadow: none !important; }
html:root body.page-template-page-home .header-section .cs-heading h1 { font: 600 22px/1.3 var(--erw-font-head) !important; letter-spacing: -.005em !important; text-transform: none !important; }
@media (min-width: 640px) { html:root body.page-template-page-home .header-section .cs-heading h1 { font-size: 30px !important; line-height: 1.2 !important; } }
html:root body .cs-page-sec-682013 .cs-heading p { font-size: 18px !important; line-height: 1.55 !important; color: var(--erw-band-muted) !important; }
html:root body .contact-us-hero-image { min-height: 0 !important; padding: 34px 0 30px; margin-bottom: 32px !important; }
html:root body .contact-us-hero-image .contact-page-title { position: static !important; }
html:root body .blog-hero-image { min-height: 0 !important; padding: 34px 0 30px; }
html:root body .cs-page-sec-404176 { padding: 28px 0 !important; }
html:root body .cs-page-sec-404176 .spatialism-sec a { color: #fff !important; }
html:root body .cs-page-sec-404176 .spatialism-sec li { padding: 0 !important; }
html:root body .cs-page-sec-404176 .spatialism-sec a { display: flex; align-items: center; min-height: 44px; text-decoration: underline; text-decoration-color: rgba(255,255,255,.45); }

/* search fields on the band (T2: 46px tall, 16px text, #7d8799 line, labels/helper text outside the field) */
html:root body.wp-jobhunt .main-search .search-input input[type="text"],
html:root body.wp-jobhunt .main-search input[type="text"],
html:root body.wp-jobhunt .comment-form :is(input[type="text"], input[type="email"], textarea),
html:root body .erw-input {
    height: 46px; min-height: 46px; font: 400 16px/1.3 var(--erw-font-body) !important; color: var(--erw-ink) !important; background: #fff !important;
    border: 1px solid var(--erw-input-line) !important; border-radius: var(--erw-r-sm) !important; padding: 0 14px !important; box-shadow: none !important; width: 100%;
}
html:root body.wp-jobhunt .comment-form textarea { height: auto; min-height: 160px; padding: 12px 14px !important; }
html:root body :is(input, select, textarea):focus { border-color: var(--erw-navy) !important; }
html:root body .main-search .search-input label { display: block; font-size: 13px !important; line-height: 1.45 !important; margin: 6px 0 0 !important; font-weight: 400; color: var(--erw-band-muted) !important; }
html:root body .main-search .search-input, html:root body .main-search .select-location { margin-bottom: 12px !important; }
/* submit placed directly on the band = reverse primary (T4): white, navy text */
html:root body.wp-jobhunt .main-search .search-btn input[type="submit"] {
    min-height: 46px; height: 46px; border-radius: var(--erw-r-sm) !important; background: #fff !important; color: var(--erw-navy) !important;
    font: 700 16px/1 var(--erw-font-body) !important; border: 0 !important; cursor: pointer; text-transform: none !important; letter-spacing: 0 !important;
}
html:root body.wp-jobhunt .main-search .search-btn input[type="submit"]:hover { background: var(--erw-soft) !important; }
/* the home search is a white card on the band (T4): navy primary inside the card */
html:root body .main-search.cs-jobsearch-modern { background: #fff !important; border-radius: var(--erw-r); padding: 20px 20px 8px; box-shadow: var(--erw-shadow); margin-bottom: 24px; }
html:root body .main-search.cs-jobsearch-modern :is(h2, h2 a) { color: var(--erw-head) !important; font-size: 20px !important; margin: 0 0 12px !important; }
html:root body .main-search.cs-jobsearch-modern :is(p, label, span) { color: var(--erw-muted) !important; }
html:root body.wp-jobhunt .main-search.cs-jobsearch-modern .search-btn input[type="submit"] { background: var(--erw-navy) !important; color: #fff !important; }
html:root body.wp-jobhunt .main-search.cs-jobsearch-modern .search-btn input[type="submit"]:hover { background: var(--erw-brand-dk) !important; }

/* ---- buttons: primary navy / white text (10.94:1), hover #142850; radius 8; 44px tall ---- */
html:root body :is(.cs-bgcolor, .btn-primary, .acc-submit, .comment-form input[type="submit"]) {
    background: var(--erw-navy) !important; color: #fff !important; border: 0 !important; border-radius: var(--erw-r-sm) !important; min-height: 44px;
    font: 600 16px/1.2 var(--erw-font-body) !important; text-transform: none !important; letter-spacing: 0 !important; padding: 11px 20px; cursor: pointer;
}
html:root body :is(.cs-bgcolor, .btn-primary, .acc-submit, .comment-form input[type="submit"]):hover { background: var(--erw-brand-dk) !important; }

/* ---- job list (legacy markup until Batch 6): ink titles, slate meta, navy outline action (DES1R-ADD-1) ---- */
html:root body.wp-jobhunt .jobs-listing .jobs-content h4, html:root body.wp-jobhunt .jobs-listing .jobs-content h4 a {
    font: 600 17px/1.35 var(--erw-font-head) !important; letter-spacing: -.005em !important; text-transform: none !important; }   /* card title: Source Serif 600 17px (.erw-card-t, R2 DES1-10 note) */
html:root body.wp-jobhunt .jobs-listing .JobLinkApply {
    display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--erw-navy) !important; border-radius: var(--erw-r-pill) !important;
    color: var(--erw-navy) !important; background: #fff !important; font: 600 15px/42px var(--erw-font-body) !important; text-transform: none !important; letter-spacing: 0 !important; text-decoration: none; height: 44px;
}
html:root body.wp-jobhunt .jobs-listing .JobLinkApply:hover { background: var(--erw-soft) !important; }
html:root body.wp-jobhunt .jobs-listing .additional-details-list { margin-left: 0 !important; padding-left: 0; list-style: none; }
html:root body.wp-jobhunt .jobs-listing .additional-details-list a { color: var(--erw-navy) !important; font-weight: 400; text-transform: capitalize; }
html:root body.wp-jobhunt .filter-heading h5 { font-size: 20px !important; }
html:root body.wp-jobhunt .filter-heading .result-count { color: var(--erw-ink) !important; }
html:root body.wp-jobhunt .massage-notfound { background: #fff; border: 1px solid var(--erw-line); border-radius: var(--erw-r); padding: 16px 20px; }
html:root body.wp-jobhunt .massage-notfound .massage-title h6 { font: 600 17px/1.4 var(--erw-font-head) !important; margin: 0 !important; color: var(--erw-ink) !important; }
html:root body .pagination > li > a { color: var(--erw-navy); min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
html:root body .pagination > li > a.active, html:root body .pagination > li > a[aria-current] { background: var(--erw-navy) !important; border-color: var(--erw-navy) !important; color: #fff !important; }

/* sidebar boxes (state facts) */
html:root body.wp-jobhunt .cs-listing-filters .searchbox-heading :is(h3, h5) { font-size: 16px !important; text-transform: none !important; letter-spacing: -.005em !important; }
html:root body.wp-jobhunt .cs-job-posted { border: 1px solid var(--erw-line); border-radius: var(--erw-r); margin-bottom: 20px; background: #fff; }
html:root body.wp-jobhunt .cs-job-posted p { font-size: 15px !important; line-height: 1.5 !important; }

/* ---- home: state grid and category band (Batch 6 replaces both) ---- */
html:root body .cs-category-list.category-fancy .cs-text a { display: inline-flex; align-items: center; min-height: 44px; color: var(--erw-ink) !important; }
html:root body .cs-category-list.category-fancy .category-holder::before { border-top-color: var(--erw-line) !important; }
html:root body .cs-element-title.center :is(p) { color: var(--erw-muted) !important; }

/* ---- content pages (about, privacy, terms, contact, errors): readable measure ---- */
html:root body .site-text-page, html:root body .cs-page-sec-796675 > .container > .row > .col-lg-9 { max-width: 72ch; }
/* legacy .wp-jobhunt .container is 100% wide: align page content with the 1200px header and footer */
html:root body main .container { max-width: 1200px; margin-left: auto; margin-right: auto; }
html:root body .main-section ul li { line-height: 1.6; }
html:root body .contact-info-title :is(h2) { font-size: 20px !important; }
html:root body .comment-form label { display: block; font: 600 15px/1.4 var(--erw-font-body) !important; color: var(--erw-ink) !important; margin: 0 0 6px; }
html:root body .comment-form .input-filed-contact { margin-bottom: 16px; }
html:root body .comment-form .input-filed-contact i { display: none; }
html:root body .jx-form-status { margin-top: 12px; padding: 12px 14px; border-radius: var(--erw-r-sm); border: 1px solid var(--erw-line); background: #fff; color: var(--erw-ink); }
html:root body .jx-form-status:empty { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: -1px; padding: 0; border: 0; }
html:root body .jx-form-status:is(.is-error, .is-success) { border: 1px solid var(--erw-line); border-left: 4px solid var(--erw-navy); color: var(--erw-ink); background: #fff; }
html:root body .jx-form-status.is-error { background: var(--erw-soft); }

/* ---- layout helpers ---- */
main { display: block; }
html:root body img { max-width: 100%; height: auto; }
html:root body .wrapper { overflow-x: clip; }

/* =====================================================================================================
   Site header (.hx-) - adapted from the Hospitals _SiteHeader (Oct 31, 2026) for the Jobs nav (UX-13 Round-1):
   icon.svg + live-text wordmark (T5), "Jobs by state", "Jobs by field", "Search jobs" button.
   Phones/tablets (<1024px): round 44px menu button -> full-screen panel (UXR-ADD-2: aria-expanded, focus moves in,
   focus trap, Esc closes and returns focus, page behind is inert). Static header (never sticky: no fight with anchor ads).
   ===================================================================================================== */
.hx { background: #fff; border-bottom: 1px solid var(--erw-line); position: relative; z-index: 1000; font-family: var(--erw-font-body); }
.hx *, .hx *::before, .hx *::after { box-sizing: border-box; }
.hx ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.hx li { list-style: none !important; margin: 0 !important; padding: 0 !important; float: none !important; background: none !important; line-height: 1.3 !important; }
.hx li::before { content: none !important; }
.hx a { text-decoration: none !important; }
.hx-bar { max-width: 1200px; margin: 0 auto; padding: 0 16px; min-height: 64px; display: flex; align-items: center; gap: 12px; }
.hx-logo { display: inline-flex; align-items: center; gap: 8px; flex: 0 1 auto; min-width: 0; padding: 8px 0; }
.hx-mark { display: block; width: 40px; height: 40px; flex: 0 0 auto; }
.hx-word { font: 600 23px/1 var(--erw-font-head); color: var(--erw-muted); letter-spacing: -.005em; white-space: nowrap; }
.hx-word b { font-weight: 700; color: var(--erw-navy); }
.hx-nav { flex: 1 1 auto; }
.hx-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border-radius: 6px; color: var(--erw-ink) !important; font: 600 15px/1 var(--erw-font-body); }
.hx-links a:hover { background: var(--erw-soft); color: var(--erw-navy) !important; }
.hx-links a:is([aria-current="page"], .is-here) { color: var(--erw-navy) !important; box-shadow: inset 0 -3px 0 var(--erw-navy); border-radius: 6px 6px 0 0; }
.hx-cta { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: var(--erw-r-sm); background: var(--erw-navy); color: #fff !important; font: 700 15px/1 var(--erw-font-body); white-space: nowrap; flex: 0 0 auto; }
.hx-cta:hover { background: var(--erw-brand-dk); color: #fff !important; }
.hx-cta svg, .hx-foot-cta svg { width: 18px; height: 18px; flex: 0 0 auto; }
.hx-cta-s { display: none; }
.hx-menu, .hx-foot { display: none; }
.hx :focus-visible { outline: 3px solid var(--erw-focus) !important; outline-offset: 2px; }
.hx-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

@media (min-width: 1024px) {
    .hx-nav { display: flex; justify-content: flex-end; }
    .hx-links { display: flex; gap: 4px; }
}
@media (max-width: 1023px) {
    .hx-bar { min-height: 60px; gap: 10px; }
    .hx-cta { margin-left: auto; padding: 0 14px; border-radius: var(--erw-r-pill); }
    .hx-cta-l { display: none; }
    .hx-cta-s { display: inline; }
    .hx-menu { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex: 0 0 44px; padding: 0; background: #fff; border: 1.5px solid var(--erw-input-line); border-radius: 50%; color: var(--erw-ink); cursor: pointer; }
    .hx-menu[aria-expanded="true"] { border-color: var(--erw-navy); background: var(--erw-soft); color: var(--erw-navy); }
    .hx-burger, .hx-burger::before, .hx-burger::after { display: block; width: 18px; height: 2px; background: currentColor; border-radius: 2px; position: relative; transition: transform var(--erw-dur) var(--erw-ease), background var(--erw-dur) var(--erw-ease); }
    .hx-burger::before, .hx-burger::after { content: ""; position: absolute; left: 0; }
    .hx-burger::before { top: -6px; } .hx-burger::after { top: 6px; }
    .hx-menu[aria-expanded="true"] .hx-burger { background: transparent; }
    .hx-menu[aria-expanded="true"] .hx-burger::before { transform: translateY(6px) rotate(45deg); }
    .hx-menu[aria-expanded="true"] .hx-burger::after { transform: translateY(-6px) rotate(-45deg); }
    /* full-screen panel: header pins to the top, the panel fills the rest and scrolls inside itself (200% zoom) */
    .hx.is-menu-open { position: fixed; top: 0; left: 0; right: 0; }
    .hx-nav { display: none; position: fixed; top: 60px; left: 0; right: 0; bottom: 0; background: #fff; border-top: 1px solid var(--erw-line); overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; padding: 8px 20px calc(20px + env(safe-area-inset-bottom)); flex-direction: column; }
    .hx.is-menu-open .hx-nav { display: flex; }
    .hx-links li { border-bottom: 1px solid var(--erw-line2) !important; }
    .hx-links a { display: flex; width: 100%; min-height: 60px; padding: 0 2px; border-radius: 0; font: 600 19px/1.2 var(--erw-font-body); }
    .hx-links a:hover { background: none; }
    .hx-links a:is([aria-current="page"], .is-here) { box-shadow: inset 4px 0 0 var(--erw-navy); padding-left: 14px; border-radius: 0; }
    .hx-foot { display: block; margin-top: auto; padding-top: 24px; }
    .hx-foot-cta { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; border-radius: var(--erw-r-pill); background: var(--erw-navy); color: #fff !important; font: 700 16px/1 var(--erw-font-body); }
    .hx-foot-cta:hover { background: var(--erw-brand-dk); }
    html.hx-lock, html.hx-lock body { overflow: hidden !important; }
    .hx-logo { overflow: hidden; }
}
@media (prefers-reduced-motion: no-preference) and (max-width: 1023px) {
    .hx.is-menu-open .hx-nav { animation: hxIn var(--erw-dur) var(--erw-ease); }
    @keyframes hxIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
}
/* small phones: icon 28px (24px at <=360), wordmark scales with the screen so it never runs under "Search" */
@media (max-width: 480px) {
    .hx-bar { padding: 0 12px; gap: 8px; }
    .hx-cta { padding: 0 12px; }
    .hx-logo { gap: 6px; }
    .hx-mark { width: 28px; height: 28px; }
    .hx-word { font-size: clamp(12px, calc((100vw - 200px) / 9.5), 22px); }
}
@media (max-width: 360px) { .hx-mark { width: 24px; height: 24px; } .hx-cta svg { display: none; } }

/* =====================================================================================================
   Site footer (.fx-) on #142850 (T3/T9): reverse icon + live text, About & data sources / Privacy / Terms / Contact.
   No sister-site links (L8). id="site-footer" (legacy CSS has !important rules on footer#footer).
   ===================================================================================================== */
.fx { background: var(--erw-band); color: var(--erw-band-muted); font: 400 15px/1.6 var(--erw-font-body); margin: 0; text-align: left; }
.fx *, .fx *::before, .fx *::after { box-sizing: border-box; }
.fx ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.fx li { list-style: none !important; float: none !important; margin: 0 !important; padding: 0 !important; background: none !important; }
.fx li::before { content: none !important; }
.fx a, .fx a:visited { color: var(--erw-band-muted) !important; }
.fx a:hover { color: #fff !important; }
.fx :focus-visible { outline: 3px solid #fff !important; outline-offset: 2px; }
.fx-in { max-width: 1200px; margin: 0 auto; padding: 32px 16px 24px; }
.fx-top { display: grid; gap: 10px; padding-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,.14); }
.fx-brand { display: inline-flex !important; align-items: center; gap: 8px; text-decoration: none !important; justify-self: start; }
.fx-mark { display: block; width: 34px; height: 34px; flex: 0 0 auto; }
.fx-word { font: 600 20px/1 var(--erw-font-head); color: var(--erw-band-muted); letter-spacing: -.005em; white-space: nowrap; }
.fx-word b { font-weight: 700; color: #fff; }
html:root body .fx p { margin: 0 !important; font: 400 15px/1.6 var(--erw-font-body) !important; color: var(--erw-band-muted) !important; }
.fx-links { display: flex; flex-wrap: wrap; gap: 0 24px; padding: 12px 0 !important; }
.fx-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 15px; text-decoration: underline !important; text-decoration-color: rgba(220,227,240,.45) !important; text-underline-offset: 3px; }
html:root body .fx p.fx-copy { font-size: 13px !important; line-height: 1.5 !important; color: var(--erw-band-soft) !important; }
@media (min-width: 768px) {
    .fx-top { grid-template-columns: auto 1fr; align-items: center; gap: 24px; }
    .fx-links a { min-height: 32px; }
}

/* legacy uppercase on small meta links (location, details) */
html:root body.wp-jobhunt .jobs-listing :is(.cs-location a, .additional-details-list a) { text-transform: none !important; letter-spacing: 0 !important; }
html:root body.wp-jobhunt .jobs-listing .cs-location a { font-size: 14px !important; }
html:root body .cs-page-sec-404176 ul.spatialism-sec li, html:root body .cs-page-sec-404176 ul.spatialism-sec li:hover { background: transparent !important; border-color: rgba(255,255,255,.14) !important; }
html:root body .cs-page-sec-404176 ul.spatialism-sec li a, html:root body .cs-page-sec-404176 ul.spatialism-sec li:hover a, html:root body .cs-page-sec-404176 ul.spatialism-sec li a::after { color: #fff !important; background: transparent !important; font-size: 16px !important; padding: 0 16px !important; }
html:root body .cs-category-list.category-fancy .cs-text a, html:root body .cs-category-list.category-fancy .cs-text strong { text-transform: none !important; letter-spacing: 0 !important; font-size: 15px !important; }
/* The legacy grid is inline-block with margin-right:-4px to cancel the space between columns. That space was sized
   for 13px Montserrat; at 16px Inter it is ~4.5px, so a 9+3 row wrapped. Cancel it in em instead. */
html:root body.wp-jobhunt :is([class*="col-lg"], [class*="col-md"], [class*="col-sm"]) { margin-right: -.3em; }

/* ---- Fix round 1 (Nov 10) ---- */
/* U1: legacy .cs-category-list.category-fancy .cs-text a { outline:none } beats the global ring */
html:root body .cs-category-list.category-fancy a:focus-visible { outline: 3px solid var(--erw-focus) !important; outline-offset: 2px !important; }
html:root body.wp-jobhunt .cs-listing-filters ul li a:focus-visible { outline: 3px solid var(--erw-focus) !important; outline-offset: 2px !important; }
/* U4: full-width stacked columns under 992px must not carry the negative gap margin (it widened them 4px past the viewport) */
@media (max-width: 991.98px) {
    html:root body.wp-jobhunt :is(.cs-content-holder, .hiring-holder, aside[class*="col-"]) { margin-right: 0 !important; }
    html:root body .cs-listing-filters { padding-right: 0 !important; }
}
/* U6: content-page lists keep their bullets inside the gutter; lone recovery links are 44px targets */
html:root body .cs-page-sec-796675 ul:not(.jobs-listing) { padding-left: 1.25em; }
html:root body .cs-page-sec-796675 li > a:only-child { display: inline-flex; align-items: center; min-height: 44px; }
/* U7: short pages: the footer sits on the bottom of the viewport (sticky-footer column), so no white strip shows under it.
   Chosen over html{background:#142850}: that also tints the top overscroll navy above the white header on iOS. */
html:root body .wrapper { display: flex; flex-direction: column; min-height: 100vh; min-height: 100svh; }
html:root body .wrapper > main { flex: 1 0 auto; width: 100%; }
html:root body .wrapper > :is(.hx, .fx) { flex: 0 0 auto; width: 100%; }
/* U3: visible labels above the home search fields */
html:root body .main-search.cs-jobsearch-modern .jx-label { display: block; font: 600 15px/1.4 var(--erw-font-body) !important; color: var(--erw-ink) !important; margin: 0 0 6px !important; }
/* B3: the icomoon font is gone; no legacy pseudo-element may paint a private-use glyph (generator also strips them) */
html:root body [class*="icon-"]::before, html:root body [class*="icon-"]::after,
html:root body ul.spatialism-sec li a::after, html:root body.wp-jobhunt .cs-listing-filters ul li a::after, html:root body.wp-jobhunt .cs-listing-filters ul li a:focus::after { content: none !important; }
/* B4: legacy empty icon circles next to contact lines */
html:root body .contact-info .contact-icon { display: none !important; }
/* U5: full-width sidebar button (was btn-primary-green with inline width) */
html:root body .jx-btn-block { display: flex; width: 100%; align-items: center; justify-content: center; text-align: center; text-decoration: none; white-space: normal; line-height: 1.3; padding: 11px 16px; min-height: 44px; }
html:root body a.btn, html:root body a.btn:hover { text-decoration: none !important; }
