/* stylelint-disable */

/* BulletFarm Ashby job board theme.
   Built from Ashby's starter CSS so each supported selector remains easy to find. */

:root {
    /* Darker primary color
    WARNING - This can be set in the Ashby admin under theme settings!
    If you modify, you should make sure your colors work with the settings there. */
    --colorPrimary900: #a8c92a;

    /* Lighter primary color
    WARNING - This can be set in the Ashby admin under theme settings!
    If you modify, you should make sure your colors work with the settings there. */
    --colorPrimary600: #d7ff42;

    /* The max width of the job board container */
    --widthMaxJobBoard: 1120px;

    /* The max width of the application form section */
    /* --widthMaxApplicationForm: 800px; */

    /* Container border radius */
    --borderRadiusContainer: 6px;

    /* Border radius of control elements (e.g. input boxes) */
    --borderRadiusControl: 6px;

    /* Button border radius */
    --borderRadiusButton: 6px;

    /* Font families */
    --fontFamily: "DD", "Microsoft yahei", "Helvetica Neue", "Arial", sans-serif;
    --bf-font-display: "DD", "Microsoft yahei", "Helvetica Neue", "Arial", sans-serif;

    --colorAppBackground: #08090b;

    --bf-background: #08090b;
    --bf-panel: #101217;
    --bf-panel-raised: #151922;
    --bf-text: #f3f0e8;
    --bf-muted: #aaa39a;
    --bf-dim: #716c64;
    --bf-line: rgba(243, 240, 232, 0.16);
    --bf-line-strong: rgba(243, 240, 232, 0.32);
    --bf-accent: var(--colorPrimary600);
    --bf-accent-dark: var(--colorPrimary900);
    --bf-accent-text: #08090b;
    --bf-negative: #ff5c3f;
    --bf-positive: #d7ff42;
}

html,
body {
    background: var(--bf-background) !important;
    color: var(--bf-text) !important;
    font-family: var(--fontFamily) !important;
}

body {
    margin: 0 !important;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

::selection {
    background: var(--bf-accent);
    color: var(--bf-accent-text);
}

a {
    color: var(--bf-text);
    text-decoration-color: rgba(215, 255, 66, 0.65);
    text-underline-offset: 0.18em;
}

a:hover {
    color: var(--bf-accent);
    text-decoration-color: var(--bf-accent);
}

/* Rich text entered in the Ashby admin, including top and bottom job board descriptions. */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--bf-font-display) !important;
}

p,
li {
    font-family: var(--fontFamily) !important;
}

/* Application autofill input's base layer element. This contains standard copy, a CTA button, and potential validation alerts. */
.ashby-application-form-autofill-input-base-layer {
    border: 1px dashed var(--bf-line-strong) !important;
    border-radius: var(--borderRadiusContainer) !important;
    background: #0c0e12 !important;
    color: var(--bf-text) !important;
}

/* Application autofill input's description. */
.ashby-application-form-autofill-input-description {
    color: var(--bf-muted) !important;
}

/* Application autofill input's drag state overlay element. Can style [data-state] which can be 'active' or 'hidden'. */
.ashby-application-form-autofill-input-drag-layer[data-state="active"] {
    border-color: var(--bf-accent) !important;
    background: rgba(215, 255, 66, 0.08) !important;
}

/* Application autofill input form's alert element. Can style [data-highlight] which can be 'negative' or 'positive'. */
.ashby-application-form-autofill-input-form-alert[data-highlight="negative"] {
    border-color: rgba(255, 92, 63, 0.55) !important;
    color: var(--bf-negative) !important;
}

.ashby-application-form-autofill-input-form-alert[data-highlight="positive"] {
    border-color: rgba(215, 255, 66, 0.55) !important;
    color: var(--bf-positive) !important;
}

/* Application autofill input's magic sparkles icon. */
.ashby-application-form-autofill-input-icon {
    color: var(--bf-accent) !important;
}

/* Application autofill input's pending state overlay element. Can style [data-state] which can be 'active' or 'hidden'. */
.ashby-application-form-autofill-input-pending-layer[data-state="active"] {
    background: rgba(8, 9, 11, 0.78) !important;
    color: var(--bf-text) !important;
}

