/* ============================================================
   PrimeStaff HR, child theme styles for Betheme 27 + BeBuilder.

   How it hooks in: every section, wrap and element on the redesigned pages has
   classes in BeBuilder's Advanced > Custom > "CSS classes" field (ps-hero, ps-door,
   ps-btn-seeker...). Betheme prints those on the section, the wrap, or the element's
   outer .mcb-column, and the rules below style them.

   Color rule: green = job seekers, cobalt blue = employers.
   Fonts and base text colors come from Betheme Theme Options (Plus Jakarta Sans).
   ============================================================ */
:root {
	--ps-cobalt: #1013BA;
	--ps-cobalt-700: #0B0E8C;
	--ps-cobalt-50: #EEF0FD;
	--ps-green: #13DA20;
	--ps-green-hover: #10BF1C;
	--ps-green-700: #0A7A18;
	--ps-green-50: #E7FAE9;
	--ps-navy: #0B1046;
	--ps-ink: #0E1340;
	--ps-muted: #4B5175;
	--ps-on-dark: #C9CCEA;
	--ps-surface: #F4F6FD;
	--ps-line: #DEE2F3;
	--ps-radius: 20px;
	--ps-shadow: 0 18px 40px -18px rgba(16, 19, 186, 0.28);
	--ps-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
	--ps-gutter: 16px;
}

/* ---------- Motion gate (paired with motion.js) ----------
   Content with a ps-animate-* class starts hidden only once JS is confirmed running;
   motion.js adds .ps-in as each piece plays. Hidden with opacity, not visibility, so
   keyboard and screen-reader users can still reach content that hasn't scrolled into view.
   Don't also set Betheme's own Advanced > Animation on these elements. */
.ps-motion [data-animate]:not([data-animate="hero"]):not([data-animate="count"]):not(.ps-in),
.ps-motion [class*="ps-animate-"]:not(.ps-animate-hero):not(.ps-animate-count):not(.ps-in),
.ps-motion [data-hero-item]:not(.ps-in),
.ps-motion .ps-hero-item:not(.ps-in) {
	opacity: 0;
}

/* ---------- Keyboard focus ----------
   Betheme removes the browser's focus outline. This puts a visible ring on every link and
   button you can Tab to (:focus-visible, so mouse clicks don't show it): cobalt on light
   backgrounds, white on dark ones. Form fields keep their own focus styles further down. */
