/* More generic styles */

/* Links */
a {
    color: var(--bu-black);

    &:is(:hover, :focus) {
        color: var(--bu-black);
    }
}

/* BG colors */
.brand-color-primary-bg {
    background-color: var(--bu-orange) !important;
}

.gray-light-bg {
    background-color: var(--bu-grey50) !important;
}

.gray-lighter-bg {
    background-color: var(--bu-white) !important;
}

/* Foreground colors */
.brand-color-primary {
    color: var(--bu-orange) !important;
}

.gray-lighter {
    color: var(--bu-black) !important;
}

/* Visited links, as extracted from main */
.ph-widget [class^="ph-"]:not([class^="ph-recent"]) .widget-container>.content-block>ul .jobs-list-item a:visited[class*="title"],
.ph-widget [class^="ph-"]:not([class^="ph-recent"]) .jobs-list-item a[ph-tevent="job_click"]:visited[class*="title"],
.ph-widget [class^="ph-"]:not([class^="ph-recent"]) .jobs-list-item a:visited[class*="title"],
.ph-widget [class^="ph-"]:not([class^="ph-recent"]) .widget-container>.content-block>ul .jobs-list-item a:visited [class*="title"],
.ph-widget [class^="ph-"]:not([class^="ph-recent"]) .jobs-list-item a[ph-tevent="job_click"]:visited [class*="title"],
.ph-widget [class^="ph-"]:not([class^="ph-recent"]) .jobs-list-item a:visited [class*="title"],
.ph-widget [class^="ph-"]:not([class^="ph-recent"]) .widget-container>.content-block>ul .jobs-list-item a:visited>*:first-child,
.ph-widget [class^="ph-"]:not([class^="ph-recent"]) .jobs-list-item a[ph-tevent="job_click"]:visited>*:first-child,
.ph-widget [class^="ph-"]:not([class^="ph-recent"]) .jobs-list-item a:visited>*:first-child,
.pcs-widget [class^="pcs-"]:not([class^="pcs-recent"]) [class^="pcs-"]:not([class^="pcs-job"]) .widget-container>.content-block>ul .jobs-list-item a:visited[class*="title"],
.pcs-widget [class^="pcs-"]:not([class^="pcs-recent"]) [class^="pcs-"]:not([class^="pcs-job"]) .jobs-list-item a[ph-tevent="job_click"]:visited[class*="title"],
.pcs-widget [class^="pcs-"]:not([class^="pcs-recent"]) [class^="pcs-"]:not([class^="pcs-job"]) .jobs-list-item a:visited[class*="title"],
.pcs-widget [class^="pcs-"]:not([class^="pcs-recent"]) [class^="pcs-"]:not([class^="pcs-job"]) .widget-container>.content-block>ul .jobs-list-item a:visited [class*="title"],
.pcs-widget [class^="pcs-"]:not([class^="pcs-recent"]) [class^="pcs-"]:not([class^="pcs-job"]) .jobs-list-item a[ph-tevent="job_click"]:visited [class*="title"],
.pcs-widget [class^="pcs-"]:not([class^="pcs-recent"]) [class^="pcs-"]:not([class^="pcs-job"]) .jobs-list-item a:visited [class*="title"],
.pcs-widget [class^="pcs-"]:not([class^="pcs-recent"]) [class^="pcs-"]:not([class^="pcs-job"]) .widget-container>.content-block>ul .jobs-list-item a:visited>*:first-child,
.pcs-widget [class^="pcs-"]:not([class^="pcs-recent"]) [class^="pcs-"]:not([class^="pcs-job"]) .jobs-list-item a[ph-tevent="job_click"]:visited>*:first-child,
.pcs-widget [class^="pcs-"]:not([class^="pcs-recent"]) [class^="pcs-"]:not([class^="pcs-job"]) .jobs-list-item a:visited>*:first-child {
    color:var(--bu-orange);

    &:is(:hover, :focus) {
        color: var(--bu-orange700);
    }
}

/* Inputs */
input[type="text"]:focus,
input[type="date"]:focus,
input[type="password"]:focus,
input[type="time"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="search"]:focus,
input[type="url"]:focus,
input[type="month"]:focus,
input[type="week"]:focus {
    border-color: var(--bu-orange);
}

