/**
 * Bootstrap 5 theme overrides.
 */

:root {
	--bs-body-font-size: 14px;
	/*
	 * WPBakery (.vc_row) still uses ±15px side margins from the BS3 era.
	 * BS5 default gutter is 1.5rem (12px padding) → 6px horizontal overflow.
	 * Restore 30px gutter so container padding matches VC (±15px).
	 */
	--bs-gutter-x: 30px;
}

.container,
.container-fluid,
.container-sm,
.container-md,
.container-lg,
.container-xl,
.container-xxl,
.row {
	--bs-gutter-x: 30px;
}

.navbar-light .navbar-toggler {
	border: none;
}

.navbar-light .navbar-toggler:focus,
.navbar-light .navbar-toggler:hover {
	background: none;
	box-shadow: none;
}

.main-navigation .navbar-toggler-icon {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%232e79bb' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Mobile offcanvas + drill-down submenus
 * Do not force display:none when closed — it breaks Bootstrap’s slide-in transition.
 * Closed state relies on Bootstrap visibility + transform. */
@media (max-width: 991.98px) {
	.main-navigation .mobile-menu-wrap.offcanvas {
		--bs-offcanvas-width: 100%;
		--bs-offcanvas-border-width: 0;
		/* Clip drill-down panels (translateX(120%)) so they don't create page horizontal scroll */
		overflow-x: hidden;
	}

	.main-navigation .mobile-menu-wrap .offcanvas-body {
		overflow-x: hidden;
	}

	.main-navigation .mobile-menu-wrap .offcanvas-header {
		padding: 1rem 1.25rem;
		align-items: center;
	}

	.main-navigation .mobile-menu-wrap .offcanvas-header .offcanvas-title img {
		height: 32px;
		width: auto;
	}

	.main-navigation .mobile-menu-wrap .offcanvas-body {
		padding: 0;
		overflow: hidden;
		text-align: left;
		position: relative;
	}

	.main-navigation .mobile-menu-wrap .mobile-menu {
		list-style: none;
		margin: 0;
		padding: 1rem 1.5rem 2.5rem;
		height: 100%;
		overflow-y: auto;
	}

	.main-navigation .mobile-menu-wrap .mobile-menu > li {
		border-bottom: 1px solid #ebebeb;
		list-style: none;
	}

	.main-navigation .mobile-menu-wrap .mobile-menu > li:last-child {
		border-bottom: none;
	}

	.main-navigation .mobile-menu-wrap .mobile-menu li a,
	.main-navigation .mobile-menu-wrap .mobile-menu li .mobile-menu-expand-btn {
		color: #000;
		font-weight: bold;
		font-size: 14px;
		text-transform: uppercase;
		text-decoration: none;
		cursor: pointer;
		line-height: 1.35;
		padding: 1rem 2rem 1rem 0;
	}

	.main-navigation .mobile-menu-wrap .mobile-menu li a:hover,
	.main-navigation .mobile-menu-wrap .mobile-menu li .mobile-menu-expand-btn:hover {
		color: #2e79bb;
	}
	.main-navigation .mobile-menu-wrap .mobile-menu li.current-menu-item > a,
	.main-navigation .mobile-menu-wrap .mobile-menu li.current-menu-item > .mobile-menu-expand-btn {
		color: #2e79bb;
	}

	.main-navigation .mobile-menu-wrap .mobile-menu .mobile-menu-expand-btn .fa-chevron-right {
		color: #2e79bb;
		font-size: 12px;
		right: 0;
	}

	/* Language switcher button */
	.main-navigation .mobile-menu-wrap .mobile-menu li.menu-item-language {
		border-bottom: none;
		padding-top: 1.25rem;
	}

	.main-navigation .mobile-menu-wrap .mobile-menu li.menu-item-language a.mobile-menu-lang-link,
	.main-navigation .mobile-menu-wrap .mobile-menu a.mobile-menu-lang-link {
		display: inline-block;
		color: #fff;
		background-color: #2e79bb;
		line-height: 28px;
		padding: 8px 14px;
		text-transform: uppercase;
		font-size: 15px;
		font-weight: bold;
		border-radius: 0;
	}

	.main-navigation .mobile-menu-wrap .mobile-menu li.menu-item-language a.mobile-menu-lang-link:hover,
	.main-navigation .mobile-menu-wrap .mobile-menu a.mobile-menu-lang-link:hover {
		color: #fff;
		background-color: #246499;
	}

	/* Submenu slides in as a full overlay panel */
	.main-navigation .mobile-menu-wrap .mobile-menu .sub-menu {
		transform: translateX(120%);
		position: absolute;
		width: 100%;
		height: 100%;
		top: 0;
		left: 0;
		z-index: 99;
		background: #fff;
		overflow-y: auto;
		display: block !important;
		border: none;
		min-width: 0;
		padding: 0;
		margin: 0;
		list-style: none;
		transition: transform 0.6s, opacity 0.3s;
	}

	.main-navigation .mobile-menu-wrap .mobile-menu .sub-menu .sub-menu-header {
		height: 62px;
		text-align: center;
		line-height: 62px;
		position: relative;
		cursor: pointer;
		border-bottom: 1px solid #ebebeb;
		margin: 0;
		padding: 0 2.5rem;
	}

	.main-navigation .mobile-menu-wrap .mobile-menu .sub-menu .sub-menu-header p {
		margin: 0;
		font-weight: bold;
		font-size: 14px;
		text-transform: uppercase;
		color: #000;
		line-height: 62px;
	}

	.main-navigation .mobile-menu-wrap .mobile-menu .sub-menu .sub-menu-header .sub-menu-back {
		cursor: pointer;
		line-height: 62px;
		color: #2e79bb;
	}

	.main-navigation .mobile-menu-wrap .mobile-menu .sub-menu .sub-menu-header .sub-menu-back:hover {
		color: #000;
	}

	.main-navigation .mobile-menu-wrap .mobile-menu .sub-sub-menu {
		list-style: none;
		margin: 0;
		padding: 0.75rem 1.5rem 2.5rem;
	}

	.main-navigation .mobile-menu-wrap .mobile-menu .sub-sub-menu > li {
		border-bottom: 1px solid #ebebeb;
	}

	.main-navigation .mobile-menu-wrap .mobile-menu .sub-sub-menu > li:last-child {
		border-bottom: none;
	}

	.main-navigation .mobile-menu-wrap .mobile-menu .sub-sub-menu a,
	.main-navigation .mobile-menu-wrap .mobile-menu .sub-sub-menu .mobile-menu-expand-btn {
		font-weight: 600;
		text-transform: none;
		font-size: 14px;
		padding: 0.9rem 2rem 0.9rem 0;
	}
}

/* Hide mobile offcanvas shell on desktop (desktop menu is separate) */
@media (min-width: 992px) {
	.main-navigation .mobile-menu-wrap.offcanvas {
		display: none !important;
	}
}

/* Admin bar offsets for mobile offcanvas */
body.admin-bar .mobile-menu-wrap.offcanvas {
	top: calc(0px + 32px);
	height: calc(100% - 32px);
}

@media (max-width: 782px) {
	body.admin-bar .mobile-menu-wrap.offcanvas {
		top: calc(0px + 46px);
		height: calc(100% - 46px);
	}
}

/* Below 600px: admin bar is absolute (scrolls away).
 * Offset while at top of page; no offset once header is sticky. */
@media (max-width: 600px) {
	body.admin-bar .mobile-menu-wrap.offcanvas {
		top: 46px;
		height: calc(100% - 46px);
	}

	body.admin-bar #masthead.sticky .mobile-menu-wrap.offcanvas {
		top: 0;
		height: 100%;
	}
}

/* Homepage job search: stack fields like /job-opportunities/ below lg */
@media (max-width: 991.98px) {
	#homepage-header-video .form-container {
		width: 100%;
		max-width: 100%;
		padding: 20px;
	}

	#homepage-header-video .form-container .form-group {
		width: 100%;
		max-width: 100%;
		margin-right: 0;
		margin-bottom: 0;
	}

	#homepage-header-video .form-container .ui-dropdownchecklist-selector-wrapper,
	#homepage-header-video .form-container .ui-widget.ui-dropdownchecklist-selector-wrapper {
		float: none;
		width: 100%;
		margin-right: 0;
	}

	#homepage-header-video .form-container .ui-dropdownchecklist-selector {
		width: 100% !important;
		box-sizing: border-box;
	}

	#homepage-header-video .form-container .ui-dropdownchecklist-text {
		width: 85% !important;
		max-width: 85% !important;
	}

	#homepage-header-video .form-container .ui-dropdownchecklist-dropcontainer {
		width: 100% !important;
	}

	#homepage-header-video .form-container .form-group.search-submit,
	#homepage-header-video .form-container #search-submit {
		width: 100%;
	}
}