:root { --ps-focus: var(--ps-cobalt); }
.ps-header-top, .ps-hero, .ps-page-hero, .ps-how, .ps-safety, .ps-tile--tint, .ps-alerts, .ps-footer { --ps-focus: #fff; }
a:focus-visible,
button:focus-visible,
summary:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible,
.nf-form-content input[type="submit"]:focus-visible,
.nf-form-content input[type="button"]:focus-visible {
	outline: 3px solid var(--ps-focus); outline-offset: 3px;
}

/* ============================================================
   Shared section rhythm
   ============================================================ */
.mcb-section.ps-section { padding: 104px 0; }
.ps-section .section_wrapper { align-items: stretch; }
.ps-section .mcb-column-inner { margin: 0 var(--ps-gutter) 20px; }
.ps-section .mcb-wrap-inner > .mcb-column:last-child .mcb-column-inner { margin-bottom: 0; }
.ps-section .column_attr p,
.ps-section .desc p { margin: 0; }

.ps-section h1.title,
.ps-section h2.title,
.ps-section h3.title { font-weight: 800; letter-spacing: -0.025em; line-height: 1.1; color: var(--ps-ink); text-wrap: balance; }
.ps-section h2.title { font-size: clamp(30px, 3.6vw, 44px); }
.ps-section h3.title { font-weight: 700; }
.ps-section .column_attr,
.ps-section .desc { font-size: 17px; line-height: 1.6; color: var(--ps-muted); }

.ps-section-head .mcb-column-inner { margin-bottom: 12px; }
.ps-section-head { margin-bottom: 36px; }

.ps-eyebrow .title {
	font-size: 13px !important;
	line-height: 1.4 !important;
	font-weight: 700 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase;
	color: var(--ps-cobalt) !important;
}

.ps-lede .column_attr { font-size: 18px; max-width: 60ch; }

.ps-text-link {
	display: inline-flex; align-items: center; gap: 8px;
	font-weight: 700; color: var(--ps-cobalt); text-decoration: none;
}
.ps-text-link:hover { text-decoration: underline; text-underline-offset: 4px; }

.ps-section .image_frame { margin: 0; border: 0; background: none; }
.ps-section .image_frame .image_wrapper { border-radius: 0; }

/* ============================================================
   Buttons. Add "ps-btn-seeker" or "ps-btn-employer" to a Button element.
   Hover/press stay CSS transitions (interruptible), per Emil.
   ============================================================ */
.ps-btn-seeker .button,
.ps-btn-employer .button {
	border-radius: 999px !important;
	padding: 16px 26px !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	border: 2px solid transparent !important;
	box-shadow: none !important;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.16s var(--ps-ease-out) !important;
}
.ps-btn-seeker .button { background: var(--ps-green) !important; color: var(--ps-navy) !important; }
.ps-btn-seeker .button:hover { background: var(--ps-green-hover) !important; }
.ps-btn-employer .button { background: var(--ps-cobalt) !important; color: #fff !important; }
.ps-btn-employer .button:hover { background: var(--ps-cobalt-700) !important; }
.ps-btn-seeker .button .button_icon,
.ps-btn-employer .button .button_icon { transition: transform 0.2s var(--ps-ease-out); }
@media (hover: hover) and (pointer: fine) {
	.ps-btn-seeker .button:hover .button_icon,
	.ps-btn-employer .button:hover .button_icon { transform: translateX(3px); }
}
.ps-section .mfn-item-inline.column_button .mcb-column-inner { margin-right: 0; margin-bottom: 12px; }
/* Buttons in a row keep equal bottom spacing, so the last one isn't knocked out of line
   (the general "last item has no bottom margin" rule would otherwise apply to it). */
.ps-section .mcb-wrap-inner > .mcb-column.mfn-item-inline.column_button .mcb-column-inner { margin-bottom: 12px; }
/* Betheme colors button icons separately; match each button's text color. */
.ps-btn-seeker .button .button_icon i,
.ps-btn-seeker .button .button_icon { color: var(--ps-navy) !important; }
.ps-btn-employer .button .button_icon i,
.ps-btn-employer .button .button_icon,
.ps-btn-ghost .button .button_icon i,
.ps-btn-ghost .button .button_icon { color: #fff !important; }
.ps-section .mfn-item-inline.column_button + .mfn-item-inline.column_button .mcb-column-inner { margin-left: 12px; }

a.button:active,
.button:active,
input[type="submit"]:active,
input[type="button"]:active { transform: scale(0.97); }

/* ============================================================
   Hero: full-bleed photo, navy overlay (Shift Ready), Open Door type
   ============================================================ */
.mcb-section.ps-hero { position: relative; overflow: hidden; isolation: isolate; background: var(--ps-navy); padding: 0; }
.ps-hero .section_wrapper { position: static; min-height: min(640px, 82vh); padding: 72px 0; align-items: center; }
.ps-hero .ps-hero-bg-wrap { position: absolute !important; inset: 0; width: auto !important; z-index: 0; margin: 0; }
.ps-hero .ps-hero-bg-wrap .mcb-wrap-inner,
.ps-hero .ps-hero-bg-wrap .mcb-column,
.ps-hero .ps-hero-bg-wrap .mcb-column-inner,
.ps-hero .ps-hero-bg-wrap .image_frame,
.ps-hero .ps-hero-bg-wrap .image_wrapper { width: 100% !important; height: 100%; margin: 0; }
.ps-hero .ps-hero-bg { transform-origin: 70% 40%; }
.ps-hero .ps-hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 68% 30%; opacity: 0.62; }
/* Betheme's .clearfix hides ::after on wraps, so the gradient uses the wrap's own overlay div. */
.ps-hero .ps-hero-bg-wrap .mcb-wrap-background-overlay {
	position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: 1;
	background: linear-gradient(90deg, var(--ps-navy) 16%, rgba(11, 16, 70, 0.6) 58%, rgba(11, 16, 70, 0.12)) !important;
}
.ps-hero .ps-hero-bg-wrap .mcb-column { position: relative; z-index: 1; }
.ps-hero .ps-hero-copy,
.ps-hero .ps-hero-aside { z-index: 1; }
.ps-hero .ps-hero-aside { align-self: flex-end; }
.ps-hero .ps-hero-aside .mcb-wrap-inner { justify-content: flex-end; }

.ps-hero .ps-eyebrow .title { color: var(--ps-green) !important; }
.ps-hero h1.title { font-size: clamp(40px, 5.4vw, 70px); line-height: 1.04; letter-spacing: -0.035em; color: #fff; }
.ps-hl {
	background: linear-gradient(transparent 64%, rgba(19, 218, 32, 0.6) 64%, rgba(19, 218, 32, 0.6) 90%, transparent 90%);
	padding-inline: 2px;
}
.ps-hero .ps-lede .column_attr { font-size: 19px; max-width: 44ch; color: #D5D8F2; }
.ps-hero .ps-lede .mcb-column-inner { margin-bottom: 32px; }
.ps-hero .ps-btn-employer .button { border-color: rgba(255, 255, 255, 0.28) !important; }

.ps-hero-note {
	display: flex; gap: 14px; align-items: center; max-width: 300px; margin-left: auto;
	padding: 16px 20px; border-radius: 16px;
	background: rgba(255, 255, 255, 0.08);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.18);
}
.ps-hero-note > i { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--ps-cobalt); color: #fff; font-size: 18px; }
.ps-hero-note small { display: block; color: var(--ps-on-dark); font-size: 13px; line-height: 1.3; }
.ps-hero .ps-hero-note a { font-weight: 700; color: #fff !important; text-decoration: none; font-size: 17px; font-variant-numeric: tabular-nums; }

/* ============================================================
   Members strip
   ============================================================ */
.mcb-section.ps-members { padding: 28px 0; border-bottom: 1px solid var(--ps-line); }
.ps-members .section_wrapper { align-items: center; }
.ps-members .column_attr { font-size: 15px; font-weight: 500; }
.ps-logos { display: flex; gap: 28px; align-items: center; justify-content: flex-end; list-style: none; margin: 0; padding: 0; }
.ps-logos li { margin: 0; }
.ps-logos img { height: 56px; width: auto; border-radius: 6px; }
.ps-logos .ps-logo-css { height: 44px; filter: brightness(0); opacity: 0.7; }

/* ============================================================
   Two paths: job seekers / employers
   ============================================================ */
.ps-door .mcb-wrap-inner {
	flex-direction: column; flex-wrap: nowrap; height: 100%;
	margin: 0 var(--ps-gutter); width: auto;
	background: var(--ps-surface); border-radius: var(--ps-radius); overflow: hidden;
	transition: transform 0.3s var(--ps-ease-out), box-shadow 0.3s var(--ps-ease-out);
}
@media (hover: hover) and (pointer: fine) {
	.ps-door .mcb-wrap-inner:hover { transform: translateY(-4px); box-shadow: var(--ps-shadow); }
}
.ps-door .mcb-column { width: 100%; }
.ps-door .mcb-column-inner { margin: 0 32px 16px; }
.ps-door .ps-door-photo .mcb-column-inner { margin: 0 0 28px; }
.ps-door .ps-door-photo img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; }
.ps-door h3.title { font-size: 28px; }
.ps-door .ps-door-cta { margin-top: auto; }
.ps-door .ps-door-cta .mcb-column-inner { margin: 8px 32px 32px !important; }
.ps-tag { display: inline-block; font-size: 13px; font-weight: 700; padding: 6px 12px; border-radius: 999px; }
.ps-door--seeker .ps-tag { background: var(--ps-green-50); color: var(--ps-green-700); }
.ps-door--employer .ps-tag { background: var(--ps-cobalt-50); color: var(--ps-cobalt); }

.ps-checks { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 10px; }
.ps-checks li { display: flex; gap: 10px; align-items: flex-start; margin: 0; color: var(--ps-ink); }
.ps-checks i { font-size: 18px; margin-top: 4px; }
.ps-door--seeker .ps-checks i { color: var(--ps-green-700); }
.ps-door--employer .ps-checks i { color: var(--ps-cobalt); }

/* ============================================================
   Industries grid
   ============================================================ */
.mcb-section.ps-industries { background: var(--ps-surface); }
.ps-industries .section_wrapper {
	display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 20px;
	padding: 0 var(--ps-gutter); box-sizing: border-box;
}
.ps-industries .mcb-wrap { width: auto !important; margin: 0; }
.ps-industries .ps-section-head,
.ps-industries .ps-section-foot { grid-column: 1 / -1; }
.ps-industries .ps-section-head { margin-bottom: 28px; }
.ps-industries .ps-section-head .mcb-column-inner,
.ps-industries .ps-section-foot .mcb-column-inner { margin-left: 0; margin-right: 0; }
.ps-industries .ps-section-foot { margin-top: 12px; }

.ps-tile .mcb-wrap-inner { flex-direction: column; flex-wrap: nowrap; height: 100%; background: #fff; border-radius: var(--ps-radius); overflow: hidden; }
.ps-tile .mcb-column { width: 100%; }
.ps-tile .mcb-column-inner { margin: 0 26px 8px; }
/* Photo fills whatever height the text leaves over; text keeps its natural height. */
.ps-tile .ps-tile-photo { flex: 1 1 auto; position: relative; min-height: 180px; }
.ps-tile .ps-tile-photo .mcb-column-inner { position: absolute; inset: 0; margin: 0; }
.ps-tile .ps-tile-photo .image_frame,
.ps-tile .ps-tile-photo .image_wrapper { width: 100%; height: 100%; }
.ps-tile .ps-tile-photo img { width: 100%; height: 100%; object-fit: cover; }
.ps-tile .ps-tile-photo + .mcb-column .mcb-column-inner { margin-top: 24px; }
.ps-section .ps-tile .mcb-wrap-inner > .mcb-column:last-child .mcb-column-inner { margin-bottom: 26px; }
.ps-tile h3.title { font-size: 22px; }
.ps-tile .column_attr { font-size: 15.5px; }

.ps-tile--big { grid-row: span 2; }
.ps-tile--big .ps-tile-photo { min-height: 300px; }
.ps-tile--wide { grid-column: span 2; }
.ps-tile--wide .mcb-wrap-inner { display: grid; grid-template-columns: 42% 1fr; align-content: center; }
.ps-tile--wide .ps-tile-photo { grid-row: 1 / span 2; min-height: 220px; }
.ps-tile--wide .mcb-column:not(.ps-tile-photo) { align-self: end; }
.ps-tile--wide .mcb-column:last-child { align-self: start; }
.ps-tile--wide .ps-tile-photo + .mcb-column .mcb-column-inner { margin-top: 0; }
.ps-tile--wide .mcb-column:not(.ps-tile-photo) .mcb-column-inner { margin-left: 26px; margin-right: 26px; }
.ps-tile--tint .mcb-wrap-inner { background: var(--ps-cobalt); }
.ps-tile--tint h3.title { color: #fff; }
.ps-tile--tint .column_attr { color: #D8DAF7; }

/* ============================================================
   Why us
   ============================================================ */
.ps-why .section_wrapper { align-items: flex-start; }
.ps-why-intro { padding-right: 40px; box-sizing: border-box; }
.ps-big-number {
	font-weight: 800; font-size: clamp(88px, 11vw, 150px); line-height: 0.9; letter-spacing: -0.04em;
	color: var(--ps-cobalt); margin-top: 24px; font-variant-numeric: tabular-nums;
}
.ps-section .ps-big-label { font-weight: 600; font-size: 18px; color: var(--ps-ink); margin-top: 10px; }
.ps-reasons { display: grid; grid-template-columns: 1fr 1fr; gap: 40px 36px; }
.ps-reason > i {
	display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 16px;
	background: var(--ps-cobalt-50); color: var(--ps-cobalt); font-size: 24px; margin-bottom: 16px;
}
.ps-reason h3 { font-size: 20px; line-height: 1.25; font-weight: 700; letter-spacing: -0.01em; margin: 0 0 6px; color: var(--ps-ink); }
.ps-reason p { font-size: 16px; }

/* ============================================================
   How it works
   ============================================================ */
.mcb-section.ps-how { background: var(--ps-cobalt); }
.ps-how h2.title { color: #fff; }
.ps-how .ps-lede .column_attr { color: #DADCF9; }
.ps-steps { list-style: none; padding: 0; margin: 36px 0 28px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; position: relative; }
.ps-steps::before { content: ""; position: absolute; top: 28px; left: 28px; right: 28px; height: 2px; background: rgba(255, 255, 255, 0.22); }
.ps-steps li { position: relative; margin: 0; }
.ps-steps li > i {
	position: relative; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%;
	background: #fff; color: var(--ps-cobalt); font-size: 20px; margin-bottom: 22px; box-shadow: 0 0 0 8px var(--ps-cobalt);
}
.ps-steps h3 { font-size: 20px; line-height: 1.25; font-weight: 700; margin: 0 0 8px; color: #fff; }
.ps-steps p { color: #DADCF9; font-size: 16px; }

/* ============================================================
   FAQ
   ============================================================ */
.ps-faq .section_wrapper { align-items: flex-start; }
/* Betheme styles every <dl> as a two-column table; reset to a stacked list. */
.ps-faq-dl { margin: 0; border: 0; }
.ps-faq-dl > dt,
.ps-faq-dl > dd { float: none; width: auto; display: block; border: 0; background: none; text-align: left; }
.ps-faq-dl > dt { font-weight: 700; font-size: 19px; line-height: 1.35; color: var(--ps-ink); margin: 0; padding: 24px 0 0; }
.ps-faq-dl > dt:first-child { padding-top: 0; }
.ps-faq-dl > dd { margin: 6px 0 0; padding: 0 0 24px; border-bottom: 1px solid var(--ps-line); }
.ps-faq-dl dd:last-child { border-bottom: 0; padding-bottom: 0; }
.ps-faq-intro .ps-text-link { margin-top: 12px; }

/* ============================================================
   Where we work + job alerts (Ninja Forms #2)
   ============================================================ */
.mcb-section.ps-visit { background: var(--ps-surface); }
.ps-regions { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0 32px; }
.ps-regions span { padding: 10px 18px; border-radius: 999px; background: #fff; border: 1px solid var(--ps-line); font-weight: 600; font-size: 15px; color: var(--ps-ink); }
.ps-contact { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.ps-contact li { display: flex; gap: 14px; margin: 0; }
.ps-contact i { font-size: 20px; color: var(--ps-cobalt); margin-top: 4px; width: 22px; text-align: center; }
.ps-contact small { display: block; font-size: 14px; }
.ps-contact a,
.ps-contact address { color: var(--ps-ink); font-weight: 600; text-decoration: none; font-style: normal; font-variant-numeric: tabular-nums; }

.ps-alerts .mcb-wrap-inner {
	margin: 0 var(--ps-gutter); width: auto; padding: 40px 24px; box-sizing: border-box;
	background: var(--ps-navy); border-radius: var(--ps-radius); align-content: center;
}
.ps-alerts h3.title { color: #fff; font-size: 28px; }
.ps-alerts .column_attr { color: var(--ps-on-dark); }
.ps-alerts .nf-form-content { padding: 0; max-width: none; }
.ps-alerts .nf-form-content label,
.ps-alerts .nf-form-content .nf-field-label { color: #fff; font-weight: 600; }
/* "Fields marked with an * are required": Betheme's Custom CSS hides every asterisk, which
   leaves the note reading "marked with an are required". A three-field signup doesn't need it. */
.ps-alerts .nf-form-fields-required { display: none; }
/* Ninja Forms prints its own label color inline (.nf-form-content .nf-field-label label),
   which ties with the rule above and loads later, so the labels need one more class to win. */
.ps-alerts .nf-form-content .nf-field-label { margin: 0 0 6px; padding: 0; }
.ps-alerts .nf-form-content .nf-field-label label { color: #fff; font-size: 15px; line-height: 1.4; }
.ps-alerts .nf-form-content input { font-family: inherit !important; }
.ps-alerts .nf-form-content input:not([type="checkbox"]):not([type="radio"]),
.ps-alerts .nf-form-content select { width: 100% !important; box-sizing: border-box; }
.ps-alerts .nf-form-content input:not([type="button"]):not([type="submit"]) {
	background: #fff !important; color: var(--ps-ink) !important;
	border: 2px solid transparent !important; border-radius: 12px !important; padding: 14px 16px !important;
}
.ps-alerts .nf-form-content input:not([type="button"]):not([type="submit"]):focus,
.ps-alerts .nf-form-content select:focus { border-color: var(--ps-green) !important; outline: none; }
.ps-alerts .nf-form-content input[type="button"],
.ps-alerts .nf-form-content input[type="submit"] {
	background: var(--ps-green) !important; color: var(--ps-navy) !important; border: 0 !important;
	border-radius: 999px !important; padding: 14px 26px !important; font-weight: 700 !important; cursor: pointer;
	transition: background-color 0.2s ease, transform 0.16s var(--ps-ease-out);
}
.ps-alerts .nf-form-content input[type="button"]:hover,
.ps-alerts .nf-form-content input[type="submit"]:hover { background: var(--ps-green-hover) !important; }
/* Ninja Forms' "opinionated" styles make the submit button huge, uppercase and fixed-height. */
.ps-alerts .nf-form-content input[type="button"],
.ps-alerts .nf-form-content input[type="submit"],
.ps-alerts .nf-form-content button {
	width: 100% !important; height: auto !important; min-height: 0 !important;
	font-family: inherit !important; font-size: 16px !important; line-height: 1.2 !important;
	text-transform: none !important; letter-spacing: 0 !important;
}
.ps-alerts .nf-form-content .nf-field-container { margin-bottom: 14px; }
.ps-alerts .nf-form-content .submit-container { margin: 6px 0 0; }
.ps-alerts .nf-form-content select,
.ps-alerts .nf-form-content .list-select-wrap .nf-field-element > div {
	background: #fff !important; color: var(--ps-ink) !important; font-family: inherit !important; font-size: 16px !important;
	border: 2px solid transparent !important; border-radius: 12px !important; box-shadow: none !important;
}
.ps-alerts .nf-form-content select { padding: 0 16px !important; }
.ps-alerts .nf-form-content .list-select-wrap div::after { color: var(--ps-ink); }
/* Extra classes to beat Betheme's Custom CSS (.nf-field-container .field-wrap .nf-element::placeholder),
   which colors placeholders like typed text. */
.ps-alerts .nf-form-content .nf-field-container .field-wrap .nf-element::placeholder { color: #6A6F8E; opacity: 1; }
.ps-alerts .nf-error-msg,
.ps-alerts .nf-error .nf-error-msg { color: #FFD0D0; }
.ps-alerts .nf-response-msg { color: #B6F5BC; font-weight: 600; }

/* ============================================================
   Inner pages (shared)
   ============================================================ */
/* Page hero: the homepage hero, shorter. */
.ps-page-hero .section_wrapper { min-height: min(460px, 70vh); padding: 64px 0; }
.ps-page-hero h1.title { font-size: clamp(38px, 4.6vw, 60px); }

/* Outline button for use on dark backgrounds. */
.ps-btn-ghost .button {
	background: transparent !important; color: #fff !important; border: 2px solid rgba(255, 255, 255, 0.4) !important;
	border-radius: 999px !important; padding: 16px 26px !important; font-size: 16px !important; font-weight: 700 !important;
	line-height: 1 !important; box-shadow: none !important;
	transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.16s var(--ps-ease-out) !important;
}
.ps-btn-ghost .button:hover { border-color: #fff !important; background: rgba(255, 255, 255, 0.06) !important; }

/* Tag list ("chips") for long lists of roles. */
.ps-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ps-chips li {
	margin: 0; padding: 8px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--ps-line);
	font-size: 15px; font-weight: 500; line-height: 1.3; color: var(--ps-ink);
}

/* Closing call-to-action band. */
.mcb-section.ps-cta-band { background: var(--ps-surface); }
.ps-cta-band .section_wrapper { align-items: center; }
.ps-cta-actions .mcb-wrap-inner { flex-direction: column; align-items: flex-start; }
.ps-cta-actions .mfn-item-inline.column_button { width: auto !important; }
.ps-cta-contact { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 10px; }
.ps-cta-contact li { display: grid; grid-template-columns: 22px auto; column-gap: 12px; margin: 0; font-size: 15px; }
.ps-cta-contact i { grid-row: span 2; color: var(--ps-cobalt); font-size: 18px; margin-top: 3px; text-align: center; }
.ps-cta-contact span { color: var(--ps-muted); font-size: 14px; }
.ps-cta-contact a { color: var(--ps-ink); font-weight: 700; text-decoration: none; font-variant-numeric: tabular-nums; }

/* ============================================================
   Request Talent
   ============================================================ */
.ps-groups { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ps-group { background: var(--ps-surface); border-radius: var(--ps-radius); padding: 28px; }
.ps-group > i {
	display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 14px;
	background: var(--ps-cobalt-50); color: var(--ps-cobalt); font-size: 20px; margin-bottom: 18px;
}
.ps-group h3 { font-size: 20px; line-height: 1.25; font-weight: 700; letter-spacing: -0.01em; color: var(--ps-ink); margin: 0 0 14px; }
.ps-group .ps-checks { gap: 12px; }
.ps-group .ps-checks li { font-size: 15.5px; line-height: 1.45; }
.ps-group .ps-checks i { color: var(--ps-cobalt); font-size: 16px; margin-top: 3px; }

.mcb-section.ps-industries-list { background: var(--ps-surface); }
.ps-industry { margin-bottom: 20px; }
.ps-industry:last-child { margin-bottom: 0; }
.ps-industry .mcb-wrap-inner {
	display: grid; grid-template-columns: minmax(220px, 34%) 1fr; grid-template-rows: auto auto 1fr; column-gap: 36px; align-items: start; align-content: start;
	margin: 0 var(--ps-gutter); width: auto; padding: 20px; box-sizing: border-box;
	background: #fff; border-radius: var(--ps-radius);
}
.ps-industry .mcb-column { width: 100% !important; }
.ps-industry .mcb-column-inner { margin: 0 0 10px; }
.ps-industry .ps-industry-photo { grid-row: 1 / span 3; }
.ps-industry .ps-industry-photo .mcb-column-inner { margin: 0; }
.ps-industry .ps-industry-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; }
.ps-industry h3.title { font-size: 24px; margin-top: 8px; }
.ps-industry .ps-chips li { background: var(--ps-surface); border-color: transparent; }

.mcb-section.ps-safety { background: var(--ps-navy); }
.ps-safety .section_wrapper { align-items: center; }
.ps-safety h2.title { color: #fff; }
.ps-safety .ps-eyebrow .title { color: var(--ps-green) !important; }
.ps-safety .ps-lede .column_attr { color: var(--ps-on-dark); }
.ps-safety-img img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--ps-radius); }
.ps-safety-list .ps-checks { grid-template-columns: 1fr 1fr; gap: 14px 28px; margin-top: 8px; }
.ps-safety-list .ps-checks li { color: #fff; font-size: 16px; line-height: 1.45; }
.ps-safety-list .ps-checks i { color: var(--ps-green); }

@media (max-width: 959px) {
	.ps-groups { grid-template-columns: 1fr; }
	.ps-industry .mcb-wrap-inner { grid-template-columns: 1fr; }
	.ps-industry .ps-industry-photo { grid-row: auto; }
	.ps-industry .ps-industry-photo img { aspect-ratio: 16 / 9; }
	.ps-safety-img img { aspect-ratio: 16 / 9; }
}
@media (max-width: 767px) {
	.ps-safety-list .ps-checks { grid-template-columns: 1fr; }
	.ps-page-hero .section_wrapper { padding: 48px 0 56px; }
}

/* ============================================================
   Inner pages: variants and page-specific pieces
   ============================================================ */
.mcb-section.ps-page-hero--plain { background: var(--ps-navy); }
.ps-page-hero--plain .section_wrapper { min-height: 0; padding: 72px 0 64px; }

.ps-cta-dual .ps-cta-actions .mcb-wrap-inner { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start; }
.ps-cta-dual .ps-cta-actions .mfn-item-inline.column_button .mcb-column-inner { margin-left: 0 !important; margin-right: 12px; }

/* Light forms (Apply Now, Ninja Forms #3)
   Built against the form's real markup (Ninja Forms 3 + Layouts). Labels sit above fields;
   placeholders are only examples. Errors appear under the field. No uppercase anywhere. */
.mcb-section.ps-apply { background: var(--ps-surface); }
.ps-apply .section_wrapper { align-items: flex-start; }
.ps-apply-form .mcb-wrap-inner {
	margin: 0 var(--ps-gutter); width: auto; padding: 40px 24px 32px; box-sizing: border-box;
	background: #fff; border-radius: var(--ps-radius); box-shadow: var(--ps-shadow);
}
.ps-form-note .column_attr { font-size: 14px; }
.ps-form .nf-form-fields-required { display: none; } /* the page shows its own note */
.ps-form .nf-form-content { padding: 0; max-width: none; }
.ps-form .nf-form-content * { text-transform: none !important; letter-spacing: normal; }
/* Ninja Forms Layouts: .nf-row > <nf-cells> > .nf-cell (floated, inline widths). Lay the row out on
   <nf-cells> itself so every row spans the full form width. */
.ps-form .nf-form-content .nf-row { display: block; margin: 0; }
.ps-form .nf-form-content .nf-row::after { display: none; }
.ps-form .nf-form-content nf-cells { display: flex; gap: 16px; width: 100%; }
.ps-form .nf-form-content .nf-cell { float: none !important; padding: 0 !important; margin: 0 !important; flex: 1 1 0; min-width: 0; width: auto !important; }
/* Phone type needs room for "Choose one". */
.ps-form .nf-form-content .nf-cell:has([data-testid="nf-field-selectphonetype"]) { flex: 0 0 170px; }
.ps-form .nf-form-content .nf-field-container,
.ps-form .nf-form-content .field-wrap,
.ps-form .nf-form-content .nf-field-element { width: 100%; }
.ps-form .nf-form-content .nf-field-container { margin: 0 0 18px; }
.ps-form .nf-form-content .nf-field-container:last-child { margin-bottom: 0; }

/* Subsection titles (the form's HTML fields) */
.ps-form .nf-form-content .html-container { margin: 8px 0 14px; padding-top: 22px; border-top: 1px solid var(--ps-line); }
.ps-form .nf-form-content .nf-row:first-child .html-container { border-top: 0; padding-top: 0; margin-top: 0; }
.ps-form .nf-form-content .html-container .nf-field-element,
.ps-form .nf-form-content .html-container .nf-field-element p { font-size: 17px !important; font-weight: 700; color: var(--ps-ink); margin: 0; line-height: 1.35; } /* beats the inline 26px in the form */
.ps-form .nf-form-content .html-container .nf-field-element br { display: none; }

/* Labels */
.ps-form .nf-form-content .nf-field-label { margin: 0 0 6px; padding: 0; }
.ps-form .nf-form-content .nf-field-label label,
.ps-form .nf-form-content .nf-field-label .nf-label-span { font-size: 15px; font-weight: 600; color: var(--ps-ink); line-height: 1.4; }
/* Required/optional is stated in the labels ("(optional)"), so the asterisk is hidden for consistency. */
.ps-form .nf-form-content .ninja-forms-req-symbol { display: none; }
.ps-form .nf-form-content .nf-field-description { font-size: 14px; color: var(--ps-muted); margin-top: 6px; }

/* Text inputs and selects */
.ps-form .nf-form-content input:not([type="button"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.ps-form .nf-form-content select,
.ps-form .nf-form-content textarea {
	display: block; width: 100% !important; height: 50px; box-sizing: border-box; margin: 0;
	padding: 0 14px !important; font-family: inherit !important; font-size: 16px !important; font-weight: 400;
	color: var(--ps-ink) !important; background-color: #fff !important; box-shadow: none !important;
	border: 1.5px solid #D5DAEC !important; border-radius: 12px !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ps-form .nf-form-content textarea { height: 140px; padding: 12px 14px !important; }
.ps-form .nf-form-content input::placeholder,
.ps-form .nf-form-content textarea::placeholder { color: #8A8FAD; opacity: 1; }
@media (hover: hover) and (pointer: fine) {
	.ps-form .nf-form-content input:not([type="button"]):not([type="submit"]):not([type="checkbox"]):hover,
	.ps-form .nf-form-content select:hover { border-color: #B6BDDB !important; }
}
/* The input selector repeats the base rule's :not() list so it outranks it (and the hover rule). */
.ps-form .nf-form-content input:not([type="button"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]):focus,
.ps-form .nf-form-content select:focus,
.ps-form .nf-form-content textarea:focus {
	outline: none; border-color: var(--ps-cobalt) !important; box-shadow: 0 0 0 4px var(--ps-cobalt-50) !important;
}
/* Our own chevron; hide Ninja Forms' decorative one. */
.ps-form .nf-form-content .list-select-wrap .nf-field-element > div { display: none !important; }
.ps-form .nf-form-content .list-select-wrap .nf-field-element > div::after { display: none; }
.ps-form .nf-form-content select {
	-webkit-appearance: none; appearance: none; padding-right: 40px !important; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%230E1340' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important; background-position: right 16px center !important; background-size: 12px 8px !important;
}

/* Checkbox (terms) */
.ps-form .nf-form-content .checkbox-container { margin-top: 6px; }
.ps-form .nf-form-content .checkbox-container .field-wrap { display: flex; align-items: flex-start; gap: 12px; }
.ps-form .nf-form-content .checkbox-container .nf-field-element { order: 1; width: auto !important; flex: none; margin-top: 1px; }
.ps-form .nf-form-content .checkbox-container .nf-field-label { order: 2; margin: 0; }
.ps-form .nf-form-content .checkbox-container .nf-field-label label { font-weight: 500; }
.ps-form .nf-form-content .checkbox-container .nf-field-label label::after,
.ps-form .nf-form-content .checkbox-container .nf-field-label label::before { display: none !important; }
.ps-form .nf-form-content .checkbox-container .nf-field-element { width: auto; opacity: 1 !important; } /* Ninja Forms fades this wrapper to 0 */
.ps-form .nf-form-content input[type="checkbox"] {
	/* Ninja Forms hides the real checkbox and fakes one with label pseudo-elements; use the real one. */
	opacity: 1 !important; visibility: visible !important; position: static !important; clip: auto !important;
	-webkit-appearance: none; appearance: none; display: grid; place-items: center; margin: 0; cursor: pointer;
	width: 22px !important; height: 22px !important; min-width: 22px; padding: 0 !important;
	border: 1.5px solid #9AA2C6 !important; border-radius: 6px !important; background-color: #fff !important;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}
.ps-form .nf-form-content input[type="checkbox"]:checked {
	background-color: var(--ps-cobalt) !important; border-color: var(--ps-cobalt) !important;
	background: var(--ps-cobalt) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10'%3E%3Cpath d='M1 5l3.5 3.5L11 1.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px 10px no-repeat;
	border-color: var(--ps-cobalt);
}
.ps-form .nf-form-content input[type="checkbox"]:focus-visible { box-shadow: 0 0 0 4px var(--ps-cobalt-50); outline: none; }
.ps-form .nf-form-content .checkbox-container label a { color: var(--ps-cobalt); font-weight: 600; }

/* Submit */
.ps-form .nf-form-content .submit-container { margin-top: 26px; }
.ps-form .nf-form-content input[type="button"],
.ps-form .nf-form-content input[type="submit"],
.ps-form .nf-form-content button {
	width: 100% !important; height: 54px !important; background: var(--ps-green) !important; color: var(--ps-navy) !important;
	border: 0 !important; border-radius: 999px !important; padding: 0 26px !important; box-shadow: none !important;
	font-family: inherit !important; font-size: 16px !important; font-weight: 700 !important; line-height: 1 !important;
	cursor: pointer; transition: background-color 0.2s ease, transform 0.16s var(--ps-ease-out);
}
.ps-form .nf-form-content input[type="button"]:hover,
.ps-form .nf-form-content input[type="submit"]:hover { background: var(--ps-green-hover) !important; }
.ps-form .nf-form-content input[type="button"]:active,
.ps-form .nf-form-content input[type="submit"]:active { transform: scale(0.98); }
.ps-form .nf-form-content input[type="button"]:focus-visible { box-shadow: 0 0 0 4px var(--ps-green-50), 0 0 0 6px var(--ps-green-700) !important; }

/* Errors and success */
.ps-form .nf-error-msg,
.ps-form .nf-error .nf-error-msg { color: #B42318; font-size: 14px; margin-top: 6px; }
.ps-form .nf-error .ninja-forms-field:not([type="checkbox"]),
.ps-form .nf-error select { border-color: #B42318 !important; }
.ps-form .nf-error input[type="checkbox"] { border-color: #B42318; }
.ps-form .nf-error.field-wrap .nf-field-element::after,
.ps-form .nf-pass.field-wrap .nf-field-element::after { display: none; } /* Ninja Forms' check/cross icons */
.ps-form .nf-form-errors .nf-error-msg { margin-top: 16px; }
.ps-form .nf-response-msg { color: var(--ps-green-700); font-weight: 600; font-size: 17px; }

@media (max-width: 479px) {
	.ps-form .nf-form-content nf-cells { flex-direction: column; gap: 0; }
	.ps-form .nf-form-content .nf-cell,
	.ps-form .nf-form-content .nf-cell:has([data-testid="nf-field-selectphonetype"]) { flex: 1 1 auto; }
	.ps-form .nf-form-content .nf-row .nf-cell + .nf-cell .nf-field-container { margin-top: 18px; }
}

.ps-apply-aside .mcb-wrap-inner { padding: 8px 8px 0 16px; box-sizing: border-box; }
.ps-apply-aside h3.title { font-size: 22px; }
.ps-mini-steps { list-style: none; margin: 0 0 24px; padding: 0; display: grid; gap: 18px; }
.ps-mini-steps li { display: flex; gap: 14px; margin: 0; }
.ps-mini-steps li > i {
	flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px;
	background: var(--ps-cobalt-50); color: var(--ps-cobalt); font-size: 16px;
}
.ps-mini-steps strong { display: block; color: var(--ps-ink); font-size: 16px; }
.ps-mini-steps p { margin: 2px 0 0; font-size: 15px; }
.ps-apply-aside .ps-checks i { color: var(--ps-green-700); }
.ps-aside-help { margin-top: 20px !important; font-size: 15px; }
.ps-aside-help a, .ps-faq-help a { color: var(--ps-cobalt); font-weight: 700; text-decoration: none; }

/* About */
.ps-about-story .section_wrapper { align-items: flex-start; }
.ps-about-copy h3.title { font-size: 24px; margin-top: 16px; }
.ps-about-copy .column_attr { font-size: 18px; max-width: 62ch; }
.ps-stats { display: grid; gap: 16px; }
.ps-stat { background: var(--ps-surface); border-radius: var(--ps-radius); padding: 24px 26px; }
.ps-stat-num { display: block; font-weight: 800; font-size: 52px; line-height: 1; letter-spacing: -0.03em; color: var(--ps-cobalt); font-variant-numeric: tabular-nums; }
.ps-stat-label { display: block; margin-top: 8px; font-weight: 600; color: var(--ps-ink); font-size: 16px; }
.mcb-section.ps-creds { background: var(--ps-surface); }
.ps-creds-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ps-cred { background: #fff; border-radius: var(--ps-radius); padding: 24px; }
.ps-cred > i {
	display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 12px;
	background: var(--ps-cobalt-50); color: var(--ps-cobalt); font-size: 18px; margin-bottom: 14px;
}
.ps-cred-issuer { display: block; font-size: 13px; font-weight: 600; letter-spacing: 0.02em; color: var(--ps-muted); margin-bottom: 6px; }
.ps-cred h3 { font-size: 18px; line-height: 1.3; font-weight: 700; color: var(--ps-ink); margin: 0; }
.ps-cred p { font-size: 15px; margin: 8px 0 0; }

/* Contact */
.ps-contact-page .section_wrapper { align-items: stretch; }
.ps-contact-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ps-contact-card { background: var(--ps-surface); border-radius: var(--ps-radius); padding: 24px; }
.ps-contact-card > i {
	display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 12px;
	background: #fff; color: var(--ps-cobalt); font-size: 18px; margin-bottom: 14px;
}
.ps-contact-card h3 { font-size: 15px; font-weight: 600; color: var(--ps-muted); margin: 0 0 6px; }
.ps-contact-card address { font-style: normal; color: var(--ps-ink); font-weight: 600; font-size: 17px; margin-bottom: 12px; }
.ps-contact-big { display: block; color: var(--ps-ink); font-weight: 700; font-size: 20px; text-decoration: none; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.ps-contact-card p { font-size: 14px; margin: 8px 0 0; }
/* "Get directions": assets/js/directions.js points it at Apple Maps on iPhones and iPads. */
.ps-directions { display: flex; flex-wrap: wrap; gap: 10px; }
.ps-directions a {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; box-sizing: border-box;
	border: 1.5px solid var(--ps-line); border-radius: 999px; background: #fff;
	color: var(--ps-cobalt); font-weight: 700; font-size: 15px; text-decoration: none;
}
.ps-directions a:hover { border-color: var(--ps-cobalt); }
.ps-directions i { font-size: 17px; }
/* Address and email are long: full-width cards. Phones sit side by side. */
.ps-contact-card:first-child,
.ps-contact-card:last-child { grid-column: 1 / -1; }
/* A location with an odd number of cards: the one that would sit alone goes full width too. */
.ps-contact-card:nth-child(even):nth-last-child(2) { grid-column: 1 / -1; }
/* More locations = duplicated sections. Close the gap between them to one section's padding. */
.mcb-section.ps-contact-page + .mcb-section.ps-contact-page { padding-top: 0; }
.ps-map .mcb-wrap-inner, .ps-map .mcb-column, .ps-map .mcb-column-inner, .ps-map .desc { height: 100%; }
.ps-map iframe { display: block; width: 100%; height: 100%; min-height: 360px; border: 0; border-radius: var(--ps-radius); }

/* Resource Center */
.ps-resume-card .mcb-wrap-inner {
	margin: 0 var(--ps-gutter); width: auto; padding: 40px 24px; box-sizing: border-box;
	background: var(--ps-green-50); border-radius: var(--ps-radius);
}
.ps-resume-icon, .ps-empty-icon {
	display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 16px;
	background: #fff; color: var(--ps-green-700); font-size: 24px;
}
.ps-faq-help { margin-top: 12px !important; }

/* Events (empty state) */
.ps-empty-icon { color: var(--ps-cobalt); }
.ps-events-empty .section_wrapper { align-items: center; }

/* Legal text */
.ps-legal-text .column_attr { max-width: 75ch; font-size: 16px; line-height: 1.7; color: var(--ps-muted); }
.ps-legal-text .column_attr p { margin: 0 0 14px; }
.ps-legal-text .column_attr h3 { font-size: 18px; line-height: 1.35; font-weight: 700; color: var(--ps-ink); margin: 36px 0 10px; letter-spacing: 0; }
.ps-legal-text .column_attr ul, .ps-legal-text .column_attr ol { margin: 0 0 14px 22px; }
.ps-legal-text .column_attr li { margin-bottom: 6px; }
.ps-legal-text .column_attr a { color: var(--ps-cobalt); word-break: break-word; }

@media (max-width: 959px) {
	.ps-creds-grid { grid-template-columns: 1fr 1fr; }
	.ps-apply-aside .mcb-wrap-inner { padding: 0; }
}
@media (max-width: 767px) {
	.ps-creds-grid, .ps-contact-cards { grid-template-columns: 1fr; }
	.ps-apply-form .mcb-wrap-inner { padding: 28px 8px; }
}

/* ============================================================
   Header template ("PrimeStaff Header")
   ============================================================ */
.mcb-header-section.ps-header .mcb-column-inner { margin: 0; }
.mcb-header-section.ps-header .section_wrapper { max-width: 1220px; margin: 0 auto !important; flex-wrap: nowrap; align-items: center; gap: 24px; }
.mcb-header-section.ps-header .mcb-header-wrap { width: auto !important; flex: 0 0 auto; }
.mcb-header-section.ps-header .mcb-wrap-inner { align-items: center; flex-wrap: nowrap; }

.mcb-header-section.ps-header-top { background: var(--ps-navy) !important; padding: 8px 32px !important; border: 0 !important; }
.ps-header-top .ps-hdr-topbar-wrap { flex: 1 1 auto !important; }
.ps-topbar { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 6px 28px; font-size: 14px; line-height: 1.4; color: var(--ps-on-dark); }
.ps-topbar span { display: inline-flex; align-items: center; gap: 8px; }
.ps-topbar i { color: var(--ps-green); font-size: 13px; }
.ps-topbar a { color: #fff; font-weight: 600; text-decoration: none; }
.ps-topbar a:hover { text-decoration: underline; text-underline-offset: 3px; }

.mcb-header-section.ps-header-main,
.mcb-header-section.ps-header-sticky { background: #fff !important; border: 0 !important; border-bottom: 1px solid var(--ps-line) !important; padding: 12px 32px !important; }
.mcb-header-section.ps-header-sticky { padding: 8px 32px !important; box-shadow: 0 10px 30px -18px rgba(11, 16, 70, 0.35); }

.ps-hdr-logo img { height: 44px !important; width: auto !important; max-width: none; }
.ps-header-sticky .ps-hdr-logo img { height: 36px !important; }
.ps-hdr-logo .logo-wrapper { display: flex; align-items: center; }

.ps-hdr-nav-wrap { flex: 1 1 auto !important; }
.ps-hdr-nav-wrap .mcb-wrap-inner { justify-content: flex-end; }
.ps-hdr-menu .mfn-header-menu { justify-content: flex-end; flex-wrap: nowrap; gap: 2px; }
.ps-hdr-menu .mfn-header-menu > li.mfn-menu-li > a.mfn-menu-link {
	padding: 8px 12px; border-radius: 8px; color: var(--ps-ink) !important;
	font-size: 15px !important; font-weight: 500 !important; line-height: 1.2; white-space: nowrap;
	transition: background-color 0.15s ease, color 0.15s ease;
}
.ps-hdr-menu .mfn-header-menu > li.mfn-menu-li > a.mfn-menu-link .menu-label { font-size: inherit !important; font-weight: inherit !important; }
.ps-hdr-menu .mfn-header-menu > li.mfn-menu-li > a.mfn-menu-link:hover { background: var(--ps-surface); color: var(--ps-cobalt) !important; }
.ps-hdr-menu .mfn-header-menu > li.current-menu-item > a.mfn-menu-link { color: var(--ps-cobalt) !important; font-weight: 700 !important; }
.ps-hdr-menu .mfn-header-menu > li > a .mfn-menu-subicon { display: none; }

.ps-hdr-actions .mcb-wrap-inner { gap: 12px; }
.ps-hdr-cta .button { padding: 12px 22px !important; font-size: 15px !important; }
.ps-hdr-burger .icon-wrapper i { color: var(--ps-ink) !important; font-size: 26px !important; }

/* ---------- Mobile menu: drop-down panel (restyles Betheme's burger sidebar) ----------
   Betheme toggles .mfn-header-tmpl-menu-active on the burger's column. Instead of its
   side panel we pin a full-width panel under the header bar (menu.js measures the bar and
   sets --ps-menu-top) and reveal it top-down with clip-path. Emil: drawer curve to open,
   faster ease-out to close, short stagger, opacity-only fades under reduced motion. */
html.mfn-header-tmpl-burger-sidebar-opened { overflow: hidden; }

.ps-hdr-burger .mfn-header-tmpl-menu-sidebar {
	display: block !important;
	position: fixed !important;
	top: var(--ps-menu-top, 72px) !important; left: 0 !important; right: 0 !important;
	width: 100% !important; height: auto !important;
	max-height: calc(100vh - var(--ps-menu-top, 72px)); max-height: calc(100dvh - var(--ps-menu-top, 72px));
	overflow-y: auto;
	background: #fff !important;
	border-top: 1px solid var(--ps-line);
	box-shadow: 0 24px 48px -24px rgba(11, 16, 70, 0.4);
	clip-path: inset(0 0 100% 0);
	visibility: hidden;
	transition: clip-path 0.25s var(--ps-ease-out), visibility 0s linear 0.25s !important;
	z-index: 2 !important;
}
.ps-hdr-burger.mfn-header-tmpl-menu-active .mfn-header-tmpl-menu-sidebar {
	clip-path: inset(0 0 0 0);
	visibility: visible;
	transition: clip-path 0.45s cubic-bezier(0.32, 0.72, 0, 1), visibility 0s !important;
}
/* Backdrop below the header bar. Clicks pass through to Betheme's outside-click close. */
.ps-hdr-burger .mcb-column-inner::before {
	content: ""; position: fixed; left: 0; right: 0; bottom: 0; top: var(--ps-menu-top, 72px);
	z-index: 1; pointer-events: none;
	background: rgba(11, 16, 70, 0.45);
	opacity: 0; transition: opacity 0.25s ease;
}
.ps-hdr-burger.mfn-header-tmpl-menu-active .mcb-column-inner::before { opacity: 1; transition-duration: 0.35s; }

.ps-hdr-burger .mfn-header-tmpl-menu-sidebar-wrapper {
	display: block !important; height: auto !important; overflow: visible !important;
	max-width: 1220px; margin: 0 auto; padding: 12px 32px 32px !important; box-sizing: border-box;
}
.ps-hdr-burger .mfn-header-tmpl-menu-sidebar .mfn-close-icon { display: none !important; }
.ps-hdr-burger .mfn-header-tmpl-menu-sidebar .mfn-header-menu {
	display: block !important; width: 100%; margin: 0; padding: 0;
}
.ps-hdr-burger .mfn-header-tmpl-menu-sidebar .mfn-header-menu > .mfn-menu-li {
	display: block !important; margin: 0 !important; border-bottom: 1px solid var(--ps-line);
	opacity: 0; transform: translateY(-8px);
	transition: opacity 0.15s ease, transform 0.15s var(--ps-ease-out);
}
.ps-hdr-burger .mfn-header-tmpl-menu-sidebar .mfn-header-menu > .mfn-menu-li > a.mfn-menu-link {
	display: flex !important; justify-content: flex-start !important; text-align: left; padding: 14px 4px !important;
	color: var(--ps-ink) !important; font-size: 20px !important; font-weight: 700 !important; letter-spacing: -0.01em;
}
.ps-hdr-burger .mfn-header-tmpl-menu-sidebar .mfn-header-menu > .mfn-menu-li > a .menu-label { font: inherit !important; color: inherit !important; }
.ps-hdr-burger .mfn-header-tmpl-menu-sidebar .mfn-header-menu > li.current-menu-item > a.mfn-menu-link { color: var(--ps-cobalt) !important; }
.ps-hdr-burger .mfn-header-tmpl-menu-sidebar .mfn-menu-subicon { display: none; }

.ps-hdr-burger.mfn-header-tmpl-menu-active .mfn-header-menu > .mfn-menu-li,
.ps-hdr-burger.mfn-header-tmpl-menu-active .ps-menu-extras {
	opacity: 1; transform: none;
	transition: opacity 0.35s ease, transform 0.4s var(--ps-ease-out);
}
.ps-hdr-burger.mfn-header-tmpl-menu-active .mfn-header-menu > .mfn-menu-li:nth-child(1) { transition-delay: 0.06s; }
.ps-hdr-burger.mfn-header-tmpl-menu-active .mfn-header-menu > .mfn-menu-li:nth-child(2) { transition-delay: 0.095s; }
.ps-hdr-burger.mfn-header-tmpl-menu-active .mfn-header-menu > .mfn-menu-li:nth-child(3) { transition-delay: 0.13s; }
.ps-hdr-burger.mfn-header-tmpl-menu-active .mfn-header-menu > .mfn-menu-li:nth-child(4) { transition-delay: 0.165s; }
.ps-hdr-burger.mfn-header-tmpl-menu-active .mfn-header-menu > .mfn-menu-li:nth-child(5) { transition-delay: 0.2s; }
.ps-hdr-burger.mfn-header-tmpl-menu-active .mfn-header-menu > .mfn-menu-li:nth-child(6) { transition-delay: 0.235s; }
.ps-hdr-burger.mfn-header-tmpl-menu-active .mfn-header-menu > .mfn-menu-li:nth-child(7) { transition-delay: 0.27s; }
.ps-hdr-burger.mfn-header-tmpl-menu-active .mfn-header-menu > .mfn-menu-li:nth-child(n+8) { transition-delay: 0.3s; }
.ps-hdr-burger.mfn-header-tmpl-menu-active .ps-menu-extras { transition-delay: 0.3s; }

.ps-menu-extras {
	display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 24px;
	opacity: 0; transform: translateY(-8px);
	transition: opacity 0.15s ease, transform 0.15s var(--ps-ease-out);
}
.ps-menu-btn {
	display: flex; align-items: center; justify-content: center; padding: 15px 20px; border-radius: 999px;
	font-weight: 700; font-size: 16px; text-decoration: none !important;
	transition: background-color 0.2s ease, transform 0.16s var(--ps-ease-out);
}
.ps-menu-btn:active { transform: scale(0.97); }
.ps-menu-btn--seeker { background: var(--ps-green); color: var(--ps-navy) !important; }
.ps-menu-btn--employer { background: var(--ps-cobalt); color: #fff !important; }
.ps-menu-phones { grid-column: 1 / -1; margin: 8px 0 0; font-size: 14px; line-height: 1.7; color: var(--ps-muted); }
.ps-menu-phones a { color: var(--ps-ink); font-weight: 600; text-decoration: none; }
@media (max-width: 479px) {
	.ps-menu-extras { grid-template-columns: 1fr; }
	.ps-hdr-burger .mfn-header-tmpl-menu-sidebar-wrapper { padding: 8px 20px 28px !important; }
}

/* Burger: three lines that turn into an X while the panel is open. */
.ps-hdr-burger .mfn-header-menu-burger {
	display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px;
	transition: background-color 0.15s ease, transform 0.16s var(--ps-ease-out);
}
.ps-hdr-burger .mfn-header-menu-burger:active { transform: scale(0.92); }
@media (hover: hover) and (pointer: fine) {
	.ps-hdr-burger .mfn-header-menu-burger:hover { background: var(--ps-surface); }
}
.ps-hdr-burger .icon-wrapper.ps-has-lines i { display: none !important; }
.ps-burger-lines { position: relative; display: block; width: 22px; height: 16px; }
.ps-burger-lines span {
	position: absolute; left: 0; width: 100%; height: 2px; border-radius: 2px; background: var(--ps-ink);
	transition: transform 0.25s var(--ps-ease-out), opacity 0.15s ease;
}
.ps-burger-lines span:nth-child(1) { top: 0; }
.ps-burger-lines span:nth-child(2) { top: 7px; }
.ps-burger-lines span:nth-child(3) { top: 14px; }
.ps-hdr-burger.mfn-header-tmpl-menu-active .ps-burger-lines span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ps-hdr-burger.mfn-header-tmpl-menu-active .ps-burger-lines span:nth-child(2) { opacity: 0; transform: scaleX(0.4); }
.ps-hdr-burger.mfn-header-tmpl-menu-active .ps-burger-lines span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (prefers-reduced-motion: reduce) {
	.ps-hdr-burger .mfn-header-tmpl-menu-sidebar,
	.ps-hdr-burger.mfn-header-tmpl-menu-active .mfn-header-tmpl-menu-sidebar { clip-path: none; opacity: 0; transition: opacity 0.2s ease, visibility 0s linear 0.2s !important; }
	.ps-hdr-burger.mfn-header-tmpl-menu-active .mfn-header-tmpl-menu-sidebar { opacity: 1; transition: opacity 0.2s ease, visibility 0s !important; }
	.ps-hdr-burger .mfn-header-menu > .mfn-menu-li,
	.ps-menu-extras { transform: none !important; transition-delay: 0s !important; }
	.ps-burger-lines span { transition: opacity 0.15s ease; }
}

/* Laptop widths: tighten the menu so it stays on one line. */
@media (max-width: 1360px) {
	.mcb-header-section.ps-header .section_wrapper { gap: 16px; }
	.ps-hdr-menu .mfn-header-menu > li.mfn-menu-li > a.mfn-menu-link { padding: 8px 8px; font-size: 14px !important; }
	.ps-hdr-logo img { height: 38px !important; }
}

/* ============================================================
   Footer template ("PrimeStaff Footer")
   ============================================================ */
.mcb-section.ps-footer { background: var(--ps-navy) !important; padding: 72px 32px 28px !important; }
/* Betheme forces footer templates to 100% width with !important; match the page column instead. */
.mfn-footer-tmpl .mcb-section.ps-footer .section_wrapper { max-width: 1220px !important; margin: 0 auto; }
.ps-footer .mcb-column-inner { margin: 0 16px 14px; }
.ps-footer .title { color: #fff !important; font-size: 15px !important; line-height: 1.4 !important; font-weight: 700 !important; letter-spacing: 0 !important; text-align: left !important; margin: 0 0 4px; }
.ps-footer .column_attr,
.ps-footer .desc,
.ps-footer .column_attr p { color: var(--ps-on-dark) !important; font-size: 15px; line-height: 1.6; text-align: left !important; font-weight: 400; }
.ps-ftr-logo img { height: 40px; width: auto; }
.ps-ftr-logo .mcb-column-inner { margin-bottom: 18px; text-align: left !important; }
.ps-ftr-logo .image_frame { display: block; margin: 0 !important; text-align: left !important; }
.ps-ftr-logo .image_wrapper { display: inline-block; }
/* Betheme's hover link icon on linked images: a second, unlabeled link to the same page. */
.ps-ftr-logo .image_frame .image_wrapper .image_links { display: none; }
.ps-ftr-brand .mcb-wrap-inner { justify-content: flex-start !important; }
.ps-ftr-tagline .column_attr { max-width: 34ch; }

.ps-footer .mfn-footer-menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; text-align: left !important; }
.ps-footer .mfn-footer-menu li { margin: 0; padding: 0; border: 0; line-height: 1.6; }
.ps-footer .mfn-footer-menu li a { display: inline-block; padding: 0 !important; line-height: 1.6; }
.ps-footer .mfn-footer-menu a,
.ps-ftr-contact a { color: var(--ps-on-dark) !important; text-decoration: none; font-size: 15px; transition: color 0.15s ease; }
.ps-footer .mfn-footer-menu a:hover,
.ps-ftr-contact a:hover { color: #fff !important; }
.ps-ftr-contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: 15px; color: var(--ps-on-dark); }
.ps-ftr-contact li { margin: 0; }

.ps-ftr-legal { margin-top: 40px; }
.ps-ftr-legal .mcb-column-inner { border-top: 1px solid rgba(255, 255, 255, 0.12); padding-top: 22px; margin-bottom: 0; }
.ps-ftr-legal-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; font-size: 14px; color: var(--ps-on-dark); }
.ps-ftr-legal-row a { color: var(--ps-on-dark); text-decoration: underline; text-underline-offset: 3px; }
.ps-ftr-legal-row a:hover { color: #fff; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 959px) {
	.mcb-section.ps-section { padding: 72px 0; }
	.ps-industries .section_wrapper { grid-template-columns: 1fr 1fr; }
	.ps-tile--big { grid-row: auto; grid-column: 1 / -1; }
	.ps-tile--wide { grid-column: 1 / -1; }
	.ps-steps { grid-template-columns: 1fr 1fr; gap: 40px 28px; }
	.ps-steps::before { display: none; }
	.ps-why-intro { padding-right: 0; }
}
@media (max-width: 767px) {
	.ps-hero .section_wrapper { min-height: 0; padding: 48px 0 56px; }
	.ps-hero .ps-hero-bg-wrap .mcb-wrap-background-overlay { background: linear-gradient(180deg, rgba(11, 16, 70, 0.8), var(--ps-navy) 75%) !important; }
	.ps-hero-note { margin-left: 0; margin-top: 24px; }
	.ps-logos { justify-content: flex-start; margin-top: 16px; }
	.ps-industries .section_wrapper { grid-template-columns: 1fr; }
	.ps-tile--wide .mcb-wrap-inner { display: flex; }
	.ps-tile--wide .ps-tile-photo + .mcb-column .mcb-column-inner { margin-top: 24px; }
	.ps-reasons, .ps-contact { grid-template-columns: 1fr; }
	.ps-steps { grid-template-columns: 1fr; }
	.ps-alerts .mcb-wrap-inner { padding: 28px 12px; }
}

/* Space between column groups (wraps) once they stack.
   Betheme's responsive.css zeroes every wrap's margin on phones with
   ".section_wrapper .mcb-wrap { margin: 0 }", which outranks a single class, so each rule
   here carries ".section_wrapper >" to match it (this file loads later, so it wins). */
@media (max-width: 959px) {
	.section_wrapper > .ps-section-head { margin-bottom: 36px; }
	.ps-industries .section_wrapper > .ps-section-head { margin-bottom: 28px; }
	.section_wrapper > .ps-door + .ps-door { margin-top: 24px; }
	.section_wrapper > .ps-why-intro { margin-bottom: 40px; }
	.section_wrapper > .ps-faq-intro { margin-bottom: 28px; }
	.section_wrapper > .ps-industry { margin-bottom: 20px; }
	.section_wrapper > .ps-industry:last-child { margin-bottom: 0; }
	.section_wrapper > .ps-safety-photo { margin-bottom: 32px; }
	.section_wrapper > .ps-about-stats,
	.section_wrapper > .ps-apply-aside,
	.section_wrapper > .ps-map { margin-top: 32px; }
	.section_wrapper > .ps-alerts { margin-top: 40px; }
	.section_wrapper > .ps-cta-actions { margin-top: 24px; }
	/* Dual CTA buttons line up with the text above once the band stacks. */
	.ps-cta-dual .ps-cta-actions .mfn-item-inline.column_button .mcb-column-inner { margin-left: var(--ps-gutter) !important; margin-right: 0; }
}
@media (max-width: 767px) {
	.section_wrapper > .ps-faq-intro { margin-bottom: 24px; }
}
@media (max-width: 479px) {
	/* Phones: one button per line, each lined up with the text above it. A second button
	   that wrapped would otherwise sit 4px left of the first (its 12px row spacing
	   replaces the 16px gutter). */
	.ps-section .mcb-column.mfn-item-inline.column_button { width: 100% !important; }
	.ps-section .mfn-item-inline.column_button + .mfn-item-inline.column_button .mcb-column-inner { margin-left: var(--ps-gutter); }
}

@media (max-width: 959px) {
	.mcb-header-section.ps-header-top { padding: 6px 16px !important; }
	.ps-topbar { justify-content: center; font-size: 13px; }
	.ps-topbar-address { display: none !important; }
	.mcb-header-section.ps-header-main,
	.mcb-header-section.ps-header-sticky { padding: 10px 16px !important; }
	.ps-hdr-nav-wrap { flex: 1 1 auto !important; }
	.mcb-section.ps-footer { padding: 56px 16px 24px !important; }
	.ps-ftr-brand { width: 100% !important; margin-bottom: 24px; }
	.ps-ftr-col { width: 33.33% !important; }
}
@media (max-width: 767px) {
	.ps-hdr-logo img { height: 34px !important; }
	.ps-ftr-col { width: 100% !important; margin-bottom: 20px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.ps-door .mcb-wrap-inner { transition: none; }
}
