/* ==========================================================================
   BIS site header ([bis_header]): sticky white bar, mega-menu panels (icon
   tiles, plain lists, a featured card, a foot row) after the Fellow / Motive /
   VelocityEHS menus. Phones and tablets get a full-height drawer.
   Scoped to .bis-hd; link, heading and button rules carry a body prefix
   because the Elementor kit styles a, h1-h6 and button site-wide.
   ========================================================================== */

.bis-hd {
	--hd-text: #191919;
	--hd-muted: #666666;
	--hd-border: #e2e2e2;
	--hd-blue: #0078b3;
	--hd-blue-dark: #006397;
	--hd-green: #8dc33f;
	--hd-green-dark: #7aac31;
	--hd-tint: #e6f5fb;
	--hd-bg: #ffffff;
	--hd-brand: 'Montserrat', Arial, Helvetica, sans-serif;
	--hd-body: 'Segoe UI', -apple-system, system-ui, BlinkMacSystemFont, Helvetica, Arial, sans-serif;
	--hd-h: 72px;

	position: relative;
	z-index: 1000;
	font-family: var(--hd-body);
	font-size: 15px;
	line-height: 1.4;
	color: var(--hd-text);
}
.bis-hd *, .bis-hd *::before, .bis-hd *::after { box-sizing: border-box; }
body .bis-hd a { color: inherit; text-decoration: none; }
body .bis-hd ul { list-style: none; margin: 0; padding: 0; }
body .bis-hd p { margin: 0; }
body .bis-hd img { max-width: 100%; height: auto; }
body .bis-hd button {
	all: unset; box-sizing: border-box; cursor: pointer;
	font-family: inherit; font-size: inherit; color: inherit; line-height: inherit;
}
/* Hello Elementor's reset.css paints [type=button]:hover/:focus #c36 (0,2,0 beats the reset above); keep our buttons clear unless a class sets a background. */
body .bis-hd button:hover, body .bis-hd button:focus { background-color: transparent; }
body .bis-hd :focus-visible { outline: 2px solid var(--hd-blue); outline-offset: 2px; border-radius: 4px; }
.bis-hd__sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Keep the whole Header Footer Elementor wrapper sticky (the bar's parent is only as tall as the bar). */
body #masthead:has(.bis-hd) { position: sticky; top: 0; z-index: 1000; }
body.admin-bar #masthead:has(.bis-hd) { top: 32px; }
@media (max-width: 782px) { body.admin-bar #masthead:has(.bis-hd) { top: 46px; } }

/* ---- Announcement (Tabs-style: full-width brand strip, centred dark text) -- */

.bis-hd__announce { position: relative; background: #0078b3; color: #ffffff; font-size: 14px; font-weight: 500; }
.bis-hd__announce-inner { max-width: 1200px; margin: 0 auto; padding: 9px 48px; display: flex; align-items: center; justify-content: center; gap: 10px; text-align: center; }
.bis-hd__announce-inner::before {
	content: ""; flex: 0 0 auto; width: 16px; height: 16px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E") center / contain no-repeat;
}
body .bis-hd__announce a { color: #ffffff; font-weight: 700; white-space: nowrap; text-decoration: underline; text-underline-offset: 3px; }
body .bis-hd__announce a:hover { color: #ffffff; text-decoration-thickness: 2px; }
body .bis-hd .bis-hd__announce-close { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); display: inline-flex; padding: 6px; color: #ffffff; opacity: 1; }
body .bis-hd .bis-hd__announce-close:hover { opacity: 1; }
.bis-hd__announce.is-hidden { display: none; }

/* ---- Bar ------------------------------------------------------------------- */

/* The bar is the positioning context, so mega panels span the full width under it (Tabs-style). */
.bis-hd__bar { position: relative; background: var(--hd-bg); border-bottom: 1px solid #eceef0; }
.bis-hd__wrap {
	max-width: 1240px; margin: 0 auto; padding: 0 20px;
	height: var(--hd-h); display: flex; align-items: center; gap: 48px;
}
body .bis-hd__logo { flex: 0 0 auto; display: inline-flex; }
body .bis-hd__logo img { display: block; height: 34px; width: auto; }

.bis-hd__nav { flex: 1 1 auto; height: 100%; }
.bis-hd__menu { display: flex; align-items: stretch; height: 100%; gap: 4px; }
.bis-hd__item { display: flex; align-items: center; }
body .bis-hd .bis-hd__top {
	display: inline-flex; align-items: center; gap: 4px; padding: 10px 12px;
	font-family: var(--hd-body); font-weight: 600; font-size: 15px; color: var(--hd-text); white-space: nowrap;
	transition: color .18s ease;
}
/* No chevrons on desktop (Tabs); they come back in the phone drawer. */
body .bis-hd .bis-hd__top svg { display: none; }
/* While a menu is open, the other top items fade to light grey and the open one stays dark. */
.bis-hd.is-menu-open .bis-hd__item > .bis-hd__top { color: #b4b9be; }
.bis-hd.is-menu-open .bis-hd__item.is-open > .bis-hd__top,
body .bis-hd .bis-hd__top:hover { color: var(--hd-text); }

.bis-hd__actions { flex: 0 0 auto; display: flex; align-items: center; gap: 18px; margin-left: auto; }
body .bis-hd .bis-hd__icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 999px; color: var(--hd-text); }
body .bis-hd .bis-hd__icon-btn:hover { background: #f2f4f6; }
body .bis-hd .bis-hd__login {
	display: inline-flex; align-items: center; min-height: 42px; padding: 0 20px; border: 1.5px solid var(--hd-blue); border-radius: 8px; background: #ffffff;
	font-family: var(--hd-body); font-weight: 600; font-size: 15px; color: var(--hd-blue); white-space: nowrap;
	transition: background-color .15s ease, color .15s ease;
}
/* Colours of the secondary buttons on Request a Demo ("Book a meeting"). */
body .bis-hd .bis-hd__login:hover { background: var(--hd-tint); color: var(--hd-blue); }
body .bis-hd .bis-hd__cta {
	display: inline-flex; align-items: center; min-height: 42px; padding: 0 22px; border-radius: 8px;
	background: var(--hd-green); color: #ffffff; font-family: var(--hd-body); font-weight: 600; font-size: 15px; white-space: nowrap;
	transition: background-color .15s ease;
}
body .bis-hd .bis-hd__cta:hover { background: var(--hd-green-dark); color: #ffffff; }
body .bis-hd .bis-hd__lang {
	font-family: var(--hd-brand); font-weight: 700; font-size: 13px; color: var(--hd-muted);
	padding: 4px 6px; border: 1px solid var(--hd-border); border-radius: 4px;
}
body .bis-hd .bis-hd__lang:hover { color: var(--hd-blue); border-color: var(--hd-blue); }
/* TranslatePress shortcode switcher: the live header's "bis-desktop-switcher" rules, plus resets so the
   header's own type and border-box sizing don't change TranslatePress's metrics. */
.bis-hd__lang-sw { display: flex; align-items: center; font-size: 16px; line-height: 24px; }
.bis-hd .bis-hd__lang-sw *, .bis-hd .bis-hd__lang-sw *::before, .bis-hd .bis-hd__lang-sw *::after { box-sizing: content-box; }
.bis-hd__lang-sw .trp-shortcode-switcher__wrapper { display: flex !important; align-items: center !important; gap: 4px !important; }
.bis-hd__lang-sw .trp-shortcode-arrow { width: 14px !important; height: 14px !important; transition: transform 200ms; }
.bis-hd__lang-sw .trp-language-item__current { padding-right: 4px !important; }
.bis-hd__lang-sw .trp-shortcode-overlay .trp-switcher-dropdown-list { padding-top: 4px !important; }
.bis-hd__lang-sw .trp-shortcode-overlay .trp-switcher-dropdown-list > a.trp-language-item {
	background: #ffffff !important; border: 1px solid #d1d1d1 !important; border-radius: 4px !important;
	transition: background-color 200ms, border-color 200ms;
}
.bis-hd__lang-sw .trp-shortcode-overlay .trp-switcher-dropdown-list > a.trp-language-item:hover,
.bis-hd__lang-sw .trp-shortcode-overlay .trp-switcher-dropdown-list > a.trp-language-item:focus-visible {
	background: #1899cb !important; border-color: #1899cb !important; color: #ffffff !important;
}
/* The header carries the language link, so TranslatePress's floating switcher (fixed top-right, over the
   header's buttons) isn't needed on these pages. */
body:has(.bis-hd) .trp-floating-switcher { display: none !important; }
.bis-hd__burger { display: none !important; }
.bis-hd__burger-close { display: none; }

/* Search pop-over (desktop) */
.bis-hd__search-wrap { position: relative; }
.bis-hd__search { display: flex; align-items: center; gap: 6px; }
.bis-hd__search input {
	flex: 1 1 auto; min-width: 0; height: 42px; padding: 0 12px; border: 1px solid #cccccc; border-radius: 8px;
	font: inherit; font-size: 15px; color: var(--hd-text); background: #ffffff;
}
.bis-hd__search input:focus { outline: none; border-color: #009acb; box-shadow: 0 0 0 3px rgba(0, 154, 203, .3); }
body .bis-hd .bis-hd__search button[type="submit"] { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 8px; background: var(--hd-blue); color: #ffffff; }
.bis-hd__search--pop {
	position: absolute; right: 0; top: calc(100% + 14px); width: 360px; padding: 12px; background: #ffffff;
	border: 1px solid #eceef0; border-radius: 10px; box-shadow: 0 12px 32px rgba(25, 25, 25, .10); display: none;
}
.bis-hd__search-wrap.is-open .bis-hd__search--pop { display: flex; }
.bis-hd__search--drawer, .bis-hd__drawer-foot { display: none; }

/* ---- Panels (desktop): full width under the bar, fade + short slide ------- */

.bis-hd__item { position: static; }
.bis-hd__panel {
	position: absolute; left: 0; right: 0; top: 100%;
	background: #ffffff; border-bottom: 1px solid #eceef0; box-shadow: 0 18px 32px -18px rgba(25, 25, 25, .18);
	visibility: hidden; opacity: 0; transform: translateY(-6px); pointer-events: none;
	transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
}
.bis-hd__item.is-open > .bis-hd__panel {
	visibility: visible; opacity: 1; transform: none; pointer-events: auto;
	transition: opacity .18s ease, transform .18s ease, visibility 0s;
}
/* No-JS fallback: open on hover and keyboard focus. */
.bis-hd:not(.bis-hd--js) .bis-hd__item:hover > .bis-hd__panel,
.bis-hd:not(.bis-hd--js) .bis-hd__item:focus-within > .bis-hd__panel { visibility: visible; opacity: 1; transform: none; pointer-events: auto; }

/* Company stays a compact dropdown under its own item. */
.bis-hd__item:has(.bis-hd__panel--small) { position: relative; }
.bis-hd__panel--small {
	left: -8px; right: auto; top: calc(100% - 6px); width: 340px;
	border: 1px solid #eceef0; border-radius: 12px; box-shadow: 0 16px 36px rgba(25, 25, 25, .12);
}

.bis-hd__panel-inner {
	max-width: 1200px; margin: 0 auto; display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr) 300px; gap: 40px; padding: 32px 20px 28px;
}
.bis-hd__panel--small .bis-hd__panel-inner { grid-template-columns: 1fr; padding: 22px 24px; gap: 0; max-width: none; }
.bis-hd__panel-inner:not(:has(.bis-hd__card)) { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); }

body .bis-hd .bis-hd__group {
	font-family: var(--hd-body); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
	color: #7d838a; margin-bottom: 16px;
}
.bis-hd__lists-col .bis-hd__group:not(:first-child) { margin-top: 26px; }

.bis-hd__tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; }
body .bis-hd .bis-hd__tile { display: flex; align-items: flex-start; gap: 14px; padding: 8px; margin: 0 -8px; border-radius: 8px; transition: background-color .12s ease; }
body .bis-hd .bis-hd__tile:hover { background: #f5f7f9; }
/* "featured": true on a tile: tinted by default, a deeper tint on hover. */
body .bis-hd .bis-hd__tile--featured { background: var(--hd-tint); }
body .bis-hd .bis-hd__tile--featured:hover, body .bis-hd .bis-hd__tile--featured:focus-visible { background: #cdeaf6; }
/* Solid brand square with a white glyph (Tabs-style). */
.bis-hd__tile-icon {
	flex: 0 0 auto; width: 30px; height: 30px; margin-top: 2px; border-radius: 6px; background: #009acb; color: #ffffff;
	display: inline-flex; align-items: center; justify-content: center;
}
.bis-hd__tile-icon svg { width: 16px; height: 16px; }
.bis-hd__tile-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.bis-hd__tile-label { font-family: var(--hd-body); font-weight: 600; font-size: 15px; color: var(--hd-text); }
.bis-hd__tile-desc { font-size: 12px; color: #5f656b; line-height: 1.4; }

.bis-hd__list { display: flex; flex-direction: column; gap: 12px; }
.bis-hd__list--2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; }
body .bis-hd .bis-hd__list a { font-size: 15px; font-weight: 500; color: var(--hd-text); }
body .bis-hd .bis-hd__list a:hover { color: var(--hd-blue); }
.bis-hd__list--contact a { display: inline-flex; align-items: center; gap: 8px; }
.bis-hd__list--contact svg { color: var(--hd-blue); }

/* Card: light, bordered, text on top and the image below (Tabs' "Monthly Product Releases"). */
body .bis-hd .bis-hd__card {
	display: flex; flex-direction: column; border: 1px solid #e6e8eb; border-radius: 10px; overflow: hidden;
	background: #ffffff; color: var(--hd-text); align-self: start; transition: border-color .15s ease, box-shadow .15s ease;
}
body .bis-hd .bis-hd__card:hover { border-color: #cfd4d9; box-shadow: 0 8px 20px rgba(25, 25, 25, .08); }
.bis-hd__card img { order: 2; display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.bis-hd__card-body { order: 1; display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; }
.bis-hd__card-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #7d838a; }
.bis-hd__card-title { font-weight: 600; font-size: 15px; line-height: 1.35; color: var(--hd-text); }
.bis-hd__card-text { font-size: 14px; color: #5f656b; }
.bis-hd__card-cta { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; font-weight: 600; font-size: 14px; color: var(--hd-blue); }

/* Foot links in a light rounded strip inside the panel (Tabs' "GUIDE … Read more"). */
.bis-hd__panel-foot {
	max-width: 1160px; margin: 0 auto 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 28px;
	padding: 14px 20px; background: #f6f7f8; border: 1px solid #eceef0; border-radius: 10px;
}
.bis-hd__panel-foot::before { content: "Explore"; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #7d838a; margin-right: 4px; }
body .bis-hd .bis-hd__panel-foot a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 15px; color: var(--hd-text); }
body .bis-hd .bis-hd__panel-foot a:hover { color: var(--hd-blue); }
@media (max-width: 1240px) { .bis-hd__panel-foot { margin-left: 20px; margin-right: 20px; } }

/* Smaller desktops: drop the card first, then tighten. */
/* A panel with only tiles or only lists (no card) uses the full width; tiles go three across. */
.bis-hd__panel .bis-hd__panel-inner.bis-hd__panel-inner--single { grid-template-columns: minmax(0, 1fr); }
.bis-hd__panel-inner--single .bis-hd__tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
/* "lists_layout": "columns": each list (title + links) is its own column. */
.bis-hd__lists-col--columns { display: grid; grid-template-columns: repeat(var(--hd-list-cols, 3), minmax(0, 1fr)); gap: 0 40px; }
.bis-hd__lists-col--columns .bis-hd__list-group .bis-hd__group { margin-top: 0; }

@media (max-width: 1240px) and (min-width: 1101px) {
	.bis-hd__panel-inner, .bis-hd__panel-inner:not(:has(.bis-hd__card)) { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
	body .bis-hd .bis-hd__panel-inner .bis-hd__card { display: none; }
	.bis-hd__wrap { gap: 14px; }
	.bis-hd__menu { gap: 0; }
	.bis-hd__actions { gap: 10px; }
	body .bis-hd .bis-hd__top { padding: 10px 7px; font-size: 14px; }
	body .bis-hd .bis-hd__login { padding: 0 14px; font-size: 14px; }
	body .bis-hd .bis-hd__cta { padding: 0 14px; font-size: 14px; }
	body .bis-hd__logo img { height: 32px; }
}

/* ---- Tablet and phone: drawer --------------------------------------------- */

@media (max-width: 1100px) {
	.bis-hd { --hd-h: 64px; }
	.bis-hd__wrap { gap: 12px; }
	.bis-hd__burger { display: inline-flex !important; }
	.bis-hd__search-wrap, body .bis-hd .bis-hd__login, body .bis-hd .bis-hd__lang, .bis-hd__lang-sw { display: none; }
	body .bis-hd .bis-hd__cta { min-height: 40px; padding: 0 14px; font-size: 14px; }

	.bis-hd__nav {
		position: fixed; left: 0; right: 0; top: var(--bis-hd-top, var(--hd-h)); bottom: 0; height: auto;
		background: #ffffff; overflow-y: auto; overscroll-behavior: contain; padding: 16px 20px 32px;
		display: none; border-top: 1px solid var(--hd-border);
	}
	.bis-hd.is-drawer-open .bis-hd__nav { display: block; }
	.bis-hd.is-drawer-open .bis-hd__burger-open { display: none; }
	.bis-hd.is-drawer-open .bis-hd__burger-close { display: inline-flex; }

	.bis-hd__search--drawer { display: flex; margin-bottom: 12px; }
	.bis-hd__menu { display: block; height: auto; }
	.bis-hd__item { display: block; border-bottom: 1px solid var(--hd-border); }
	body .bis-hd .bis-hd__top { width: 100%; justify-content: space-between; padding: 16px 0; font-size: 17px; border-radius: 0; }
	body .bis-hd .bis-hd__top:hover, body .bis-hd .bis-hd__item.is-open > .bis-hd__top { background: none; }
	body .bis-hd .bis-hd__top svg { display: inline-block; }
	.bis-hd.is-menu-open .bis-hd__item > .bis-hd__top { color: var(--hd-text); }

	/* Drawer accordions: no fade/slide, just show and hide. */
	.bis-hd__panel, .bis-hd__panel--small {
		position: static; width: auto; margin: 0; border: 0; border-radius: 0; box-shadow: none; overflow: visible;
		visibility: visible; opacity: 1; transform: none; pointer-events: auto; transition: none; display: none;
	}
	.bis-hd__item.is-open > .bis-hd__panel { display: block; }
	.bis-hd:not(.bis-hd--js) .bis-hd__item:hover > .bis-hd__panel { display: none; }
	.bis-hd__panel-inner, .bis-hd__panel-inner:not(:has(.bis-hd__card)), .bis-hd__panel--small .bis-hd__panel-inner {
		display: flex; flex-direction: column; gap: 20px; padding: 0 0 18px;
	}
	body .bis-hd .bis-hd__panel-inner .bis-hd__card { display: none; }
	.bis-hd__tiles { grid-template-columns: 1fr; gap: 2px; }
	body .bis-hd .bis-hd__tile { padding: 8px; margin: 0 -8px; }
	.bis-hd__tile-icon { width: 28px; height: 28px; }
	.bis-hd__list--2 { grid-template-columns: 1fr; }
	.bis-hd__panel-inner--single .bis-hd__tiles { grid-template-columns: 1fr; }
	.bis-hd__lists-col--columns { display: block; }
	.bis-hd__lists-col--columns .bis-hd__list-group + .bis-hd__list-group { margin-top: 22px; }
	.bis-hd__panel-inner { max-width: none; }
	.bis-hd__panel-foot { background: none; border: 0; border-radius: 0; padding: 0 0 18px; margin: 0; max-width: none; }
	.bis-hd__panel-foot::before { display: none; }
	body .bis-hd .bis-hd__panel-foot a { color: var(--hd-blue); }

	.bis-hd__drawer-foot { display: flex; flex-direction: column; gap: 14px; padding-top: 20px; }
	body .bis-hd .bis-hd__drawer-foot a { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; color: var(--hd-text); }
	body .bis-hd .bis-hd__drawer-login { font-family: var(--hd-brand); font-weight: 700; color: var(--hd-blue) !important; }
	.bis-hd__drawer-foot svg { color: var(--hd-blue); }
	html.bis-hd-lock { overflow: hidden; }
}
@media (max-width: 380px) {
	body .bis-hd__logo img { height: 30px; }
	body .bis-hd .bis-hd__cta { padding: 0 10px; font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
	.bis-hd * { transition: none !important; }
}

/* Royal Elementor's back-to-top button (z-index 9999 on .ca pages) sits under the header and its phone drawer. */
body .wpr-stt-btn { z-index: 999 !important; }