.form-group {
    :is(input, textarea, select):is(:hover, :focus, :active) {
        border-color: var(--bu-orange);
    }
}

.has-error {
    .form-control {
        border-color: var(--bu-form-error);
    }

    .help-block,
    .control-label,
    .radio,
    .checkbox,
    .radio-inline,
    .checkbox-inline {
        color: var(--bu-form-error);
    }

    &.radio,
    &.checkbox,
    &.radio-inline,
    &.checkbox-inline {
        label {
            color: var(--bu-form-error);
        }
    }
}

/* -- Generic colors -- */
:root {
	--bu-orange: #fd5108;
	--bu-black: #000;
	--bu-white: #fff;
	--bu-orange50: #fff5ed;
	--bu-orange100: #ffe8d4;
	--bu-orange700: #c52b09;
	--bu-grey50: #f5f7f8;
	--bu-grey200: #dfe3e6;
	--bu-grey300: #cbd1d6;
	--bu-grey700: #787e8a;
	--bu-grey800: #4c5056;
	--bu-grey900: #303236;
	--bu-transparent: transparent;
	--bu-form-success: #059669;
	--bu-form-error: #dc2626;
}

/* Section backgrounds */
section.ph-widget:not(.ppc-section) {
	.gray-light-bg {
		background-color: var(--bu-grey50) !important; /* To overwrite existing important */
	}

	.inner-container {
		padding: 20px 0px;
	}
}

section.ppc-section {
	/* Section backgrounds */
	.ph-media-cc-view1-option1-theme6 {
		background-color: var(--bu-grey50);
	}
}

/* Buttons */
section.ph-widget {
	.primary-action-link.primary-button {
		a.action-link {
			padding: 15px 30px;
			font-family: "Helvetica Neue";
			font-size: 16px;
		}
	}

	.btn.primary-button,
	.primary-action-link.primary-button a.action-link,
	.phs-widget-block-area .form-group .input-group-btn .phs-search-submit,
	.widget-block-area :is(.upload-action-btn, .questions-btn).default-button,
	.apply-page & .ph-apply-box .resume-group .upload-resume-btn,
	.apply-page & .ph-apply-box .navigation button:is(.btn-navigate, .btn-submit) {
		color: var(--bu-black);
		background: var(--bu-orange);
		border: 1px solid var(--bu-orange);
		text-decoration: none;

		&:is(:hover, :focus) {
			color: var(--bu-white);
			background: var(--bu-black);
			border: 1px solid var(--bu-black);
		}
	}

	.btn.plain-button,
	.ph-search-results-v2-default-theme5 .ph-search-results-area .phs-jobs-list ul .jobs-list-item .actions .btn.plain-button {
		color: var(--bu-black);
		background: var(--bu-white);
		border: 1px solid var(--bu-black);
		text-decoration: none;

		&:is(:hover, :focus) {
			color: var(--bu-white);
			background: var(--bu-black);
			border: 1px solid var(--bu-black);
		}
	}
}

.phs-widget-block-area .btn.primary-button,
.job .ph-job-details-v1-job-header-default .well .job-header-actions .primary-button {
	color: var(--bu-black);
	background: var(--bu-orange);
	border: 1px solid var(--bu-orange);
	text-decoration: none;

	&:is(:hover, :focus) {
		color: var(--bu-white);
		background: var(--bu-black);
		border: 1px solid var(--bu-black);
	}
}

/* Generic Hero */
section.ppc-section {
	.ph-container-content-block .ph-card-container {
		.ph-card:has(.ph-hero-content-wrapper) {
			.ph-hero-content-wrapper:not(:has(img[src*="contractors"], img[src*="gradient"])) {
				display: flex;
				flex-flow: column-reverse;

				.content {
					position: relative;
					margin: 0px auto;
					padding: 40px;
					width: 100% !important;
					max-width: calc(1244px + 80px);
					background: none;
					transform: none;

					&::before {
						display: none;
					}

					.header, .description {
						color: var(--bu-black);
						background: none;
					}

					.header {
						font-size: 55px;
					}

					.description {
						font-family: "HelveticaNeueLight";
						font-weight: normal;
						font-size: 20px;
					}
				}

				.image {
					display: flex;
					align-items: center;
					margin: 0px auto;
					max-width: calc(1324px - 80px);
					aspect-ratio: 3.83 / 1;
					overflow: hidden;

					&:has(.element-right) {
						align-items: end;
					}

					&:has(.element-left) {
						align-items: start;
					}
				}
			}

			.ph-hero-content-wrapper:has(img[src*="gradient"]) {
				.header, .description {
					color: var(--bu-black);
					background: none;
				}

				.header {
					font-size: 55px;
				}

				.description {
					font-family: "HelveticaNeueLight";
					font-weight: normal;
					font-size: 20px;
				}
			}
		}
	}
}