/* Application autofill input's root element. Can style [data-state] which can be 'pending', 'drag', or 'default'. */
.ashby-application-form-autofill-input-root {
    border-radius: var(--borderRadiusContainer) !important;
    color: var(--bf-text) !important;
}

/* Application autofill input's title. */
.ashby-application-form-autofill-input-title {
    color: var(--bf-text) !important;
    font-family: var(--bf-font-display) !important;
    font-weight: 800 !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase !important;
}

/* Container element for application autofill input form. */
.ashby-application-form-autofill-pane {
    border: 1px solid var(--bf-line) !important;
    border-radius: var(--borderRadiusContainer) !important;
    background: var(--bf-panel) !important;
}

/* The resume uploader to auto-fill the application form */
.ashby-application-form-autofill-uploader {
    border: 1px solid var(--bf-line-strong) !important;
    border-radius: var(--borderRadiusButton) !important;
    background: transparent !important;
    color: var(--bf-text) !important;
    font-family: var(--bf-font-display) !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    box-shadow: none !important;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.ashby-application-form-autofill-uploader:hover {
    border-color: var(--bf-accent) !important;
    background: var(--bf-accent) !important;
    color: var(--bf-accent-text) !important;
    transform: translateY(-1px);
}

.ashby-application-form-autofill-uploader *,
.ashby-application-form-autofill-uploader:hover * {
    background: transparent !important;
    color: inherit !important;
}

/* A container for displaying the custom message to the user */
.ashby-application-form-blocked-application-container {
    border: 1px solid rgba(255, 92, 63, 0.5) !important;
    border-radius: var(--borderRadiusContainer) !important;
    background: rgba(255, 92, 63, 0.08) !important;
    color: var(--bf-text) !important;
}

/* A container for the application form. */
.ashby-application-form-container {
    border: 1px solid var(--bf-line) !important;
    border-radius: var(--borderRadiusContainer) !important;
    background: var(--bf-panel) !important;
    color: var(--bf-text) !important;
    box-shadow: none !important;
}

/* A container for the failure message */
.ashby-application-form-failure-container {
    border: 1px solid rgba(255, 92, 63, 0.5) !important;
    border-radius: var(--borderRadiusContainer) !important;
    background: rgba(255, 92, 63, 0.08) !important;
    color: var(--bf-text) !important;
}

/* A container for the label and input on an application form. */
.ashby-application-form-field-entry {
    margin-bottom: 18px !important;
}

/* The description of each question on an application form. Will only show if a description is specified. */
.ashby-application-form-question-description {
    color: var(--bf-muted) !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
}

/* The title of each question on an application form. */
.ashby-application-form-question-title {
    color: var(--bf-text) !important;
    font-family: var(--bf-font-display) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
}

/* A single section on the Ashby application form. All questions will be wrapped in sections, though the default section may not have a title. */
.ashby-application-form-section-container {
    border-top: 1px solid var(--bf-line) !important;
    padding-top: 24px !important;
}

/* The header for an application form section, possibly containing a title and description. */
.ashby-application-form-section-header {
    margin-bottom: 18px !important;
}

/* The description for an application form section. May not exist if no description was specified. */
.ashby-application-form-section-header-description {
    color: var(--bf-muted) !important;
    line-height: 1.55 !important;
}

/* The title for an application form section. May not exist for the default section. */
.ashby-application-form-section-header-title {
    color: var(--bf-text) !important;
    font-family: var(--bf-font-display) !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    letter-spacing: 0.02em !important;
    line-height: 1.15 !important;
    text-transform: uppercase !important;
}

/* The application submission button. Will have loading and hover states that should be tested. */
.ashby-application-form-submit-button {
    min-height: 46px !important;
    border: 1px solid var(--bf-line-strong) !important;
    border-radius: var(--borderRadiusButton) !important;
    background: transparent !important;
    color: var(--bf-text) !important;
    font-family: var(--bf-font-display) !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    box-shadow: none !important;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.ashby-application-form-submit-button:hover {
    border-color: var(--bf-accent) !important;
    background: var(--bf-accent) !important;
    color: var(--bf-accent-text) !important;
    transform: translateY(-1px);
}

/* A container for the success message */
.ashby-application-form-success-container {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--bf-text) !important;
    box-shadow: none !important;
}

/* The text message consent description. Displayed below phone number fields. Will only show if texting is enabled. */
.ashby-application-form-texting-consent-description {
    color: var(--bf-dim) !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
}

/* The heading of a department, which can have many teams under it. */
.ashby-department-heading {
    margin: 44px 0 14px !important;
    padding: 0 0 12px !important;
    border-bottom: 1px solid var(--bf-line) !important;
    color: var(--bf-muted) !important;
    font-family: var(--bf-font-display) !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    letter-spacing: 0.08em !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
}

/* The heading of a single team. */
.ashby-department-heading-level {
    color: var(--bf-dim) !important;
    font-family: var(--bf-font-display) !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
}

/* The button which allows users to navigate from an individual posting back to the list of all job postings. */
.ashby-job-board-back-to-all-jobs-button {
    color: var(--bf-muted) !important;
    font-family: var(--bf-font-display) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
}

.ashby-job-board-back-to-all-jobs-button:hover {
    color: var(--bf-accent) !important;
}

/* A select box element for filtering the job board. */
.ashby-job-board-filter {
    min-height: 44px !important;
    border: 1px solid var(--bf-line-strong) !important;
    border-radius: var(--borderRadiusControl) !important;
    background: #0c0e12 !important;
    color: var(--bf-text) !important;
    font-family: var(--fontFamily) !important;
}

/* The 'Filters' label element in the job board. */
.ashby-job-board-filters-label {
    color: var(--bf-muted) !important;
    font-family: var(--bf-font-display) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
}

/* The heading of the entire job board. */
.ashby-job-board-heading {
    margin: 24px 0 34px !important;
    color: var(--bf-text) !important;
    font-family: var(--bf-font-display) !important;
    font-size: 52px !important;
    font-weight: 900 !important;
    letter-spacing: 0 !important;
    line-height: 0.94 !important;
    text-transform: uppercase !important;
}

.ashby-job-board-heading::after {
    content: "";
    display: block;
    width: 72px;
    height: 3px;
    margin-top: 18px;
    background: var(--bf-accent);
}

/* The count of job postings on the job board. */
.ashby-job-board-heading-count {
    color: var(--bf-accent) !important;
}

/* The 'Reset filters' label element in the job board. The reset filters label element in the job board. */
.ashby-job-board-reset-filters-label {
    color: var(--bf-muted) !important;
    font-family: var(--bf-font-display) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
}

.ashby-job-board-reset-filters-label:hover {
    color: var(--bf-accent) !important;
}

/* The container of the job posting details pane. */
.ashby-job-posting-brief {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 20px !important;
    align-items: center !important;
    margin-bottom: 10px !important;
    padding: 22px 24px !important;
    border: 1px solid var(--bf-line) !important;
    border-radius: var(--borderRadiusContainer) !important;
    background: var(--bf-panel) !important;
    color: var(--bf-text) !important;
    box-shadow: none !important;
    text-decoration: none !important;
    transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.ashby-job-posting-brief:hover {
    border-color: var(--bf-line-strong) !important;
    background: var(--bf-panel-raised) !important;
    transform: translateY(-1px);
}

.ashby-job-posting-brief::after {
    content: "View";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 72px;
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid var(--bf-line-strong);
    border-radius: var(--borderRadiusButton);
    color: var(--bf-text);
    font-family: var(--bf-font-display);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.06em;
    line-height: 1;
    text-transform: uppercase;
}

.ashby-job-posting-brief:hover::after {
    border-color: var(--bf-accent);
    background: var(--bf-accent);
    color: var(--bf-accent-text);
}

/* The heading of a department name. Departments group teams. */
.ashby-job-posting-brief-department-heading {
    color: var(--bf-muted) !important;
    font-family: var(--bf-font-display) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
}

/* The heading of a single team. */
.ashby-job-posting-brief-department-heading-level {
    color: var(--bf-dim) !important;
    font-family: var(--bf-font-display) !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
}

/* The container for the details of the job posting, in the details pane. */
.ashby-job-posting-brief-details {
    color: var(--bf-muted) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
}

/* The container for the list of job post briefings. */
.ashby-job-posting-brief-list {
    display: grid !important;
    gap: 10px !important;
}

/* The title of the job posting in the details pane. */
.ashby-job-posting-brief-title {
    margin: 0 0 8px !important;
    color: var(--bf-text) !important;
    font-family: var(--bf-font-display) !important;
    font-size: 22px !important;
    font-weight: 900 !important;
    letter-spacing: 0 !important;
    line-height: 1.1 !important;
}

/* The main header on the job posting page */
.ashby-job-posting-header {
    border-bottom: 1px solid var(--bf-line) !important;
    background: var(--bf-background) !important;
    color: var(--bf-text) !important;
}

/* The heading of a job post */
.ashby-job-posting-heading {
    margin-top: 132px !important;
    margin-bottom: 28px !important;
    color: var(--bf-text) !important;
    font-family: var(--bf-font-display) !important;
    font-size: 28px !important;
    font-weight: 900 !important;
    letter-spacing: 0 !important;
    line-height: 1.08 !important;
    text-transform: uppercase !important;
}

/* The left pane of the job posting, with the job posting details */
.ashby-job-posting-left-pane {
    --colorNeutral500: var(--bf-muted);
    --colorNeutral600: var(--bf-muted);
    --colorNeutral700: var(--bf-muted);
    background: var(--bf-background) !important;
    color: var(--bf-text) !important;
}

/* The right pane of the job posting, containing the tabs, overview, and application form */
.ashby-job-posting-right-pane {
    border-left: 1px solid var(--bf-line) !important;
    background: #0b0d11 !important;
    color: var(--bf-text) !important;
}

.ashby-job-posting-right-pane div,
.ashby-job-posting-right-pane section,
.ashby-job-posting-right-pane article {
    background: #0b0d11 !important;
    color: var(--bf-text) !important;
}

.ashby-job-posting-right-pane p,
.ashby-job-posting-right-pane li,
.ashby-job-posting-right-pane span,
.ashby-job-posting-right-pane strong,
.ashby-job-posting-right-pane u,
.ashby-job-posting-right-pane h1,
.ashby-job-posting-right-pane h2,
.ashby-job-posting-right-pane h3 {
    color: var(--bf-text) !important;
}

/* The application tab in the right pane of the job posting */
.ashby-job-posting-right-pane-application-tab {
    color: var(--bf-muted) !important;
    font-family: var(--bf-font-display) !important;
    font-weight: 900 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
}

/* The overview tab in the right pane of the job posting */
.ashby-job-posting-right-pane-overview-tab {
    color: var(--bf-muted) !important;
    font-family: var(--bf-font-display) !important;
    font-weight: 900 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
}

/* The tabs slider in the right pane of the job posting */
.ashby-job-posting-right-pane-tab-slider {
    background: var(--bf-accent) !important;
}

.ashby-job-posting-right-pane button,
.ashby-job-posting-right-pane a[role="button"],
.ashby-application-form-container button,
.ashby-application-form-container a[role="button"] {
    min-height: 46px !important;
    border: 1px solid var(--bf-line-strong) !important;
    border-radius: var(--borderRadiusButton) !important;
    background: transparent !important;
    color: var(--bf-text) !important;
    font-family: var(--bf-font-display) !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    letter-spacing: 0.06em !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    box-shadow: none !important;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.ashby-job-posting-right-pane button:hover,
.ashby-job-posting-right-pane a[role="button"]:hover,
.ashby-application-form-container button:hover,
.ashby-application-form-container a[role="button"]:hover {
    border-color: var(--bf-accent) !important;
    background: var(--bf-accent) !important;
    color: var(--bf-accent-text) !important;
    transform: translateY(-1px);
}

.ashby-job-posting-right-pane button div,
.ashby-job-posting-right-pane button span,
.ashby-job-posting-right-pane a[role="button"] div,
.ashby-job-posting-right-pane a[role="button"] span,
.ashby-application-form-container button div,
.ashby-application-form-container button span,
.ashby-application-form-container a[role="button"] div,
.ashby-application-form-container a[role="button"] span {
    background: transparent !important;
    color: inherit !important;
}

.ashby-job-posting-right-pane button svg,
.ashby-job-posting-right-pane a[role="button"] svg,
.ashby-application-form-container button svg,
.ashby-application-form-container a[role="button"] svg,
.ashby-application-form-autofill-uploader svg {
    fill: currentColor !important;
    color: inherit !important;
}

.ashby-job-posting-right-pane button:disabled,
.ashby-application-form-container button:disabled {
    opacity: 0.55;
    cursor: not-allowed;
    transform: none;
}

.ashby-job-posting-right-pane-overview-tab,
.ashby-job-posting-right-pane-application-tab,
.ashby-job-posting-right-pane-overview-tab:hover,
.ashby-job-posting-right-pane-application-tab:hover {
    min-height: auto !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
}

/* A container for any surveys specified for this application form. */
.ashby-survey-form-container {
    border: 1px solid var(--bf-line) !important;
    border-radius: var(--borderRadiusContainer) !important;
    background: var(--bf-panel) !important;
    color: var(--bf-text) !important;
}

input,
select,
textarea {
    min-height: 44px !important;
    border: 1px solid var(--bf-line-strong) !important;
    border-radius: var(--borderRadiusControl) !important;
    background: #0c0e12 !important;
    color: var(--bf-text) !important;
    font-family: var(--fontFamily) !important;
    font-size: 15px !important;
    outline: none !important;
    box-shadow: none !important;
}

input:focus,
select:focus,
textarea:focus {
    border-color: var(--bf-accent) !important;
    background: #101319 !important;
}

input::placeholder,
textarea::placeholder {
    color: var(--bf-dim) !important;
}

[role="listbox"],
[class*="_resultContainer_"] {
    border: 2px solid var(--bf-accent) !important;
    border-radius: var(--borderRadiusControl) !important;
    background: var(--bf-background) !important;
    color: var(--bf-text) !important;
    box-shadow: none !important;
}

[role="option"],
[class*="_resultContainer_"] [class*="_result_"],
[class*="_resultContainer_"] [aria-selected] {
    background: var(--bf-background) !important;
    color: var(--bf-text) !important;
}

[role="option"]:hover,
[class*="_resultContainer_"] [class*="_result_"]:hover,
[class*="_resultContainer_"] [aria-selected]:hover {
    background: var(--bf-panel-raised) !important;
    color: var(--bf-text) !important;
}

[role="option"][aria-selected="true"],
[class*="_resultContainer_"] [class*="_active_"],
[class*="_resultContainer_"] [aria-selected="true"],
[class*="_resultContainer_"] [aria-current],
[class*="_resultContainer_"] [data-active],
[class*="_resultContainer_"] [data-highlighted],
[class*="_resultContainer_"] [data-selected],
[class*="_resultContainer_"] [data-headlessui-state~="active"],
[class*="_resultContainer_"] [data-headlessui-state~="selected"] {
    background: var(--bf-panel-raised) !important;
    color: var(--bf-text) !important;
    font-weight: 800 !important;
    box-shadow: inset 0 0 0 1px var(--bf-accent) !important;
}

[role="option"][aria-selected="true"] *,
[class*="_resultContainer_"] [class*="_active_"] *,
[class*="_resultContainer_"] [aria-selected="true"] *,
[class*="_resultContainer_"] [aria-current] *,
[class*="_resultContainer_"] [data-active] *,
[class*="_resultContainer_"] [data-highlighted] *,
[class*="_resultContainer_"] [data-selected] *,
[class*="_resultContainer_"] [data-headlessui-state~="active"] *,
[class*="_resultContainer_"] [data-headlessui-state~="selected"] * {
    background: transparent !important;
    color: inherit !important;
}

button {
    border-radius: var(--borderRadiusButton) !important;
    font-family: var(--fontFamily) !important;
}

hr {
    border: 0 !important;
    border-top: 1px solid var(--bf-line) !important;
}

@media (max-width: 720px) {
    :root {
        --widthMaxJobBoard: calc(100vw - 28px);
    }

    .ashby-job-board-heading {
        font-size: 33px !important;
    }

    .ashby-job-posting-brief-title {
        font-size: 20px !important;
    }

    .ashby-job-posting-heading {
        margin-top: 96px !important;
        font-size: 26px !important;
    }

    .ashby-job-posting-brief {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
        padding: 20px !important;
    }

    .ashby-job-posting-brief::after {
        width: 100%;
    }

    .ashby-job-posting-right-pane {
        border-left: 0 !important;
        border-top: 1px solid var(--bf-line) !important;
    }
}