/* Careers search */
section.ph-widget {
	.ph-widget-box .ph-card-container {
		.ph-card:has(.ph-hero-block-cc-view7) {
			.global-search-block {
				.heading-one, .description {
					color: var(--bu-black);
					background: none;

					span[style*="color"], .gray-lighter {
						color: inherit !important;
					}
				}
			}
		}
	}
}

/* Job description */
.jd-banner {
	.job-banner-image {
		background: var(--bu-orange50);;

		section.ph-widget {
			visibility: hidden;
		}
	}

	.job-header-block section.ph-widget {
		.container {
			.job-info {
				.job-title, .job-other-info, .multi-job {
					color: var(--bu-black);
					-webkit-text-fill-color: unset;

					span {
						color: inherit;

						&::after {
							background-color: var(--bu-black);
						}
					}
				}
			}

			.job-multi-locations :is(.location, .category) {
				color: var(--bu-black);

				&::before {
					background-color: var(--bu-black);
				}

				i.icon {
					color: inherit;
				}
			}
		}
	}
}


/* Collection */
section:is(.ppc-section, .ph-media-cc-view1-option1-theme6) {
	.ph-container-content-block .ph-card-container {
		.ph-card:has(.ph-media-cc-view1) {
			.ph-card-block {
				background: var(--bu-grey50);
				border: none;
				box-shadow: none;

				.ph-media-cc-view1-option1-theme6 & {
					background: var(--bu-white);
				}

				.gray-lighter-bg & {
					background: var(--bu-grey50);
				}

				&:is(:hover, :focus) {
					box-shadow: none;
				}

				&.full-card-link .primary-action-link {
					display: none;
				}

				.ph-row {
					.content {
						padding: 20px;

						.header {
							font-family: "HelveticaNeueBold" !important;
							color: var(--bu-black);
							line-height: 1.15em;
						}

						.description {
							font-family: "HelveticaNeueLight";
							color: var(--bu-black);
							line-height: 1.5em;
						}
					}
				}
			}
		}
	}
}

/* Two columns webtitle */
section.ph-widget:not(.ppc-section) {
	.ph-media-cc-view1-option1-theme6 {
		background: none;
	}

	.ph-container-content-block .ph-card-container {
		.ph-card:has(.ph-jtc-card-cc-view1) {
			padding: 0px;

			.ph-card-block {
				.image {
					display: none;
				}

				.content {
					position: relative;
					padding: 60px 20px;
					background: var(--bu-orange100);

					.gray-light-bg & {
						background: var(--bu-white);
					}

					.ph-card + .ph-card & {
						background: var(--bu-orange50);
					}

					.header, .description {
						font-family: "HelveticaNeueLight";
						color: var(--bu-black);
					}

					.link {
						text-align: left;
					}
				}
			}
		}
	}
}

/* Footer */
.ph-footer {
	footer {
		color: var(--bu-black);
		background-color: var(--bu-grey50) !important; /* To overwrite inline CSS */

		.footer-mid-block .top-block .footer-menu-container,
		.footer-bottom-block {
			color: inherit;
		}

		.phs-widget-block-area ul li a {
			border-color: var(--bu-black);

			.social-icons &:is(:hover, :focus) {
				color: var(--bu-white);
				background-color: var(--bu-black);

				.icon {
					color: inherit;
				}
			}
		}

		ul.sub-navigation li {
			font-family: HelveticaNeueLight;
		}
	}
}

/* Feature bar */
section.ph-widget {
	.ph-find-your-fit-container-v1-default-default .widget-block-area {
		color: var(--bu-black);

		.upload-resume-block {
			background: var(--bu-orange50);

			:is(.upload-resume-tile-container, .post-login-resume-tile-container) :is(.resume-info, .user-info) .phs-heading {
				color: var(--bu-black);
			}
		}
	}
}

/* Links */
section {
	.pcs-px-job-widget-v1-pxdefault-pxtheme .jobs-list .jobs-list-item .job-title:is(:hover, :focus) {
		color: var(--bu-orange700);
	}
}

/* ChatBot */
#phenomChatbotWrapper {
	.chatbot-button-vsolid {
		color: var(--bu-white);
		background: var(--bu-orange);
		border: 1px solid var(--bu-orange);

		&:is(:hover, :focus) {
			color: var(--bu-white);
			background: var(--bu-black);
			border: 1px solid var(--bu-black);
		}
	}

	.chatbot-widget-window-header-leftIcon {
		background: var(--bu-orange);
	}

	.chatbot-button-vflat.chatbot-button-hover:is(:hover, :focus):enabled {
		color: var(--bu-orange);
	}

	.chatbot-button-voutline.chatbot-button-hover:is(:hover, :focus):enabled {
		color: var(--bu-black);
		border-color: var(--bu-orange);
		background: var(--bu-white);
	}

	.chatbot-main a {
		color: var(--bu-orange);
	}
}

/* Search form */
section.ph-widget {
	.phs-widget-block-area {
		.form-group {
			.input-group .form-control,
			.input-group .form-control.date {
				color: var(--bu-black);
				border-color: var(--bu-grey300);

				&:is(:hover, :focus) {
					border-color: var(--bu-orange);
				}
			}

			input::placeholder, textarea::placeholder, select::placeholder {
				color: var(--bu-black);
			}

			.phs-keysearch-clear {
				color: var(--bu-orange700);
			}
		}

		.phs-search-suggestions {
			.phs-search-categories {
				:is(h2, .no-result),
				.phs-search-category-list .job-list a:is(:hover, :focus) {
					color: var(--bu-orange700);
				}
			}
		}
	}
}

/* Search results */
section.ph-widget {
	.ph-search-results-v2-default-theme5 .ph-search-results-area {
		.phs-jobs-list {
			.phs-jobs-list-header .has-feedback-search input {
				color: var(--bu-black);
				border-color: var(--bu-grey300);

				&:focus {
					border-color: var(--bu-orange);
				}
			}

			ul .jobs-list-item {
				:is(.job-multi-category, .job-multi-locations) button {
					color: var(--bu-black);
				}

				.savejob-checkbox {
					input:checked ~ .label-content {
						color: var(--bu-orange);
					}
				}

				.job-title span:is(:hover, :focus) {
					color: var(--bu-orange);
				}
			}
		}

		.no-result-info h3 {
			color: var(--bu-black);
		}

		.pagination-block .pagination {
			li.active > a {
				color: var(--bu-black);
				background-color: var(--bu-orange);
			}

			li:not(.active) > a:is(:hover, :focus) {
				color: var(--bu-orange700);
			}
		}
	}

	.phs-facets-area .panel-collapse .phs-facet-results ul li label.input-check-group input:checked + .checkbox {
		background: var(--bu-orange);
		border-color: var(--bu-orange);
	}

	.ph-create-job-alert-v1-default-default .phs-create-job-alert-area .heading-block .icon-area .icon {
		color: var(--bu-orange);
	}

	.no-jobs-view {
		figure img {
			min-width: 72px;
			height: auto;
		}
	}
}

/* Search description */
.job {
	.ph-job-details-v1-job-header-default .well .job-header-actions,
	.ph-job-details-v1-job-nav-default .job-bottom-action {
		.savejob-checkbox label {
			color: var(--bu-black);

			.label-content {
				border-color: var(--bu-black);

				input[type="checkbox"]:checked:not(:is(:hover, :focus)) + & {
					color: inherit;
				}

				label:is(:hover, :focus) & {
					color: var(--bu-white);
					background: var(--bu-black);
					border-color: var(--bu-black);
				}

				.icon {
					color: inherit;
				}
			}
		}
	}

	.job-page-external {
		.ph-job-details-v1-job-nav-default .phs-job-nav a {
			color: var(--bu-orange700);
		}

		.ph-media-cc-view1-option1-theme6 .ph-card-block .content .header {
			color: var(--bu-orange);
		}

		.ph-subscribe-similarjobs-v1-default-theme4 .phs-subscribe-jobs-area {
			background-color: var(--bu-grey50);

			.content-block .form-control-feedback {
				color: var(--bu-orange700);
			}
		}

		.ph-similar-jobs-v2-default-theme3,
		.ph-people-also-viewed-v2-default-theme3 {
			.phs-widget-block-area ul .jobs-list-item {
				.job-multi-locations button {
					color: var(--bu-black);
				}

				a:is(:hover, :focus) .job-title {
					color: var(--bu-orange700);
				}
			}
		}
	}

	.ph-similar-jobs-v2-default-theme3 .phs-widget-block-area .phs-widget-footer .btn {
		background: none;
		color: var(--bu-black);

		&:is(:hover, :focus) {
			background: none;
			color: var(--bu-black);
			text-decoration: underline;
		}
	}
}

/* Recently viewed jobs */
.ph-recently-viewed-jobs-v3-default-theme21 .phs-widget-block-area .widget-container > .content-block > ul .jobs-list-item {
	&:is(:hover, :focus) {
		background-color: var(--bu-grey50);

		.job-title, .job-info {
			color: var(--bu-black);
		}
	}

	a:focus .job-title, .job-info {
		color: var(--bu-black);
	}
}

/* Apply for job */
.apply-page {
	.ph-apply-box #breadcrumb-summary .slick-list .slick-track {
		li {
			.number {
				background-color: var(--bu-grey300) !important;
			}

			&.progress-current, &.progress-enable {
				.number {
					background-color: var(--bu-orange) !important;
				}
			}
		}
	}

	.required {
		color: var(--bu-orange);
	}

	.ph-apply-box .error-msg .errorHeader {
		color: var(--bu-white);
		background-color: var(--bu-form-error);
	}

	.text-danger {
		color: var(--bu-form-error);
	}
}

/* One column webtitle */
section.ph-widget.ppc-section {
	.ph-container-content-block .ph-card-container {
		.ph-card:has(.ph-paragraph-cc-view1) a {
			text-decoration: none;
		}
	}
}

/* Loader */
.ph-slide-loader::after,
.ph-loading::before {
    border-color: var(--bu-grey200);
    border-top-color: var(--bu-orange);
}

/* Header */
.ph-header .header-layout .nav-right-list .job-cart:is(:hover, :focus) a.phs-job-cart-area * {
    color: var(--bu-orange) !important;
}

/* Tabs */
section.pcs-widget .pcs-px-container-v1-pxdefault-pxtheme {
    .phs-tab-area .btn.primary-button {
        &, &:is(:hover, :focus) {
            color: var(--bu-black) !important;
        }
    }

    /* Tabs headings */
    .job-title span {
        color: var(--bu-black) !important;
    }
}

/* Skills Navigator feature cards */
section.ppc-section .ph-media-overlay-cc-view1-option2-theme2 {
    .ph-card-container {
        .ph-card {
            .ph-media-overlay-wrapper {
                .image {
                    visibility: hidden;
                }

                .overlay {
                    background: var(--bu-grey50);

                    .gray-light-bg & {
                        background: var(--bu-white);
                    }
                }

                .content {
                    top: 0px;
                    padding: 30px;
                    width: auto;
                    color: var(--bu-black);
                    transform: none;

                    .description {
                        font-family: "ITC-charter-regular";
                        color: inherit;

                        strong {
                            display: block;
                            margin-bottom: 1rem;
                            font-family: "HelveticaNeueLight";
                            font-size: 1.1em;
                        }
                    }
                }
            }
        }
    }
}
/* Find path */
.ph-find-your-fit-container-v1-default-default .widget-block-area {
    .choose-ResumeOrSteps .inner-content .phs-heading {
        color: var(--bu-orange);
    }

    .checkbox-btn-group .input-checkbox-label input:checked + .checkbox-selected {
        background: var(--bu-orange);
    }
}

.ph-find-your-fit-v1-default-default .phs-widget-block-area {
    .fyf-step-block .heading-block h2 {
        color: var(--bu-orange);
    }

    .ph-container-content-block .step-count-block .progress-container .progress-bar {
        background-color: var(--bu-orange);
    }
}

